A major in Computer Science consists of ten courses. This includes four required courses in computer science and four computer science electives, other than independent study and honors courses. The remaining two courses can be other computer science courses, including independent study and honors; mathematics courses at the level of Math 130 or above; or, with approval, other courses from outside the Mathematics and Computer Science Department. Examples of courses from outside the department that would be approved include Philosophy 240: Symbolic logic, Physics 240: Electronics, and Art 239: Digital Imaging. To receive a B.S. degree instead of a B.A., a student must take a total of 16 courses in the natural science division (Biology, Chemistry, Computer Science, Geoscience, Mathematics, Physics, Psychology).
The required introductory courses are Cpsc 120: Principals of Computer Science and Cpsc 124: Introductory Programming. Cpsc 120 is meant to give a general introduction to the field of computer science. Although these courses can be taken in either order, it is preferable to take Cpsc 120 first. Both of these courses are offered in every semester. Cpsc 124 is a prerequisite for all intermediate and upper level courses in the department. A student who receives a 4 or 5 in the Programming Advanced Placement Test can get credit for Cpsc 124.
The required intermediate courses are Cpsc 225: Intermediate Programming Cpsc 229: Foundations of Computation. Cpsc 229 covers the mathematical foundation of computer science. Both of these courses are offered once a year. Cpsc 229 is offered in the Fall semester and Cpsc 225 is offered in the Spring.
Upper level electives are offered once every two years or, in the case of 400-level electives, once every three years. Electives include Cpsc 226: Computer Architecture, Cpsc 324: Computer Graphics, Cpsc 327: Data Structures and Algorithms, Cpsc 331: Operating Systems, Cpsc 333: Programming Languages, Cpsc 343: Database Theory and Practice, Cpsc 428: Program Translators, Cpsc 441: Networks and Distributed Computing, and Cpsc 453: Artificial Intelligence.
Anyone who is thinking of majoring in computer science is strongly advised to talk to a faculty member in the department as early as possible. Contact Professor David Eck (Lansing 301; Phone: 315-781-3398) or any other member of the department.
Here is a typical four-year schedule for a computer science major. Required courses are marked with a "*". Elective courses, which are not offered every year, are listed here as examples only. It is unlikely that a student will take exactly these courses in exactly this order.
The Major in Computer Science: Sample Four-year Schedule
*Cpsc 120: Principles of Computer Science
*Cpsc 124: Introductory Programming
*Cpsc 229: Foundations of Computation
*Cpsc 225: Intermediate Programming
Cpsc 226: Computer Architecture
Cpsc 327: Data Structures and Algorithms
Cpsc 324: Computer Graphics
Cpsc 441: Networks and Distributed Computing
Cpsc 333: Programming Languages
Cpsc 331: Operating Systems
Although students are encouraged to begin taking computer science courses in their first year, it is possible to fit a major into three years. Here is a sample three-year schedule. It includes Math 130 as an example of a course that can be taken in the first year of the schedule, since it has no computer science prerequisites.
The Major in Computer Science: Sample Three-year Schedule
*Cpsc 120: Principles of Computer Science
Math 130: Calculus I
*Cpsc 124: Introductory Programming
*Cpsc 229: Foundations of Computation
*Cpsc 225: Intermediate Programming
Cpsc 226: Computer Architecture
Cpsc 327: Data Structures and Algorithms
Cpsc 453: Artificial Intelligence
Cpsc 324: Computer Graphics
Cpsc 343: Database Theory and Practice