Curriculum in Computer Science
Department of Computer Science
1210 Siebel Center
201 North Goodwin Avenue
Urbana, IL 61801
(217) 333-4428
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. Effective date: Fall 2005
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 |
5 | MATH 220Calculus I |
4-3 | RHET 105Principles of Composition3 or elective in social sciences or humanities4 |
16-15 | Total |
Hours | Second Semester |
---|---|
4 | CS 125Intro to Computer Science2 |
3 | MATH 230Calculus II |
4 | PHYS 211Univ Physics, Mechanics |
3-4 | Elective in social sciences or humanities4 or RHET 105Principles of Composition3 |
3 | Elective in social sciences or humanities4 |
17-18 | Total |
Second year
Hours | First Semester |
---|---|
4 | CS 225Data Structure & Softw Prin |
3 | CS 231 Computer Architecture I |
3 | MATH 242Calculus of Several Variables |
4 | PHYS 212Univ Physics, Elec & Mag |
3 | Elective in social sciences or humanities4 |
17 | 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 humanities4 |
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 humanities4 |
4 | Free elective |
15 | Total |
Hours | Second Semester |
---|---|
3 | MATH 461 Probability Theory I |
9 | Technical track electives |
4 | Free elective |
16 | Total |
Fourth year
Hours | First Semester |
---|---|
9 | Technical track electives |
6 | Free electives |
15 | Total |
Hours | Second Semester |
---|---|
6 | Technical track electives5 |
3 | Technical track elective 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. 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.
4. 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.
5. See techinical 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 242Calculus sequence |
3 | MATH 415Linear Algebra |
3-4 | MATH 461/STAT 451 or STAT 400/MATH 463Statstics 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 | Techincal Track |
---|---|
24-27 | See technical track option choices 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 areas: Computer Science, Computational Science and Engineering, or Mathematics. Students who choose Computer Science must also choose a concentration within CS, while students in CSE must choose a scientific concentration. (Concentrations are subject to change; please consult the CS Department Web page.) 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 concentrations (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 concentration (9)details still to be determined
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 Specialization
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 complete this specialization, 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/9 The courses above fulfill the CS track-Systems concentration.
- CS 411 and CS 425
- Two more courses from a list of 400-level CS courses that can be found on the department's web page.