Computer Science

Computer Science Major and Minor

Computer Science students learn the fundamental knowledge and skills of the highly needed field, in addition to honing their ability to effectively communicate and work in interdisciplinary teams.

student in computer lab

Computer Science At A Glance


Of students develop a software portfolio with contributions to the open-source community.

An emphasis on disciplinary breadth, as opposed to a narrow focus on programming

Concentrate on developing the ability to analyze ideas, to think logically, and to communicate ideas clearly and concisely. In this way, study of computer science contributes to the foundation of an excellent liberal arts education.

Integral hands-on laboratory component

Nearly all courses include a weekly laboratory session to provide for practice and experimentation using the scientific principles learned in the classroom, allowing for hands-on experience with a wide-variety of hardware and software systems.

Interrogation of human dimensions of computing

The human dimensions of computing — social, professional, and ethical implications — are treated throughout the department’s courses. Courses frequently feature collaborative and interdisciplinary in-class exercises and out-of-class assignments.

Become innovative and responsible experts in creating and developing technology.

Program graduates are well grounded in foundational knowledge and skills and several advanced and application areas. Students engage in the development of collaborative innovative software and interrogate ethical and responsible computing.

Students begin to gain understanding of the basic and practical foundations of computer science. Typically, one or two computer science courses from the introductory module are chosen in the first year. The introductory module emphasizes creative expression through the medium of a programming language, implementing, using, and evaluating the computational structures needed to efficiently store and retrieve digital data, and understanding the abstract structures used to represent discrete objects.

Computer Science Year 1

Students finish the introductory category and engage with the core courses, where they design, implement, evaluate, and document an algorithmic solution to a problem. Application courses in areas such as data analytics, data management, artificial intelligence, bioinformatics, robotics, and web development are available during this year. This is the year to participate in a research project, an internship, or employment as a departmental Technical Leader or Software Developer.

Computer Science Year 2

Students continue their core learning and explore their interests via application courses. They engage in Software Innovation courses, where technical and communication skills needed to design, implement, and publicly release innovative software are honed. Students also take a Junior Seminar course, where they learn to digest research in computing, state and motivate research questions, design and conduct experiments, and collect and organize evidence for evaluating scientific hypotheses.

Computer Science Year 3

Under the guidance of a faculty advisor, seniors design their project, conduct research, prepare a comprehensive document, and orally defend their work. Computer Science students complete significant projects that often result in the publication of conference and journal papers, the release of free and open-source software, and the creation of publicly available data sets. Students also take an advanced course in computer security, operating systems, or distributed systems.

Computer Science Year 4

Computer Science Learning Outcomes


Understand the basic and practical foundations of computer science. Know how to use standard development tools to implement software solutions to problems.


Can design, implement, evaluate, improve, and document an algorithmic solution to a problem. Understand the mutually beneficial connections between computer hardware and software and theoretical computer science and practical software development.


Understand the basics of application areas such as data analytics, data management, artificial intelligence, and web development. Can apply key concepts from these application areas to formulate and solve problems and evaluate solutions implemented as computer programs.


Understand advanced concepts in areas such as compiler design, operating systems, and distributed systems. Know how to apply key ideas from these advanced subjects to formulate and solve problems and evaluate solutions implemented as complete, efficient, and effective computer systems.

Independent Research

Demonstrate critical thinking abilities and effective written and oral communication skills. Can identify, analyze, and use sources in both the technical and research literature.

Professional Development

Understand how to work in a team and evidences the willingness to commit to lifelong learning.

Ahmad Douglas, Alumnus

Class of 2002; Head of Information Security and Quality, XFINITY Home by Comcast

“ My computer science education from Allegheny College laid the foundation for all of my future professional endeavors. In the final analysis, a technical education is important, but you need so much more in order to have a successful career and live a meaningful, satisfying life. My liberal arts education from Allegheny was the springboard that helped me to reach, and surpass, my dreams. ”

Next Steps

Early Decision App Deadline

November 15, 2022

Regular Decision App Deadline

February 15, 2023

For More Info

Greg Kapfhammer

Chair, Computer Science