The Berkeley Carroll School

Computer Science



The computer science program aims to educate students on being responsible and informed digital citizens. Our one-to-one iPad program enables students to see technology as an academic tool. Our required ninth and tenth courses emphasize this basic philosophy and introduce all students to programming fundamentals. Elective upper level courses allow students to pursue programming in increasingly complex and specialized areas such as interactive game design, app development and operating system design.

9th Grade

Digital Essentials

9th Grade Digital Essentials focuses on effective iPad use, exploring different technology tools for learning and presenting, digital citizenship, and the fundamentals of computer programming. Students create projects using a wide range of tools and apps that can be used in their other classes. Fundamental computer programming skills are developed by using visually-based programming platforms and serve as the starting point for the Upper School programming sequence.

10th Grade

Computer Programming Essentials: An Exploration of Object-Oriented Program Design

This course will explore object-oriented programming through the lens of BASH (Bourne Again Shell) scripting and Java programming. Students will experience using various professional IDEs (Integrated Development Environment) such as BlueJ and Eclipse. Through project-based environment, students will gain a foundational knowledge of programming concepts such as object/class relationships, modularization, abstraction, parameter passing, method calling and declaration, and UI (User Interface) design.

Responsive Web Application Design, Development and Deployment

This course will discuss the process of interactive and responsive web development. Students will explore the following concepts throughout the semester: theme creation for content management systems (CMS) such as Tumblr and Wordpress, front end and back end design, web application development and deployment. To facilitate this, students will gain a foundational knowledge of HTML, CSS, PHP, JavaScript and MySQL.

11th Grade

iOS Development 1

This introductory course into iOS development will explore the application design process through Xcode, Apple's professional integrated development environment (IDE). Students will gain a foundational understanding of C, Objective–C, Swift and associated application frameworks. Students will work individually and in teams to build various iOS applications that can be deployed to iPhones and iPads.

iOS Development 2

This course will continue the exploration of iOS development and dive more deeply into the various application programming interfaces (APIs) and frameworks that are available in iOS application development. Through advanced study of Objective–C and Swift, students will learn how build database-driven applications, create hybrid applications for iPhone and iPad, leverage remote data sources, and study the art of design to build visually appealing applications. Students will learn how to incorporate realistic physics engines and third-party frameworks to build feature-rich applications such as games, media curators and external hardware controllers through code repositories.

Designing and Programming Virtual Musical Instruments

This course will explore the process of designing and programming unique virtual instruments through Max/MSP and Logic Pro. Students will learn how to build Max patches (self-contained programs) from the ground up, while designing a portfolio of sound controllers, sequencers, synthesizers, samplers and a wide array of sound processors. Max patches can be used for live performance, as well as complementary sound libraries in compositional projects. Max patches will be used directly within Logic Pro to build unique musical projects that are built through the lens of programming.

Responsive Web Application Design, Development and Deployment

This course will discuss the process of interactive web development. Students will explore the following concepts throughout the semester: theme creation for content management systems (CMS) such as Tumblr and Wordpress, front end and back end design, web application development and deployment. To facilitate this, students will gain a foundational knowledge of HTML, CSS, PHP, JavaScript and MySQL.

12th Grade

iOS Development 1

This introductory course into iOS development will explore the application design process through Xcode, Apple's professional integrated development environment (IDE). Students will gain a foundational understanding of C, Objective–C, Swift and associated application frameworks. Students will work individually and in teams to build various iOS applications that can be deployed to iPhones and iPads.

iOS Development 2

This course will continue the exploration of iOS development and dive more deeply into the various application programming interfaces (APIs) and frameworks that are available in iOS application development. Through advanced study of Objective–C and Swift, students will learn how build database-driven applications, create hybrid applications for iPhone and iPad, leverage remote data sources, and study the art of design to build visually appealing applications. Students will learn how to incorporate realistic physics engines and third-party frameworks to build feature-rich applications such as games, media curators and external hardware controllers through code repositories.

Cross-Platform Game Design

Narrative game design has become increasingly popular in recent years with an influx of sophisticated, graphically appealing game titles. This course will explore cross-platform game development through Unity (a cross-platform game design environment), SpriteKit (graphics rendering and animation) and Metal (hardware acceleration engine). Students will gain an advanced understanding of Objective–C and C# to build feature-rich gaming environments. User experience plays a major role in game development and this course will discuss how to create musical elements, appealing user interfaces and graphical elements in tandem with programming.

Linux Operating System Design and Development

This course will explore the process of designing, developing and packaging a custom Linux-based operating system based on the work of Linus Torvald. Students will gain an advanced knowledge of various shell scripting environments such the Bourne Again Shell (BASH), KornShell (KSH) and Z Shell (ZSH). Through an open source, package-based approach, students will build a custom operating system from the Kernel level and will add packages that include a networking stack, file system management and graphical user environments (GUI) utilizing GNOME and KDE. Each operating system will be entirely unique to the student designer.

Designing and Programming Virtual Musical Instruments

This course will explore the process of designing and programming unique virtual instruments through Max/MSP and Logic Pro. Students will learn how to build Max patches (self-contained programs) from the ground up, while designing a portfolio of sound controllers, sequencers, synthesizers, samplers and a wide array of sound processors. Max patches can be used for live performance, as well as complementary sound libraries in compositional projects. Max patches will be used directly within Logic Pro to build unique musical projects that are built through the lens of programming.

Responsive Web Application Design, Development and Deployment

This course will discuss the process of interactive and responsive web development. Students will explore the following concepts throughout the semester: theme creation for content management systems (CMS) such as Tumblr and Wordpress, front end and back end design, web application development and deployment. To facilitate this, students will gain a foundational knowledge of HTML, CSS, PHP, JavaScript and MySQL.

Powered by Finalsite