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 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. The Computer Science programs have an integral laboratory component—nearly all of the courses include a weekly formal laboratory session to provide for practice and experimentation utilizing the principles learned in the classroom and from the course texts. The laboratory component affords the opportunity for hands-on experience with several computing and network systems. The Department 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 group work on large software systems; and a laboratory for advanced coursework and research.
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, the study of computer science contributes to the foundation of an excellent liberal arts education.
Computer Science Learning Outcomes
Students who successfully complete either a major or a minor in the discipline of computer science are expected to demonstrate the successful attainment of the listed learning outcomes in each of the following categories:
- Understands the basic and practical foundations of computer science (e.g., algorithms, data types, conditional logic, recursion, procedural programming concepts, object-oriented programming principles);
- Knows 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;
- Understands the mutually beneficial connections between (i) computer hardware and software and (ii) theoretical computer science and practical software development.
- Understands the basics of application areas such as networking, data management, artificial intelligence, and computer graphics;
- Can apply key concepts from these application areas to formulate and solve problems and evaluate solutions implemented as computer programs.
- Understands advanced concepts in areas such as compiler design, operating systems, and distributed systems;
- Knows 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
- Demonstrates critical thinking abilities and effective written and oral communication skills;
- Can identify, analyze, and use sources in the both the technical and research literature.
- Professional Development
- Understands how to work in a team and evidences the willingness to commit to lifelong learning.
The major in Computer Science requires successful completion of at least 52 semester hours in Computer Science. To graduate with a major in Computer Science, a student must have an earned GPA of at least 2.0 in required Computer Science and other courses presented for the major. At most one of CMPSC 100 or CMPSC 102 may be presented for the major on the Credit/No Credit grade basis. Students who are interested in Mathematics and/or planning to attend graduate school in Computer Science are strongly encouraged to take Math 160 early in their academic career. Students who major in Computer Science may incorporate Mathematics courses into their study through the following substitutions
- MATH 205 as a substitute for the combination of CMPSC 480 and CMPSC 481.
- MATH 320, MATH 330, MATH 345, MATH 360, or MATH 365 as a substitute for one of the required 300-level CMPSC courses.
Note: Students who major in Computer Science may not double-major in Integrative Informatics.
The Allegheny College Student Chapter of the Association for Computing Machinery sponsors weekly luncheon meetings of students and faculty, hosts seminars and guest lecturers, participates in national programming contests, and sponsors picnics and other special events.
- Xerox Corporation, Rochester, New York
- Massachusetts Institute of Technology Lincoln Laboratory Summer Minority Internship program
- Platinum Technology, Seattle, Washington
- Taos Mountain, Santa Clara, California
- DigiKnow, Cleveland, Ohio
- Cigital, Dulles, Virginia
- Microsoft Corporation, Redmond, VA
- TruFit Solutions, Cranberry Twp., PA
- Carnegie Mellon University Summer Research Program
- University of Tennessee Summer Research Program
Many of our majors attend graduate or professional school eventually. Schools attended by recent Allegheny graduates include:
- College of William and Mary
- University of Virginia
- University of Pittsburgh
- Purdue University
- Colorado State University
- Clemson University
- Georgia Institute of Technology
- Syracuse University
- University of Maryland
- Brown University
- Virginia Polytechnic Institute
- College-wide, 95 percent of Allegheny Graduates who seek jobs find employment within five months of commencement.
- The most popular fields with a bachelor’s degree: software engineering, program analysis, systems analysis
- The most popular fields with advanced degrees: university/college teaching/research, application consultant, systems engineer, research computer scientist
This school offers programs in:
Last updated September 25, 2018