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.
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.
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.
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.
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 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.
Demonstrate critical thinking abilities and effective written and oral communication skills. Can identify, analyze, and use sources in both the technical and research literature.
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. ”