Curriculum in Computer Science
For the Degree of Bachelor of Science in Computer Science
This curriculum is offered by the Department of Computer Science for students seeking a broad and deep knowledge of the theory, design, and application of digital computers and information processing techniques. The first two years are spent on basic work in mathematics, physics, and an introduction to the fundamental areas of computer science: computing, programming, the organization of digital machines, numerical analysis, and theory of computation. The third year completes the work in basic computer science and requires electives to broaden the background of the student. During the fourth year, the student is encouraged to deepen his or her understanding of topics of particular interest and ability. In addition, each student is required to complete either a senior thesis or a senior project.
Educational Objectives and Outcomes
The Department of Computer Science strives to provide students with a broad knowledge of the fundamentals of computers and computation and a deep knowledge of software systems construction. We feel that students should also gain a grounding in some area of application of computers, and a sense of responsibilities and ethical demands of the computing professions. Considerable importance is placed on keeping up-to-date both our courses and our lab equipment. A faculty consisting of top researchers ensures that courses are at once intellectually challenging, timely, and authoritative.
Given these objectives, the department has adopted a set of educational outcomes that we expect each student to have achieved by the time of graduation. Above all, students should leave our program with the fundamental knowledge and study skills that will enable them to be lifelong learners. In a field of constant growth and change, this is essential. We expect graduates to be able to think clearly and precisely about computational problems and to be able to apply their knowledge of mathematics, computer engineering, software engineering, and application areas to the solution of these problems. Students should learn how to work productively in a team environment, and should possess excellent written and oral communication skills. Finally, they should gain a general knowledge of contemporary issues in our society and should understand the role of the computer professional and the importance of professional integrity and ethics. We continually monitor our success in achieving these desired educational outcomes through various methods and seek ways to improve our educational programs.
Review of Academic Progress
Each student's progress is reviewed after the student completes 30 hours of technical (MATH, CS, ECE) courses; this will normally be at the end of the sophomore year, as shown in the schedule below. At that time, the student must have a combined grade point average in those courses of 2.25 to qualify for registration in CS classes in the following semesters. A student who does not qualify may transfer to another department or seek a waiver of the requirement from the Director of Undergraduate Programs in CS.
In order to graduate or continue in the computer science curriculum, a student must have a 2.0 technical grade point average, calculated from the grades in all computer science and mathematics courses counting toward the degree.
The curriculum requires 128 hours for graduation.
Suggested Sequence
Differing backgrounds and interests preclude the construction of a single schedule that will fit all students. The following is a typical schedule for a student entering the CS department as a freshman with no AP credit.
First year
Hours | First Semester |
---|---|
3 | CHEM 102General Chemistry I |
1 | CHEM 103General Chemistry Lab I |
(1) | CS 100Freshman Orientation in CS1 |
3 | CS 173Discrete Structures2 |
0 | ENG 100Engineering Lecture |
4 | MATH 221Calculus I3 |
4-3 | RHET 105Principles of Composition4
or Elective in social sciences or humanities5 |
15-14 | Total |
Hours | Second Semester |
---|---|
4 | CS 125Intro to Computer Science2 |
3 | MATH 231Calculus II |
4 | PHYS 211Univ Physics, Mechanics |
3-4 | Elective in social sciences or humanities5 or RHET 105Principles of Composition4 |
3 | Elective in social sciences or humanities5 |
17-18 | Total |
Second year
Hours | First Semester |
---|---|
4 | CS 225Data Structure & Softw Prin |
3 | CS 231 Computer Architecture I |
4 | MATH 241Calculus III |
4 | PHYS 212Univ Physics, Elec & Mag |
3 | Elective in social sciences or humanities5 |
18 | Total |
Hours | Second Semester |
---|---|
3 | CS 232Computer Architecture II |
3 | CS 241 Systems Programming |
3 | MATH 415 Linear Algebra |
2 | PHYS 213Univ Physics, Thermal
Physics or PHYS 214Univ Physics, Quantum Physics |
6 | Electives in social sciences or humanities5 |
17 | Total |
Third year
Hours | First Semester |
---|---|
2 | CS 210Ethical & Prof'l Issues in CS |
3 | CS 242Programming Studio |
3 | CS 273 Intro to Theory of Computation |
3 | Elective in social sciences or humanities5 |
4 | Free elective |
15 | Total |
Hours | Second Semester |
---|---|
3 | MATH 461 Probability Theory I |
9 | Technical track electives6 |
4 | Free elective |
16 | Total |
Fourth year
Hours | First Semester |
---|---|
9 | Technical track electives6 |
6 | Free electives |
15 | Total |
Hours | Second Semester |
---|---|
6 | Technical track electives6 |
3 | Technical track elective6 or free elective |
6 | Free electives |
15 | Total |
1. This optional course is highly recommended for freshmen, who may use it to help meet free elective requirements.
2. CS 125 and CS 173 should be completed during the first year but preferably not in the same semester. Students with programming experience may take CS 125 first. Students with no programming experience should take CS 173 first.
3. MATH 220—Calculus may be substituted, with four of the five credit hours applying toward the degree. MATH 220 is appropriate for students with no background in calculus.
4. RHET 105 should be taken in the first or second semester of the first year as authorized. The alternative is a social science or humanities elective.
5. Each student must satisfy the 18-hour social sciences and humanities requirements of the College of Engineering and the campus general education requirements for social sciences and humanities.
6. See technical track requirements in Overview of Curriculum Requirements below.
Overview of Curriculum Requirements
The curriculum requires 128 hours for graduation and is organized as follows:Hours | General Education Requirements |
---|---|
4 | RHET 105Principles of Composition |
18 | Social sciences and humanities electives1 |
22 | Total |
1. Each student must satisfy the 18-hour social science and humanities requirements of the College of Engineering and the campus general education requirements for social science and humanities.
Hours | Basic Mathematics and Science Requirements |
---|---|
11 | MATH through 241Calculus sequence |
3 | MATH 415Linear Algebra |
3-4 | MATH 461/STAT 451Probability Theory I or STAT 400/MATH 463Statistics and Probability |
10 | PHYS 211, 212, and 213 or 214University physics sequence |
4 | CHEM 102 and 103General Chemistry |
31-32 | Total |
Hours | Computer Science Core Requirements |
---|---|
(1) | CS 100 Freshman Orientation in CS1 (optional) |
4 | CS 125 Intro to Computer Science |
3 | CS 173 Discrete Structures |
2 | CS 210 Ethical and Prof'l Issues in CS |
4 | CS 225 Data Structure and Softw Prin |
6 | CS 231 and 232 Computer Architecture I and II |
3 | CS 241 Systems Programming |
3 | CS 242 Programming Studio |
3 | CS 273 Intro to Theory of Computation |
0 | ENG 100 Engineering Lecture |
28 | Total |
1. Highly recommended for beginning freshmen.
Hours | Technical Track |
---|---|
24-27 | See technical tracks section below. |
Hours | Free Electives |
---|---|
20-23 | Additional unrestricted course work so that there are at least 128 credit hours. |
Technical Tracks
Students must choose to specialize in one of the following technical tracks:
- Computer Science
- Computational Science and Engineering
- Mathematics
Students who choose Computer Science must also choose a specialization within CS, while students in CSE must choose a scientific specialization. (Specializations are subject to change; please consult the department website for the most current information.) Requirements for the three tracks are as follows:
CS Track (24-27 hours):
- CS 257 (3)Numerical Methods
- CS 421 (3)Programming Lang and Compilers
- CS 473 (3)Algorithms
- Four 400-level CS courses (12), including one of the following specializations (this list may be expanded by action of the CS faculty):
- Systems- all of the following:
- CS 423 (3)Operating Systems
- CS 431 (3)Embedded Sys Arch and Software or CS 433 (3)Computer System Organization
- Databases/Information Retrieval- two of the following:
- CS 410 (3)Text IR
- CS 411 (3)Database Systems
- CS 412 (3)Intro Data Mining
- Graphics- two of the following
- CS 414 (3)Multimedia Systems
- CS 418 (3)Computer Graphics I
- CS 419 (3)Advanced Comp Graphics
- Languages- all of the following:
- CS 422 (3)Programming Language Design
- CS 426 (3)Compiler Construction
- One of the following senior thesis or senior project combinations (3-6):
- CS 492 (3)Senior Project I, and either CS 493 (3)Senior Project in CS II, ACP or CS 494 (3)Senior Project in CS II
- CS 427 (3)Software Engineering I, and either CS 428 (3)Software Engineering II or CS 429 (3)Software Engineering II, ACP
- CS 499 (3-6)Senior Thesis
Scientific Computing (CSE) Track (27 hours):
- CS 421 (3)Programming Lang and Compilers
- CS 473 (3)Algorithms
- MATH 441 (3)Differential Equations
- CS 450 (3)Numerical Analysis
- CS 45x (3)Advanced course in numerical methods
- CS 499 (3)Senior Thesis
- Science specializations (9)see departmentally approved list.
Math Track (27 hours):
- CS 421 (3)Programming Lang and Compilers
- CS 473 (3)Algorithms
- MATH 441 (3)Differential Equations
- CS 450 (3)Numerical Analysis
- CS 475 (3)Formal Models of Computation
- Three 400-level MATH courses (9)
- CS 499 (3)Senior Thesis
Honors
For graduation with highest honors, a student must complete at least 2 hours of CS 397Individual Study or CS 499Senior Thesis, and must obtain the favorable recommendation of those instructor(s), in addition to all other requirements of the College of Engineering.
Software Engineering Certificate
For students interested in a career in software engineering, this program will provide the depth and breadth necessary for satisfying possible future software engineering accreditation requirements. It is open to all students in the computer science curriculum. To successfully earn this certificate, the following courses must be taken with an overall B average:
- CS 421
- CS 423
- CS 431 or CS 433
- CS 427 and CS 428/429 The courses above fulfill the CS Track-Systems specialization.
- CS 411 and CS 425
- Two more 400-level CS courses from a departmentally approved list.