Computer Science
Academic Bulletin
Introduction
The details about the Computer Science Major and Minor described in detail at the following web site: https://www.cs.allegheny.edu/teaching/bulletin/
The aforementioned web site is regularly updated. However, the details about the old curriculum (pre-Fall 2018), which included both the Computer Science and Applied Computing Majors, is still available at this site: https://www.cs.allegheny.edu/teaching/bulletin/archive/
Laptops
To ensure both that the software development experience in a Computer Science course closely mirrors real-world practice and that we most effectively use the classroom furniture, we now invite all students to use their own laptops during class, laboratory, and practical sessions. Desktop computers are not available in the teaching and lab spaces in Alden Hall.
To ensure that every student has a laptop that will run the required software to complete work in computer science course, we encourage all students registered for computer sciences courses to visit the following web site to learn about department approved laptops:https://www.cs.allegheny.edu/resources/laptops/
The department lends laptops to students who do not have an appropriate laptop for computer science work. To ensure that there are sufficient laptops for students to use when completing their class work, students enrolled in computer science courses are asked to complete a survey sent by the department prior to the start of each semester.
Suggested Schedule for the Computer Science Major:
|
1st Semester (Fall) |
2nd Semester (Spring) |
First Year |
FS 101
CMPSC 100
CMPSC 102
|
FS 102
CMPSC 101
|
Sophomore |
CMPSC 200
CMPSC 201
CMPSC 480 (2 credits)
|
CMPSC 202
CMPSC 203
CMPSC 481 (2 credits)
|
Junior |
CMPSC 3XX
CMPSC 3XX (or, next Fall)
|
CMPSC 4XX (or, next Spring)
CMPSC 580
|
Senior |
CMPSC 3XX
CMPSC 600
|
CMPSC 4XX
CMPSC 610
|
Enrollment in Computer Science Courses for Fall 2020
Introductory Courses (CMPSC 100, 101, and 102)
All three introductory courses are required for a computer science major.
CMPSC 100, Computational Expression:
We offer one section of CMPSC 100, Computational Expression, in Fall 2020. This is one of two courses that most students should take as their first course in Computer Science. If the class fills, entrance advisers should contact the instructor, Doug Luman (dluman@allegheny.edu). The instructor may add students to this course beyond the set limit if the room capacity and software and hardware availability permit doing so. The Department of Computer Science will also offer two sections of this class during the Spring 2021 semester.
CMPSC 101, Computational Expression:
Even though CMPSC 101 is currently full, interested students and their entrance advisers can contact Janyl Jumadinova (jjumadinova@allegheny.edu) if they have taken an AP Computer Science Examination (and scored a 3, 4, or 5) or if they have some background knowledge in programming in Java or Python or areas like databases, computer graphics, systems administration, web development, or software engineering. The instructor may add students to this course beyond the set limit if the room capacity and software and hardware availability permit doing so. The Department of Computer Science will also offer a section of this class during the Spring 2020 semester.
CMPSC 102, Discrete Structures:
CMPSC 102 is a second course (in addition to CMPSC 100) available to the incoming first-year students. If the class fills, entrance advisers should contact the instructor, Greg Kapfhammer (gkapfham@allegheny.edu). The instructor may add students to this course beyond the set limit if the room capacity and software and hardware availability permit doing so. Next time this course is scheduled to be offered is in Fall 2021.
Programming Languages Used in the Introductory Courses in 2020-2021 Academic Year:
- CMPSC 100: Python
- CMPSC 101: Java
- CMPSC 102: Python
Fundamentals Courses (CMPSC 200 and 201)
CMPSC 200 and 201 are taught during the Fall 2020 semester. All of the fundamentals courses have one or two 100-level Computer Science courses as a prerequisite and are thus not ideal courses for incoming students unless they have taken prior courses in Computer Science. If a student wants to enroll in one or both of these classes, they should contact the appropriate instructor, Aravind Mohan (amohan@allegheny.edu) for CMPSC 200 or Janyl Jumadinova (jjumadinova@allegheny.edu) for CMPSC 201. The Department of Computer Science plans to offer both of these courses again during the Fall 2021 semester.
Programming Languages Used in the Fundamentals Courses:
- CMPSC 200: C and Assembly
- CMPSC 201: C, Java, Lisp, Prolog, and Python
Applications Courses (CMPSC 301, 302 and 312)
The prerequisite for CMPSC 301, Data Analytics, and CMPSC 302, Web Development, is FS 102 or permission of the instructor. The prerequisite for CMPSC 312, Database Systems, is CMPSC 101. As such, these courses are unlikely to be suitable for most of the incoming first-year students. However, they may be a good fit for incoming transfer students. However, CMPSC 301 is offered in Fall 2020, with a special permission from the Registrar and the Provost, for the students on the waiting list of the course from Spring 2020, who were not able to enroll in this course during that semester due to an overwhelming demand. As such, there are unlikely to be open seats for incoming students, however, interested students can contact Oliver Bonham-Carter (obonhamcarter@allegheny.edu) to check on its availability. Additionally, students interested in CMPSC 301 should contact Greg Kapfhammer (gkapham@allegheny.edu) for CMPSC 302 and Oliver Bonham-Carter (obonhamcarter@allegheny.edu) for CMPSC 312 to see if they can be added to these courses. The Department of Computer Science will offer CMPSC 301 again in Fall 2021 and CMPSC 302 and CMPSC 312 in Spring 2022.
Programming Languages Used in the Applications Courses:
- CMPSC 301: Python and R
- CMPSC 302: CSS, HTML, JavaScript, Markdown
- CMPSC 312: HTML, Java, Python, SQL
Software Innovation Course (CMPSC 480):
The prerequisite for CMPSC 480 is CMPSC 101 and thus this course is unlikely to be suitable for most of the incoming first-year students. However, certain students with prior computer science experience who want to learn how to effectively develop and publicly release innovative software are encouraged to consider enrolling in this course. Since the class is currently full and will be over-enrolled, interested students should contact Doug Luman (dluman@allegheny.edu) to see if they can be added to the course. The follow-on Software Innovation course, CMPSC 481, will be taught during the Spring 2021 semester. The Department of Computer Science plans to offer CMPSC 480 again during the Fall 2021 semester.
Programming Languages Used in the Software Innovation Course:
- CMPSC 480: Java, Python, and Markdown
For additional Major details, see the Academic Bulletin.
Meeting Student Demand for Computer Science Courses:
If student interest goes beyond the room capacity in which a course meets, we will collaborate with the Provost, Registrar, entrance advisers, and incoming students to ensure that, whenever possible, students can take an introductory course in their first or second semester. For instance, if a certain course is heavily over-enrolled then it may be possible to swap its room with another course at the same time that is full or lightly over-enrolled. Alternatively, we will consider student proposals for course substitutions that enable progress towards the completion of a degree requirement. Additionally, with the assistance of entrance advisors, we can record the names of students who are not able to add a computer science course in their first semester and reserve them a spot in the course when it is offered next time. Please contact a course instructor and the chair for assistance. The faculty in Computer Science have already planned a tentative schedule of course offerings up to the Spring 2024 semester. Please contact the chair for read-only access to this Google Spreadsheet.
The Computer Science Department offers a Minor in Computer Science. See the Academic Bulletin.
|