Advances in computer science are responsible for technological innovations that have revolutionized many aspects of our lives. Computer scientists and computational thinkers will achieve further breakthroughs that can only barely be imagined today. To accomplish these tasks in ways that are sensitive to the needs of individuals and society, we need highly educated computer scientists with a strong background in the liberal arts. The courses offered by the Pomona College Computer Science Department, together with those offered by Harvey Mudd and Claremont McKenna Colleges, empower both majors and non-majors to leverage and to contribute to this rapidly evolving field.
Computer science investigates the nature of computation, with applications ranging from the design of sophisticated programs and machines for solving difficult problems to understanding how the mind works. It is a science, but it is not about nature. Like a natural science, computer science has theoretical and experimental components. It is unlike the natural sciences in that computer scientists design some of their own objects of study. It has links to mathematics, linguistics, philosophy and cognitive science, as well as applications in the arts, sciences, social sciences and humanities.
In computer science courses, students learn to work alone and in teams to analyze, decompose and solve complex problems. They learn to conceptualize multiple views of a problem, to develop solutions grounded in theory and to evaluate their solutions using a range of metrics. In addition to mastering overarching principles, students also become skilled in the core areas of computer science: theory, systems, programming languages and algorithms. They then apply their knowledge in advanced electives on topics including operating systems, artificial intelligence, computer graphics, human computer interaction, natural language processing, high-performance computing, computer security and robotics. Students also learn about the theoretical, practical and ethical ramifications of computational solutions to problems. Bi-weekly colloquia expose students to current research in computer science and introduce them to career options in the field.
Students will develop the ability to independently explore technical innovations. An independent senior project allows students to design, implement and analyze the solution to a modern computing problem of their choice, while also providing experience in the communication of their ideas through both oral presentations and technical writing.
Introductory Courses
If you have no prior programming experience you should start with CSCI 050 (Fundamentals of Programming). This is a 0.5 credit course that meets for the first half of the semester. With permission of the CS department chair you can place out of CSCI 050 and start in CSCI 051 (Introduction to Computer Science). CSCI 051 provides a survey of major subfields including computer systems, mathematical foundations, algorithms, theory of computation, programming languages, and machine learning. CSCI 051 can be taken either after CSCI 050 or concurrently with CSCI 050.