2006 - 2007
Programs of Study Spring 2006
UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN

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 102—General Chemistry I
1 CHEM 103—General Chemistry Lab I
(1) CS 100—Freshman Orientation in CS1
3 CS 173—Discrete Structures2
0 ENG 100—Engineering Lecture
5 MATH 220—Calculus I
4-3 RHET 105—Principles of Composition3 or elective in social sciences or humanities4
16-15 Total

Hours Second Semester
4 CS 125—Intro to Computer Science2
3 MATH 230—Calculus II
4 PHYS 211—Univ Physics, Mechanics
3-4 Elective in social sciences or humanities4 or RHET 105—Principles of Composition3
3 Elective in social sciences or humanities4
17-18 Total

Second year

Hours First Semester
4 CS 225—Data Structure & Softw Prin
3 CS 231 —Computer Architecture I
3 MATH 242—Calculus of Several Variables
4 PHYS 212—Univ Physics, Elec & Mag
3 Elective in social sciences or humanities4
17 Total

Hours Second Semester
3 CS 232—Computer Architecture II
3 CS 241 —Systems Programming
3 MATH 415 —Linear Algebra
2 PHYS 213—Univ Physics, Thermal Physics or PHYS 214—Univ Physics, Quantum Physics
6 Electives in social sciences or humanities4
17 Total

Third year

Hours First Semester
2 CS 210—Ethical & Prof'l Issues in CS 
3 CS 242—Programming 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 105—Principles 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 242—Calculus sequence
3 MATH 415—Linear Algebra
3-4 MATH 461/STAT 451 or STAT 400/MATH 463—Statstics and Probability
10 PHYS 211, 212, and 213 or 214—University physics sequence
4 CHEM 102 and 103—General 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 397—Individual Study or CS 499—Senior 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.