Computer Science

“I never am really satisfied that I understand anything; because, understand it well as I may, my comprehension can only be an infinitesimal fraction of all I want to understand about the many connections and relations which occur to me, how the matter in question was first thought of or arrived at, etc., etc.”

Ada Lovelace
Mathematician and Writer

Problem solving is the heart of our computer science courses. From early classes using Karel, students translate their burgeoning language skills into the syntax of computer science. In a series of foundational courses students encounter Java, HTML, and Python. Later, students move onto advanced courses in web app development, data science, and machine learning.

What is the overall approach of the computer science program?

In addition to developing skills that are applicable to the fields of contemporary technology, our courses aim at a higher level of thinking and understanding. We hope to stimulate inquiry and hone critical thinking within the framework of computer programming languages:how to formulate useful questions, how to parse data, and how to present information to others. Each discovery should not be an ending but a new beginning, opening up a new set of questions. Because our faculty are working computer scientists, they have a growing understanding of the changes and innovations in the field, including but not limited to the impact of artificial intelligence on their work. Thus our classes become a blend of the fundamental thinking at the heart of computer science and the newest ideas in computer science.

What does this look like in practice?

We are trying to develop the kind of students who are very clear that the reason for computer science is to gain tools that allow them to solve problems. It’s the problem that they use their tools for that makes them powerful. Throughout our program, especially once they have passed through the fundamental courses, we push students to find problems that matter to them that they can solve with the tools and skills they have. An important part of our practice involves student writing down and clearly articulating a process that represents their own approach. They learn to break down a problem intentionally into its components. What are its inputs and what are they for? What are its outputs and do those represent the desired goal of the program or part of the program? A student is successful when they know how to break down a problem into well-defined tasks. Every function, when defined well, accomplishes one clear task. We also explore problems that reveal the ethical responsibilities of programmers. Bias is inherent in data but fairness is an intentional goal that is something that data scientists advocate for. Through these processes, our students learn to be thinking programmers, ones with the capacity for independence.

Who takes computer science at Pierrepont? 

Computer science classes can be taken as electives once students are in 4th grade.