Courses in the major program fall into four categories: (1) supporting courses from other programs; (2) foundation courses, which provide the prerequisite background to the curriculum; (3) core courses, intermediate in level and required for the computer science majors; (4) elective courses, which are more advanced and go in depth in their individual topics; (5) the liberal arts capstone, CSCI 494; and (6) courses for non-majors only (that is, courses that don't count towards the CSCI major).
Computer science students are required to take two math courses and one physics course. These include MATH 231 (Calculus I) and PHYS 231 (Classical Physics I). Note that PHYS 231 is calculus-based physics, which means (a) PHYS 221 (General Physics) does not fulfill this requirement, and (b) MATH 231 is a corequisite. Finally, computer science majors are required to take another math course above the 200 level. Because of the prerequisite system in the math curriculum, your likely options are MATH 232 (Calculus II), MATH 245 (Linear Algebra), MATH 263 (Introduction to Statistics), or MATH 343 (Advanced Discrete Mathematics); of these, MATH 245 is highly recommended---but it wouldn't be a bad idea to take extra math also.Special note about AP credit and supporting courses: If you have AP credit for calculus or physics, make sure that it aligns properly with the required courses---do not assume that you automatically have credit for them. The Mathematics program requires at least a 4 on the AP Calculus AB test or at least a 3 on the AP Calculus BC test in order to receive credit for all of MATH 231. The Physics program does not accept the AP Physics B test for credit for PHYS 231.
CSCI 235 and CSCI 245 (Programming I and II) form a unit to introduce students to the practice of programming and also the field of computer science in general. No prior programming experience is expected. The first semester uses the Java programming languages, and the second semester uses both Java and C. which most s should complete in your first year. Because of AP credit or previous experience, some students may are placed in CSCI 245 (that is, CSCI 235 is waived). CSCI 243 (Discrete Mathematics and Functional Programming) provides mathematics background used in computer science. It also involves programming but doesn't require previous experience.Computer science majors should complete the foundation courses (CSCI 243, CSCI 235, and CSCI 245) and the MATH 231 supporting course in their first three semesters---in fact, completing them in the first year would be preferable, but this might not be possible for all students.
There are three required courses that make up the core body of knowledge of the major. CSCI 351 (Introduction to Computer Systems) is offered every fall; CSCI 345 (Data Structures and Algorithms) and CSCI 335 (Software Development) are offered every spring. Preferably you would complete these in your sophomore year, but many students find it necessary to postpone one or two until their junior year. The courses may be taken in any order, but if you have to choose one to postpone for a year, you should take the curriculum's prerequisite chain into consideration, so that this postponement will not prevent you from taking an elective you are interested in
CSCI majors are required to take three electives---but that's just a minimum. Most students who are serious about a career built upon a computer science major or interested in graduate studies will need to take four or five electives to set them on the right track. Remember, students who have completed a computer science major at a large university (who may be your competitors for employment positions or entrance into graduate schools) will have many more major hours required of them than students graduating from a liberal arts college like Wheaton.In choosing electives, all students should consider where their interest lies and what courses would be particularly useful in their desired career. Double majors should think about which electives would best complement their other studies. For students interested in graduate school, CSCI 445 (Analysis of Algorithms) is essential; it is also recommended that they take CSCI 365 (Programming Languages) and and CSCI 455 (Operating Systems).
Senior standing is required to take the capstone course, CSCI 494.
For non-computer science majors
For information about computer science courses that are not for computer science majors, see the section about courses for non-majors.