Please note that if you had completed COMP 124 by Spring of 2019, you must complete the old version of the computer science major described here.

**Importance of advising:** The computer science program has considerable flexibility; at the same time many courses have prerequisites. Your exact schedule will be determined only after consultation with your advisor in the department. Seeking advice on your major plan in your first year is strongly recommended because it is very important to make certain that you are getting a good start to the major in your first two years.

**The first two years:** A typical computer science major would complete these introductory courses during the *first year*:

- COMP 123, or COMP 120 or a COMP 194 First Year Course
- MATH 279, Discrete Math
- COMP 127, Object-Oriented Programming and Abstraction

Some students arrive with sufficient experience to skip one or more introductory COMP courses; consult a computer science faculty member to determine proper placement.

In the *second year*, the next course to take is COMP 128, Data Structures. Following this, any of the following core required courses can be taken in any order:

- COMP 221
- COMP 225
- COMP 240

These 200-level courses do not all have to be completed in year two, and often are not. Note that not completing COMP 128 in the second year makes it difficult to complete a Computer Science major, because it is a prerequisite for some of these 200-level courses and the advanced courses.

**Required mathematics courses:** Discrete Math contains many ideas that are important throughout computer science; therefore it is specifically required of computer science majors. Other math courses that list Discrete Math as a prerequisite may not cover the topics we particularly want computer science majors to learn. We have left the remaining math courses as flexible as possible to allow for student interests (any other Math courses offered by Macalester). Statistics, linear algebra, and calculus are all excellent choices.

**Interested in graduate school?** Students who are thinking of graduate school in computer science should consider taking more than the minimum number of computer science electives and finding a summer research experience. Plan on taking the general GRE during fall of senior year.

**Plan ahead for advanced courses:** 300 and 400-level courses are offered on a rotating schedule. Some are offered every year, others every other year, and some are once in a while. Please consult the latest class schedule for each upcoming semester and ask your advisor about courses of particular interest to you.

**Carefully read the requirements for the Computer Science major as listed in the college catalog.** Computer Science Major