Brooklyn private independent 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

Computer Programming Essentials I

9th Grade Computer Programming Essentials focuses on the fundamentals of computer programming, as well as user interface (UI) design. Students will work individually to create personalized programs that emphasize core programming concepts using Java- and Javascript-based languages. Students explore UI design by designing and proposing original applications. Students will also discuss how academic integrity and plagiarism play a role in the world of computer science.

10th Grade

Computer Programming Essentials II

10th grade Computer Programming Essentials explores the theory and practice of object-oriented programming. Students will work individually, as well an in groups, to create unique programs written in Java. Through the use of an integrated development environment (IDE), students will gain a foundational knowledge of programming concepts such as object/class relationships, modularization, abstraction, parameter passing, method calling and declaration.

Electives

iOS Development 1

Prerequisite: Computer Programming Essentials

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

Prerequisite: iOS Development 1

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

Prerequisite: iOS Development 1, iOS Development 2

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.

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.

Linux Operating System Design and Development

Prerequisite: iOS Development 1, iOS Development 2

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.

Alexa, Can I Trust You? Technology and Ethics

Technology has changed our world in countless ways, and it feels like the pace of that change is increasing, but are all of these changes making the world a better place? Are the gatekeepers of technology - giant companies like Apple and Facebook, the startup app designers, lawmakers - being

ethical as they push us toward a more tech-focused future? How did we get where we are today, and where are we headed? In this course we’ll look at issues of modern technology and ethics through readings, class discussions and student presentations, as well as hands on tech projects. There are no prerequisites for this course.