Guide to Academic Planning 2017-2018

Computer Science

There are two majors in the Department of Mathematics and Computer Science, a major in mathematics and a major in computer science. The information in this section refers only to the computer science major and minor.

Students interested in computing —whether or not they plan to major/minor in computer science—are invited to take either of two introductory courses.

  • CSCI 135 Robotics Explorations Studio (NS-L)
  • CSCI 150 Foundations of Computer Science I (QS, NS)

Neither of these courses has prerequisites. CSCI 135 will not count toward computer science major or minor requirements.

Students interested in majoring in computer science should complete CSCI 150 Foundations of Computer Science and MATH 130 Calculus I in their first year. Completing CSCI 151 Data Structures in the first year is strongly encouraged. Completing MATH 240 Discrete Mathematics in the Spring semester of the first year is helpful, but not absolutely necessary.

A student who scores a 3 or higher on the Computer Science A exam will receive course credit for CSCI 150 Foundations of Computer Science.

Major

The major in computer science consists of 12 courses distributed as follows:

  • CSCI 150 Foundations of Computer Science
  • CSCI 151 Data Structures
  • MATH 130 Calculus I
  • MATH 240 Discrete Mathematics
  • CSCI 230 Computing Systems Organization
  • CSCI 250 Scalable Software
  • CSCI 280 Algorithms and Problem-Solving Paradigms
  • CSCI 340 Database and Web Systems 
           OR
    CSCI 420 Operating Systems & Concurrency
  • One course chosen from the following:
    • CSCI 380 Theory of Computation
    • CSCI 385 Scientific Computing
    • MATH 340 Combinatorics
  • Two additional CSCI courses numbered 300 or above
  • CSCI Senior Seminar

Minor

The minor in computer science consists of 6 courses

  • MATH 130 Calculus I
  • CSCI 150 Foundations of Computer Science
  • CSCI 151 Data Structures
  • any CSCI course numbered 200 or above
           OR 
    MATH 240 Discrete Mathematics
  • any additional CSCI course numbered 200 or above
  • any additional CSCI course numbered 300 or above

Course Planning

Students not planning to major or minor in computer science are welcome and encouraged to take CSCI 150 to learn about computer programming. A solid foundation in high school mathematics is advisable.

Students planning to minor in computer science should complete CSCI 150 no later than the fall semester of their third year, with CSCI 151 and MATH 130 completed by the spring semester of that same year. This combination enables a reasonable selection of upper-level electives in the following year.

A student who studied programming before enrolling at Hendrix College may take CSCI 151 Data Structures with consent of the instructor. If the student passes the course with a C or better, the CSCI 150 Foundations of Computer Science requirement for the computer science major and minor will be waived for that student. The student will also be eligible to take any other CSCI course that has CSCI 150 Foundations of Computer Science as a prerequisite.

Students considering a major in computer science should complete CSCI 150 and MATH 130 by the end of their first year; completing CSCI 151 also in the first year is strongly recommended. Completing MATH 240 in the Spring semester of the first year is helpful, but not absolutely necessary. Though starting with CSCI 150 in the second year is possible, it can make completing the major within four years more challenging.

In the second year, students planning to major in computer science should complete CSCI 230 in the fall semester. If MATH 240 has not already been completed, it should be taken in the Spring semester; if it has been completed (along with CSCI 151), students should take CSCI 280. Those who have not yet taken CSCI 151 may take that course in either semester; those who have completed it before the Spring semester should take CSCI 250 that semester. Students may also consider enrolling in a 300-level elective for which they have completed the prerequisites.

 Four-year course schedule for the Computer Science major:

A typical sequence of courses for a four-year computer science major appears below. Many variations are possible. What is outlined below maximizes selection of electives in the last two years. Note that most courses at or above the 300-level are offered in alternate years.

Fall Spring
First Year CSCI 150 Foundations of Computer Science CSCI 151 Data Structures
  MATH 130 Calculus I MATH 240 Discrete Mathematics
Second Year CSCI 230 Computing Systems Organization CSCI 250 Scalable Software
  CSCI 280 Algo & Prob Solving Paradigms CSCI 330
or
CSCI 420 Operating Systems & Concurrency
Third Year CSCI Elective  CSCI Elective 
Fourth Year CSCI 497 Senior Seminar CSCI 410 Technical Communication & Analysis
  CSCI Elective   

Modified four-year course schedule for the Computer Science major

For students who are considering a computer science major as one option among several, the following schedule represents a typical option. It allows more flexibility in the first year at the price of a potential reduction in elective choices later on. Several intermediate variations between these two are also possible.

Fall Spring
First Year CSCI 150 Foundations of Computer Science
  MATH 130 Calculus I
Second Year CSCI 230 Computing Systems Organization CSCI 151 Data Structures
 
MATH 240 Discrete Mathematics
Third Year CSCI 280 Algo & Prob Solving Paradigms CSCI 250 Scalable Software Design and Development
   CSCI Elective MATH 330 
or 
CSCI 420 Operating Systens and Concurrent Computing
Fourth Year CSCI 497 Senior Seminar CSCI 410 Technical Communication & Analysis
  CSCI Elective   CSCI Elective

Three-year Course Schedule for the Computer Science Major

FallSpring
 First Year CSCI 150 Foundations of Computer Science CSCI 151 Data Structures
  MATH 130 Calculus I MATH 240 Discrete Mathematics
Second Year  CSCI 230 Computing Systems Organization CSCI 250 Scalable Software Design and Development
  CSCI 280 Algo & Problem Solving Paradigms CSCI 330
or
CSCI 420 Operating Systems and Concurrent Computing
Third Year CSCI Elective  CSCI Elective 
  CSCI Elective  CSCI 410 Technical Communication & Analysis 
  CSCI 497 Senior Seminar 

Senior Capstone Experience

The Senior Capstone Experience for majors in computer science consists of a year-long undergraduate research project and active participation in CSCI 497 Senior Seminar.