Founded in 1979, the Department of Computer Science at Allegheny College became the basis of the Liberal Arts Computer Science “Model Curriculum” for undergraduate computer science education. The program is designed to ensure that its graduates are well grounded in foundational knowledge and skills, the central core of the discipline, and several advanced and application areas. This approach provides a solid academic base for further study and a means for building a successful career in computing. The study of computer science leads to and requires 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.
Computer Science is about computers and computation; the essence of the discipline is the study of algorithms — the design, development, and characterization of algorithms, their realization as computer programs, the analysis of the correctness and efficiency of algorithms, and the limitations of the algorithmic method as an approach to problem solving. The department’s offerings include an introduction to the discipline, thus including programming, data structures, and discrete mathematics; core courses in theoretical computer science, computer languages, computer organization, algorithm analysis and software systems design; advanced courses in compiler design, operating systems, and distributed systems; and a variety of applications and electives. 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.
The Department of Computer Science features courses that have an integral laboratory component — nearly all of the courses include a weekly formal laboratory session to provide for practice and experimentation using the scientific principles learned in the classroom and from study of the course texts. The laboratory component affords the opportunity for hands-on experience with a wide-variety of computer hardware and software systems (e.g., integrated development environments, version control systems, semi-autonomous robots, and mobile devices). The Department of Computer Science has laboratories adjacent to faculty offices and classrooms in Alden Hall, including an advanced-technology computer science classroom that facilitates active learning; a software development laboratory designed for the team-based development of large software systems; and a laboratory for advanced coursework and research.