Citizen, Scholar, Steward

Computer Science

In the Upper School, the Computer Science curriculum covers both applications and programming. In the applications courses, students learn to use various software for video editing, audio editing, website design, presentation creation, and tools that implement advanced word processing techniques. As the laptop program has evolved, more applications are used by students in various classes to communicate information through technology projects, not just in Computer Science classes. Programming courses afford students the opportunity to develop their skills at different levels: Fundamentals of Programming (introductory), AP Computer Science A, and a post-AP course named Advanced Computer Programming, intended primarily for students who desire to be computer science majors in college.
  • Fundamentals of Programming I

    This course gives students the opportunity to learn programming in Java at an introductory level. It progresses at a pace that allows students to learn the basic concepts of programming while simultaneously challenging them to develop their problem solving skills. This class emphasizes a structured programming approach so students can master fundamental programming concepts that include declaring and using variables, using assignment statements, making calculations, and designing algorithms using loops and branching statements. Students receive an introduction to object-oriented programming that includes using the Java drawing commands to implement applet graphics programs that include static and animated components. The free compiler software Eclipse for Windows and Macintosh is used in writing and developing programs. This course is not a prerequisite for taking AP Computer Science but prepares students well for the rigor of that course.
  • Fundamentals of Programming: Java

    Fundamentals of Programming consists of 3 trimester-length courses:Java, Python, and Swift. Students may take one, two or all three of these trimester classes. Foundational computer science classes cover the basics of computer language constructs. Variables, conditional statements, loops, arrays, and data and user I/O are all covered in these introductory classes. Although the basics for programming are taught in each class, students taking more than one foundational class will find the repetition of programming concepts good while creating some new and challenging games and programs. The integrated development environments used for programming are JGrasp (Java), PyCharm (Python) and XCode (Swift/IOS). 
    RECCOMENDATION: Sophomore level status having completed Geometry with a minimum of a B average.
  • Fundamentals of Programming: Python

    Fundamentals of Programming consists of 3 trimester-length courses:Java, Python, and Swift. Students may take one, two or all three of these trimester classes. Foundational computer science classes cover the basics of computer language constructs. Variables, conditional statements, loops, arrays, and data and user I/O are all covered in these introductory classes. Although the basics for programming are taught in each class, students taking more than one foundational class will find the repetition of programming concepts good while creating some new and challenging games and programs. The integrated development environments used for programming are JGrasp (Java), PyCharm (Python) and XCode (Swift/IOS). 
    RECCOMENDATION: Sophomore level status having completed Geometry with a minimum of a B average.
  • Fundamentals of Programming: Swift

    Fundamentals of Programming consists of 3 trimester-length courses:Java, Python, and Swift. Students may take one, two or all three of these trimester classes. Foundational computer science classes cover the basics of computer language constructs. Variables, conditional statements, loops, arrays, and data and user I/O are all covered in these introductory classes. Although the basics for programming are taught in each class, students taking more than one foundational class will find the repetition of programming concepts good while creating some new and challenging games and programs. The integrated development environments used for programming are JGrasp (Java), PyCharm (Python) and XCode (Swift/IOS). 
    RECCOMENDATION: Sophomore level status having completed Geometry with a minimum of a B average.
  • Software Development Studio

    This class is a project based computer programming class focused on creating real-world applications. The class will first review programming constructs such as variables, loops, conditionals, strings and arrays. The class will then be focused on major projects including but not limited to iPhone or Android mobile app development, Python image and video processing, Unity engine game programming, and physical computing in the Arduino programming environment. Students will learn the life cycle of computer applications, agile software development, team programming techniques, and version control. New computer science topics such as AI, machine learning, cyber-secruity, and full-stack web development techniques and algorithms may also be studied.
    PREREQUISITE: One or more of the Fundamentals of Programming classes or the successful completion of an approved online computer programming course. It is recommended that student be taking Adv. Precalculus concurrently or have completed Precalculus.
  • Fundamentals of Programming II

    This course continues where level I leaves off. Students complete their study of structured programming by learning about String operations, lists and tables of data, and how they are manipulated in a program through the implementation of one and two dimensional arrays. “Enhanced for loops” are used with these data structures to traverse the lists and tables. Students further their understanding of object-oriented programming by writing model classes that define particular kinds of objects that are used in programs. Additionally, students are introduced to designing Graphical User Interface (GUI) programs that contain components such as text fields, text areas, and buttons. These programs can process events by responding to data that is entered and buttons that are clicked. Students design GUI Applet programs that utilize different kinds of layouts. This course is not a prerequisite for taking AP Computer Science, but like Fundamentals of Programming I, it prepares students well for the rigor of that course. The free compiler software Eclipse for Windows and Macintosh is used in writing and developing programs.
  • Advanced Computer Programming

    This course is a data structures course that parallels the curriculum taught in the discontinued AP Computer Science AB course. (Since the 2009-2010 school year, the College Board has not offered the AP Computer Science AB exam.) This class affords students who wish to major in Computer Science in college, or associated areas such as engineering, the opportunity to study object-oriented programming at a higher level to gain knowledge of the following data structures: linked lists (including singly, doubly, and circular linked lists), stacks, queues, trees, sets, maps, hash tables, and priority queues. The class gives special emphasis to studying these structures and their Big O efficiencies in light of the space-time tradeoff. Students learn the intricacies of these structures by writing do-it-yourself versions of the Java library classes that implement these structures. The class covers advanced searching and sorting algorithms that are not taught in AP Computer Science A, such as the Quicksort and Heapsort algorithms and hashing. Numerous student projects focus on working with a number of programmable robots. The class requires a commitment of one hour per day of programming time outside of class to complete program assignments. The free compiler software Eclipse for Windows and Macintosh is used in writing programs.
  • AP ComputerScience A

    This course gives students the opportunity to learn the basic concepts of structured and object-oriented programming using Java. The curriculum addresses the topics listed in the Topics Outline of the College Board's Advanced Placement Course Description Guide for AP Computer Science A. This class emphasizes object-oriented program design, proper program implementation, program analysis, standard data structures, standard algorithms, and computing in context while teaching the concepts of encapsulation, information hiding, inheritance, and polymorphism. Topics covered include the history of computers, computer ethics, basic Java syntax, loops, branching statements, array data structures, and user-defined classes. Elementary sorting and searching algorithms are taught, along with the use of recursion to implement programming solutions. The free compiler software Eclipse for Windows and Macintosh is used in writing and developing programs.
     
  • Vex Robotics

    This course will explore the fundamentals of robotics and the engineering design process while learning to use industry-leading CAD software and VEX Classroom & Competition Robotics Kits. Students will walk through the design and then build a robot to play a sport-like game, while also learning key STEAM principles and robotics concepts. As an encouraged but optional component of the class, students have the opportunity to compete head-to-head against their peers in the classroom and in the VEX Robotics Competitions held locally and around Kentucky. If a team qualifies, an additional opportunity would be to compete in the Vex World Competition held annually in April in Louisville.
  • Video Editing and Production

    In this course, students learn advanced video and audio editing techniques using Final Cut Pro and Audacity software. Students will learn proper techniques for recording microphone voice-overs using Audacity on their laptops. They will record voice-overs to be included in a number of video projects. Students will learn techniques for shooting video with a camcorder in a variety of situations. They will use FinalCutPro software to learn how to capture video and audio clips, mark in and out points for clips, edit clips to a timeline, control transitions between clips, superimpose text, utilize special effects, and render video and audio. Students will learn approaches to organize and plan the design of their video projects before shooting and editing them. Projects include planning and editing a school promo, a television commercial, an animation movie, a cooking video, and a freelance project of their choice. They also learn how to save projects in appropriate formats for viewing on the web or a DVD player.
     
  • 3D Video Game Design

    Whether you are an enthusiastic gamer or programmer, video game design in a fun way to express your creativity.   In order to understand how videogames are designed and implemented, we will first explore childhood favorites like Super Mario Bros, Angry Birds and FlappyBird to create principles of graphics, animation, sound and collision detection.  Using this framework students will then create games in 3D.
  • Advanced Python - College Level

    This is a year-long course that explores the endless possibilities of Python.  Students will gain skills with conditionals, loops, lists, tuples, set, dictionaries, as well as objects and classes.  By the end of the course students will be able to code trace, recognize patterns to identify possible solutions, construct code using top-down design and create unique and substantial programs.  The course is equivalent to Carnegie Mellon University’s 15-112 course and should substitute for any first-semester college programming course as a result. Optional College Final for college credit.

    Prerequisite: One or more of the programming classes and the successful completion of an algebra entrance test

    Grades 10–12

  • AP Computer Science Principles

    This new course is a year-long introductory course in computing. The curriculum framework focuses on computational thinking practices that are applied throughout the curriculum. The concept outline included in the curriculum is divided into seven units called "Big Ideas". These “Big Idea” units are
    • Big Idea 1: Creativity - You’ll learn that creativity is an important part of computing.
    • Big Idea 2: Abstraction - You’ll learn to use abstractions to model the world and communicate with people as well as computers.
    • Big Idea 3: Data and Information - You’ll explore the many ways in which raw data is transformed into information and knowledge.
    • Big Idea 4: Algorithms - You’ll learn what algorithms are, what they can do, and how they’re used in computing.
    • Big Idea 5: Programming- You’ll learn the concepts and techniques related to writing programs, developing software, and using software effectively.
    • Big Idea 6: The Internet - You’ll explore the principles of systems and networks that enable the Internet to function.
    • Big Idea 7: Global Impact - You’ll examine the many ways in which computers have changed how we think, work, live, and play.
    Therefore, computer programming is only a small part of the overall class.  Students will work on their own or as part of a team to creatively address real-world issues using the tools and processes of computation.
    Recommendation: Sophomore level status having completed Geometry with a minimum of a B average
     
  • CAD

    Guided Study only
  • Creating Apps that Use Generative AI

    Have you ever been curious about the future of technology? Generative AI is a rapidly growing field with applications in healthcare, personalized content, business, marketing, customer service, art and so much more. So many large language learning models exist, how can we utilize their power in apps?  Students will have an opportunity for hands-on practice teaching technology to create original content, such as text, images, audio or video.  Students will learn what makes up a good data set,  training cycle of an AI, and how natural language learning models work and their classifications.  Students will make multiple personalized applications that harness the power of generative AI.
  • Cybersecurity 1: Intro to Ethical Hacking

    As the digital world continues to expand, the importance of safeguarding digital assets and information is growing exponentially.  Cybersecurity is a complex and diverse field that is critical in all industries.  In this course, you will gain foundational skills of cybersecurity learning both offensive and defensive hacking skills.  We will explore infrastructure, network and internet security,intrusion detection and prevention.  

    Prerequisite: Students may not have any past honor code violations 

  • Data Analytics for Business

    Unlock your full potential of data to drive business success and decision making.  This course introduces the dynamic world of data science and its applications to the modern business landscape.  Students will learn how to write and use algorithms to clean and manipulate data.  They will gain proficiency in data visualizations and data storytelling to bridge the gap between technical analysis and business decisions.
  • Fundamentals of Programming

    This course gives students the opportunity to learn programming in Java at an introductory level. It progresses at a pace that allows students to learn the basic concepts of programming while simultaneously challenging them to develop their problem solving skills. This class emphasizes a structured programming approach so students can master fundamental programming concepts that include declaring and using variables, using assignment statements, making calculations, and designing algorithms using loops and branching statements. Students receive an introduction to object-oriented programming that includes using the Java drawing commands to implement applet graphics programs that include static and animated components. The free compiler software Eclipse for Windows and Macintosh is used in writing and developing programs. This course is not a prerequisite for taking AP Computer Science, but prepares students well for the rigor of that course.
     
  • Fundamentals of Programming: Fun with LEDs

    Fundamentals of Programming: Fun with LEDs will teach students how to use and program a small electronic microcontroller circuit board.  This class will feature programming colorful LED strips as well as programming buttons, switches, buzzers, sensors, OLED displays, and servos.  This class connects the computer programming world with the physical world.
    Recommendation: Sophomore level status having completed Geometry with a minimum of a B average
     

Grade/Dept

Our Faculty

  • Photo of Rosanne Zabloudil
    Rosanne Zabloudil
    Computer Science Department Chair, Lower School Technology Coordinator
    University of Louisville - MEd
    University of Louisville - BS Ed
    At KCD since 2013
  • Photo of Timothy Rice
    Timothy Rice
    Robotics Teacher, Design & Fabrication Lab Director; Gearcat Robotics
    James Madison College - Michigan State University - BA
    Wayne State University - MAT
    At KCD since 2003
  • Photo of Abigail Sheridan
    Abigail Sheridan
    Computer Science Teacher
    At KCD since 2022
4100 Springdale Road • Louisville, KY 40241 • (502) 423-0440 • Fax (502) 423-0445
Kentucky Country Day School is a private JK–12, coeducational school located on a spacious 80+ acre campus in Louisville, KY. KCD combines a rigorous academic program with a wide variety of athletic and extracurricular programs. Our outstanding faculty creates an intimate learning environment that is both challenging and supportive.