News & Events

Pingry News & Events

More News

Computer Science

The computer science curriculum at Pingry seeks to strike a balance between giving students an in-depth understanding of the discipline of computer science and applying computer science concepts to other disciplines and larger problems. Consequently, the curriculum is both rigorous and flexible. Course topics include core academic concepts that students will encounter throughout their academic careers, while projects evolve from year to year and provide students with immediate applications for solving real problems.

Computer Science Courses

Survey of Computer Science (#09448)

Fall semester course. 1.5 credits. Forms III–VI. This course is a prerequisite for those intending to take Programming.

This project-based course will focus on defining what computer science is, including the history, goals, and scope of the discipline. The course will touch upon integral computer science topics, including logic, algorithms, data representation, networking, the internet, web design, artificial intelligence, and game building. Projects will be done both individually and in teams and will combine computer science skills with ideas from other disciplines. Many projects will be completed using the Scratch ( environment, which allows students to build programs without worrying about programming syntax. There is no previous experience or other prerequisite required for this class.

Programming (#09449)

Spring semester course. 1.5 credits. Forms III–VI. Prerequisite: Survey of Computer Science. This course is a prerequisite for those intending to take A.P. Computer Science.

This course will introduce core programming concepts, primarily using the Python programming language. Focus will be on developing good programming techniques and style. Topics covered will include primitive data types, mathematical operations, structured programming with conditional and iterative statements, algorithm design, and an introduction to object-oriented programming. Students will design programs that solve problems, such as performing calculations, designing a logic game, and creating an artificially intelligent agent. This course is the prerequisite for AP Computer Science. Students may have the option to sit for the AP Computer Science Principles Exam.

A.P. Computer Science (#09447)

Major year course. 3 credits. Forms IV-VI. Prerequisite: Successful completion of Survey of Computer Science and Programming, or equivalent experience and permission of Department Head.

This course continues work on the material introduced in the Programming elective and focuses on gaining a mastery of programming methodology, algorithms, and object-oriented program design. Students will learn the Java programming language and the benefits of using an object-oriented language. The course will also cover good design practices, sorting algorithms, and run-time efficiency. Coursework will consist of problem sets and labs, as well as preparation for monthly written unit exams. There will also be opportunities for students with strong programming backgrounds to challenge themselves with more in-depth assignments. All students will be prepared for the Advanced Placement Computer Science exam and are expected to sit for it in May. After the AP exam, students will complete a relevant project that will allow them to apply the concepts learned in the course. The prerequisite for this class is the Programming elective or equivalent coursework.

Data Structures

Major fall semester course. 1.5 credits. Forms V-VI. Prerequisites: Successful completion of AP Computer Science and Departmental permission.

The focus of this project-based course is on data structure functionality and design. Students will gain a mastery of fundamental data structures by designing, coding, and implementing them based on a common API. Implementation will require students to utilize their data structures to complete projects on data analysis, compression and sorting algorithms, game playing, and more. Topics will include hash tables, linked lists, queues, stacks, trees, and other structures. Students will learn to consider run-time, algorithms, memory, testing, and documentation when designing programs. Assignments for this course will include programming projects and in-class presentations.

Programming Languages and Design

Major spring semester course. 1.5 credits. Forms V-VI. Prerequisites: Successful completion of Data Structures and Departmental permission.

This semester-long course builds on the Data Structures elective and covers principles of various types of programming languages: scripting, object-oriented, web development, and functional. Students will be expected to work on projects both individually and in groups, while improving their design skills and knowledge of relevant algorithms. Projects may require independent research, as students will design programs to solve problems they identify. Assignments for this course will include programming projects and in-class presentations.

Advanced Topics in Computer Science (#09446)

Major year course (3 credits) or fall semester only (1.5 credits). Forms V-VI. Prerequisites: Successful completion of Data Structures and Programming Languages and Design electives and Departmental permission.

Advanced Topics in Computer Science focuses on research and project implementation, as we examine computer science’s capacity for both solving and creating problems. Topics will vary slightly from year-to-year based on the interests of the students, but the current core topics will include: Machine Learning, Artificial Intelligence, Data Analysis, Physical Computing, Philosophy of Computer Science, and Web Development. Students will do significant research in these fields and deconstruct, present on, and discuss important case studies. Students will then implement their own projects, which will address elements of real world problems with a particular focus on design. Students can expect to encounter a variety of programming languages and frameworks, which will be dictated by the needs of the projects. Whenever possible, projects will connect to the community and include an interdisciplinary component. Past projects have included work with Java, Python, R, Scala, Javascript, HTML/CSS, and more.