Study Plan

 

Major

  • MATH 180 Calculus A
  • MATH 190 Discrete Mathematics
  • MATH 195 Math Toolkit
  • CS 128 Programming and Problem Solving
  • CS 256 Advanced Programming
  • CS 310 Algorithms and Data Structures
  • CS 320 Principles of Computer Organization
  • CS 380 Theory of Computation
  • CS 388 Methods for Research & Dissemination
  • CS 488 Senior Capstone Experience
  • Four additional CS courses, 300 and above excluding CS481,CS383/483, CS484, CS485 and CS486.
    In exceptional cases, the department may waive the exclusion of CS484, CS485 or CS486.

Minor

  • Either MATH 190 Discrete Mathematics OR MATH 195 Math Toolkit
  • CS 128 Programming and Problem Solving
  • CS 256 Advanced Programming
  • CS 310 Algorithms and Data Structures
  • Three additional CS courses, 300 and above excluding CS481, CS383/483, CS484, CS485 and CS486.
    In exceptional cases, the department may waive the exclusion of CS484, CS485 or CS486.
  1. The latest a Computer Science major may be started is in the Fall of the your sophomore year (unless you have already taken a couple of the math requirements and have some background in Computer Science).
  2. Students who have an exceptional level of preparation in Computer Science, especially in Python programming, should consider taking CS256 as their first computer science course. Students who are unsure about whether they are prepared for CS256 should contact the CS department faculty to discuss it.
  3. The core of the curriculum is CS128, CS256, CS310, CS320, CS380, CS388, and CS488.
  4. CS128, CS256, CS388, and CS488 are offered every term. CS310, CS320, and CS380 are offered every year.
  5. The rest of the standard curriculum is offered every other year.
  6. The three required math courses can be taken in any order, but Math Toolkit is a co-requisite for CS256, and students should try to have them all complete before they take CS310.
  7. The prerequisite structure (see Courses and Prerequisites) requires CS128, CS256, CS310 and CS320 to be taken in that order. CS380 (Theory of Comp.) should normally be taken as early in the program as possible, usually in the second Spring.
  8. CS388 can be taken any time your junior or senior year. CS488 must be taken your senior year, after you have completed CS388. We recommend that students try to schedule these courses back-to-back, but we recognize that study abroad and athletics can make this difficult, so putting one term between them is acceptable.
  9. Students should try to complete CS128, CS256, and CS310 as early as possible, as these are prerequisites for many other courses, some of which are required. Students should also try to complete CS320 as soon as they can, as this is a prerequisite for several upper-level courses.
  10. We recognize that students who start the major after their first term, who are double majors, or who plan to study abroad can sometimes find it challenging to fit all of the requirements in. If this is you, please get in touch with us as soon as possible so we can help you make a plan that will allow you to finish the requirements.
  11. For the General Education requirements of Earlham College, see here.

The following resource is meant for your scheduling purposes and is subjected to change under certain circumstances.

Academic Year 2017/2018

Fall semester 2017

Every Semester

  • Programming and Problem Solving - CS128
  • Data Structures - CS256
  • Methods for Research & Dissemination - CS388
  • Senior Capstone Experience - CS488
  • Icelandic Field Studies Preparation - CS182 (only available for those participating in the May Term)

Every Year

  • Algorithms - CS310
  • Theory of Computation - CS380
  • Earlham Seminar - ES1

Alternate Years

  • Functional Programming - CS330
  • Operating Systems - CS420

Spring Semester 2018

Every Semester

  • Programming and Problem Solving - CS128
  • Data Structures - CS256
  • Methods for Research & Dissemination - CS388
  • Senior Capstone Experience - CS488
  • Icelandic Field Studies Preparation - CS182 (only available for those participating in the May Term)

Every Year

  • Principles of Computer Organization - CS320

Alternate Years

  • Computational Modeling - CS290
  • Parallel and Distributed Computing - CS360
  • Programming Languages - CS440
  • Artificial Intelligence - CSxxx
  • Topics - CSx82

Academic Year 2018/2019

Fall semester 2018

Every Semester

  • Programming and Problem Solving - CS128
  • Data Structures - CS256
  • Methods for Research & Dissemination - CS388
  • Senior Capstone Experience - CS488
  • Icelandic Field Studies Preparation - CS182 (only available for those participating in the May Term)

Every Year

  • Algorithms - CS310
  • Theory of Computation - CS380
  • Earlham Seminar - ES1

Alternate Years

  • Graphics - CS370
  • Networks & Networking - CS410

Spring Semester 2019

Every Semester

  • Programming and Problem Solving - CS128
  • Data Structures - CS256
  • Methods for Research & Dissemination - CS388
  • Senior Capstone Experience - CS488
  • Icelandic Field Studies Preparation - CS182 (only available for those participating in the May Term)

Every Year

  • Principles of Computer Organization - CS320

Alternate Years

  • Bioinformatics - CS383
  • Functional Programming - CS330
  • Software Engineering - CS345
  • Database Systems - CS430
  • Topics - CSx82