Computer Science
Academic Bulletin
Area of Study: Mathematics and Natural Sciences
Programs: Major and Minor
Department: Department of Computer and Information Science
Exclusions:
A student majoring in Computer Science may not double major or minor in Data Science, Informatics or Software Engineering.
A student minoring in Computer Science may not major in Data Science, Informatics or Software Engineering.
Description
A program focusing on computational theory and the rich interplay between computer hardware and software. Students use scientific and design-centric approaches to solve computational problems and to create and evaluate realistic computer-based systems.
Careers
- Computer Scientist
- Hardware Engineer
- Computer Engineer
- Product Designer
- Systems Architect
- Systems Manager
Graduate Programs
- Computer Science
- Computer Engineering
- Product Design
Cooperative Programs
Our students have the opportunity to participate in one of the cooperative opportunities, including the Carnegie Mellon’s (CMU’s) Accelerated Master’s Program in Information Systems Management or in Information Security Policy & Management, one of the 3-2 engineering programs and Health Informatics program at Chatham, and 4-1 program in Business Data Analytics with CMU’s Tepper School of Business. Participation in such academic programs will likely require more careful planning of the student’s program of study at Allegheny College, and students should work with their academic advisor to carefully craft their academic plan. More information about these programs is available at https://www.cis.allegheny.edu/teaching/cmu/
Finding an Academic Advisor
Students can approach any CIS faculty member to serve as their academic advisor.
Laptop Use in CIS Courses
All students are expected to use their own laptops during class and lab sessions in CIS courses. This setup reflects real-world practice and supports flexible classroom use.
To ensure your laptop meets course requirements, please review the department’s approved laptop guidelines here: https://www.cs.allegheny.edu/resources/laptops
Students enrolled in any CIS course (regardless of major/minor status) may request a loaner laptop at any time during the semester using the Laptop Loan Request Form at the same link. A configured laptop will be prepared and made available for pick-up at the library.
Introductory Courses (CMPSC 100, 101, and 102)
All three introductory courses are required for a computer science major. CMPSC 100 and 101 are offered every semester. CMPSC 102 is offered once a year, every spring semester. Students with prior programming experience, specifically in Python, may reach out to the Chair (jjumadinova@allegheny.edu) to discuss the possibility of bypassing CMPSC 100 and enrolling in CMPSC 101..
Core Courses (CMPSC 200, CMPSC 202, CMPSC 204)
CMPSC 200, Computer Organization, and CMPSC 204, Theoretical Machines, are taught every fall semester. CMPSC 202 is offered every spring semester. All 200-level core courses have two 100-level CIS courses as a prerequisite and are thus not ideal courses for incoming students unless they have taken prior courses in Computer Science, but may be suitable for transfer students.
Junior Seminar and Senior Project courses
Junior Seminar, CMPSC 580, is always offered in the spring semester. Students must receive the instructor’s permission to take the course before they can register for it on Self-Service. This course must be completed before students acn take the Senior Comprehensive Project course in their major. The first and second reader selection process for the Senior Comprehensive Project occurs in CMPSC 580. Students who plan to study away during the Spring semester of their Junior year should take CMPSC 580 in the spring semester of their Sophomore year.
Comprehensive Senior Project in all CIS majors is a two-semester project with CMPSC 600 course taken in the Fall semester and CMPSC 610 course taken in the Spring semester. In rare circumstances, faculty will consider an exception to the semesters in which these courses are taken, but no exception can be made to it being a two-semester project. Students who are double majoring should consider completing a joint, single comprehensive senior project by registering for DOUBL 600 and 610. Students completing a double project will work with their first reader to ensure their proposed project satisfies all requirements of their major in the CIS department.
Important Notes About the Major in Computer Science
- The major in Computer Science requires the successful completion of at least 48 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 the required Computer Science and other courses presented for the major. For the Computer Science major, at most one of CMPSC 100, 101 or 102 may be presented for the major on a 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 151 early in their academic career. In consultation with their academic adviser, students who major in Computer Science may incorporate Mathematics courses into their study through the following substitutions:
- Math 205 as a substitute for CMPSC 102
- Math 320, Math 330, Math 345, or Math 370 as a substitute for one of the required specialization courses.
Additional, regularly updated, details about the Computer Science major are always available at: https://www.cs.allegheny.edu/teaching/bulletin/
Suggested Schedule for a Major in Computer Science
We do not recommend taking more than two CMPSC courses with a lab (with the exception of the Junior seminar and a Senior Project) in one semester.
|
Fall Academic Semester |
Spring Academic Semester |
First Year |
CMPSC 100 |
CMPSC 101
CMPSC 102 (spring only) |
Sophomore |
Two of the following:
CMPSC 200 (fall only)
CMPSC 204 (fall only)
CMPSC Elective |
Two of the following:
CMPSC 202
CMPSC 406 (spring only)
CMPSC Elective |
Junior |
Remaining course from CMPSC 200,
CMPSC 204, or Elective |
Remaining course from CMPSC 202,
CMPSC 406, or Elective
CMPSC 580 (spring only) |
Senior |
CMPSC 600 |
CMPSC 610 |
Students who declare a Computer Science major are encouraged to regularly meet with their academic adviser to verify that they are making suitable progress towards the completion of their degree requirements.
Minors in Computer Science
The minor in Computer Science requires the completion of at least 24 semester hours of coursework in Computer Science including:
- CMPSC 100 - Computational Expression AND
- CMPSC 102 - Discrete Structures
A minor must also include two courses from the Core (CMPSC 200, CMPSC 202, CMPSC 204, CMPSC 406) and two courses from Electives (CMPSC 300, CMPSC 304, CMPSC 400, CMPSC 403). Please remember that at most one of CMPSC 100 or 102 may be presented for the minor on a Credit/No Credit grade basis.
Information for Transfer Students
A maximum of 16 transfer credits may be counted toward the major. A maximum of 8 transfer credits may be counted toward the minor.
Three Year Computer Science Academic Plan
Transferring after one year |
We expect students transferring to Allegheny after attending one year at another institution may have one introductory course; in some cases, they may also be transferring in a second or third introductory course and/or a Core or Elective course. We do not recommend taking more than two computer science courses with a lab (with the exception of the Junior Seminar and Senior Project) in one semester. |
|
MAJORS |
MINORS |
Year 1 at
Allegheny |
- Complete remaining CMPSC 100-level introductory
courses if necessary (majors need 3; CMPSC 100,
101, and 102
- Take 1-2 Core course(s)
- Take 1 Elective course
|
- Complete CMPSC 100-level introductory
courses if necessary (minors need 2: CMPSC 100
and CMPSC 102
Take 1 additional Core or Elective course
|
Year 2 at
Allegheny |
- Take 2-3 Core courses
- Take 1-2 Elective courses (majors need 2)
- Enroll in CMPSC 580, Junior Seminar (spring
semester only)
|
- Take 1-2 Core courses (minors need 2)
- Take 1-2 Elective courses (minors need 2)
|
Year 3 at
Allegheny |
- Complete remaining Core or Elective courses
if necessary
- Take CMPSC 600 in the fall semester
- Take CMPSC 610 in the spring semester
- Take any remaining CMPSC courses to reach
major requirement of 48 credits.
|
- Complete remaining Core or Elective courses
if necessary
- Take any remaining CMPSC courses to reach minor
requirement of 24 credits
|
Two Year Computer Science Academic Plan
Transferring after two years |
We expect students transferring to Allegheny after attending two years at another institution may have at least two introductory courses and may also be transferring in a Core or Elective course. We do not recommend taking more than two computer science courses with a lab (with the exception of the Junior Seminar and Senior Project) in one semester |
|
MAJORS |
MINORS |
Year 1 at
Allegheny |
- Complete remaining CMPSC 100-level introductory
courses if necessary in the first semester (majors need
3: CMPSC 100, 101, and 102)
- Take 2-3 Core courses
- Optionally, take 1 Elective course
- Enroll in CMPSC 580, Junior Seminar (spring
semester only)
|
- Complete CMPSC 100-level introductory
courses if necessary (minors need 2: CMPSC 100 and CMPSC 102)
- Take 1-2 Core courses (minors need 2)
- Optionally, take 1 Elective course (minors need 2)
|
Year 2 at
Allegheny |
- Take 1-2 Core courses
- Take 1-2 Elective courses (majors need 2)
- Take CMPSC 600 in the fall semester
- Take CMPSC 610 in the spring semester
- Take any remaining CMPSC courses to reach major
requirement of 48 credits
|
- Take 1-2 Elective courses (minors need 2)
- Take any remaining Core courses if necessary
- Take any remaining CMPSC courses to reach minor
requirement of 24 credits
|
Issues to consider for transfer credits:
- It is common for the similar sounding CMPSC courses to have varying degrees of “depth” across different institutions as evident by the varying or lack of prerequisites and topics covered. Transfer credit is accepted only for courses at approximately the same level of topic “depth” as the Allegheny College courses.
- All CMPSC courses use version control software (Git), continuous integration (GitHub Actions) and some courses beyond CMPSC 100 use a container-based system (Docker). Transfer students unfamiliar with these technologies should reach out to the Chair of the department to be placed in a short tutoring program with the department’s Technical Leaders.
- All CMPSC introductory courses at Allegheny College are taught in Python programming language. Transfer students unfamiliar with Python should reach out to the Chair of the department to receive adequate support.
|