Degree requirements for all majors administered by the department of computer science are listed below.

- BS in Computer Science (ENG)
- BS in Math/Computer Science (LAS)
- BS in Stats/Computer Science (LAS)
- 5 year BS/MS in Comptuer Science (ENG)
- Minor in Computer Science
- Software Engineering Certificate

#### B.S. in Computer Science (ENG)

* - for students entering Fall 2005 or later. Please see Steve Herzog if you entered prior to 2005.

**University and College of Engineering Requirements (39 - 51 hours)**

Hours | Courses |
---|---|

4 | Composition I |

3 | Advanced Composition - can be completed by choosing one of the following options - see technical track requirements below for details: CS 427^{} and CS 429^{}; CS 492^{} and CS 493^{}; CS 499^{} |

0 | Eng 100^{} |

4 | CHEM 102^{} and CHEM 103^{} |

10 | Physics Sequence - PHYS 211^{}, 212^{}, and either 213^{} or 214^{} |

18 | Humanities and Social Sciences |

0-12 | Foreign Language |

**Department of Computer Science Requirements (69 - 76 hours)**

Hours | Courses |
---|---|

1 | CS 100^{} (recommended but not required) |

11-12 | Calculus through Math 241 Calculus III |

3 | MATH 415^{} Applied Linear Algebra (also satisfying this requirement are MATH 416^{} Abstract Linear Algebra and MATH 426^{} Honors Linear Algebra) |

3-4 | MATH 461^{} Probability Theory or MATH 463^{} Statistics and Probability I |

4 | CS 125^{} Intro to Computer Science |

3 | CS 173^{} Discrete Structures |

2 | CS 210^{} Ethical and Professional Issues in CS |

4 | CS 225^{} Data Structure and Software Principles |

3 | CS 231^{} Computer Architecture I (DISCONTINUED AFTER FALL 2011. SEE NOTE BELOW) |

3 | CS 232^{} Computer Architecture II (DISCONTINUED AFTER SPRING 2012. SEE NOTE BELOW) |

4 | CS 233 Computer Architecture (SEE NOTE BELOW) |

NOTEAfter Spring 2012, material from CS 231 Computer Architecture I and CS 232 Computer Architecture II will be combined into a single 4-hour course, CS 233 Computer Architecture. CS 231 and CS 232 will be discontinued and students who have not completed both courses by Fall 2012 must instead take the new single Computer Architecture course. This course will be offered for the first time in Fall 2012 as CS 398 Special Topics ^{} and thereafter as CS 233. |

4 | CS 241^{} System Programming |

3 | CS 242^{} Programming Studio |

3 | CS 373^{} (was CS 273) Theory of Computation |

24-27 | Technical Track - Choose one of the following: |

Students must also complete a minimum of 18 hours of Social/Behavioral Science and Humanities requirements. For specific requirements see the Liberal Education Electives page on the Engineering wiki.

In addition, students have to complete a number of hours of free electives. The number varies based on how many hours of major and general education hours a student completes.

CautionNote that there are a few limitations on what students can take to complete free electives. These limitations are spelled out on this site on the Engineering wiki. |

Free electives are courses beyond major and general education requirements that students complete to attain the **128 Total Hours Required**.

You can also find the prerequisite flowcharts, mapping the requirements for the major - including separate flowcharts for each different technical track - on this wiki site.

#### B.S. in Math/Computer Science (LAS)

Students must complete at least 120 total hours from the following university, college and departmental requirements. For more complete information on college and university requirements, please consult the LAS guidelines here.^{}

**University and College of Liberal Arts and Sciences Requirements (47 hours)**

Hours | Courses |
---|---|

4 | Composition I^{} |

3 | Advanced Composition^{}May be overlapped with other requirements and free electives increased. |

0-16 | Foreign Language^{} |

24 | General Education^{} |

**Department of Computer Science Requirements (58 - 64 hours)**

Hours | Courses |
---|---|

11-12 | Calculus through MATH 241^{} Calculus III |

3 | MATH 347^{} Fundamental Mathematics |

4 | CS 125^{} Intro to Computer Science |

2 | CS 173^{} Discrete Structures |

4 | CS 225^{} Data Structure and Software Principles |

3 | CS 231^{} Computer Architecture I (DISCONTINUED AFTER FALL 2011. SEE NOTE BELOW) |

3 | CS 232^{} Computer Architecture II (DISCONTINUED AFTER SPRING 2012. SEE NOTE BELOW) |

4 | CS 233 Computer Architecture (SEE NOTE BELOW) |

NOTEAfter Spring 2012, material from CS 231 Computer Architecture I and CS 232 Computer Architecture II will be combined into a single 4-hour course, CS 233 Computer Architecture. CS 231 and CS 232 will be discontinued and students who have not completed both courses by Fall 2012 must instead take the new single Computer Architecture course. This course will be offered for the first time in Fall 2012 as CS 398 Special Topics ^{} and thereafter as CS 233. |

4 | CS 241^{} System Programming (Required for students who began as new freshmen - at UIUC or at another institution - Fall 2007 and after. Students who began university before Fall 2007 may substitute this course for CS 423^{} Operating Systems Design) |

3 | CS 242^{} Programming Studio (Required for students who began as new freshmen - at UIUC or at another institution - Fall 2007 and after. Recommended but not required for students who began university before Fall 2007) |

3 | CS 357 (was CS 257)^{} Numerical Methods I |

3 | CS 373^{} (was CS 273) Theory of Computation |

3 - 4 | MATH 463/STAT 400^{} Statistics and Probability I, or MATH 461/STAT 451^{} Probability Theory I |

3 | MATH 412^{} Graph Theory, or MATH 417^{} Intro to Abstract Algebra |

3 | MATH 415^{} Linear Algebra, or MATH 416^{} Abstract Linear Algebra |

3 | MATH 441^{} Differential Equations, or MATH 446^{} Applied Complex Variables, or MATH 484^{} Nonlinear Programming |

3 | MATH 444^{} Elementary Real Analysis, or MATH 447^{} Real Variables |

3 | MATH 414^{} Mathematical Logic, or CS/MATH 473^{} Algorithms, or CS/MATH 475^{} Formal Models of Computation |

3 | CS 421^{} Programming Languages and Compilers or CS 423^{}Operating Systems Design |

3 | CS 457^{} Numerical Methods II |

0 - 6 | CS 499^{} Senior Thesis, or CS 492^{} Senior Project in CS I and either CS 493^{} Senior Project in CS II, ACP or CS 494^{} Senior Project in CS II. These courses are recommended but not required) |

**120 Total Hours Required**

A course requirements flowchart^{} (pdf) is available.

#### B.S. in Stats/Computer Science

Students must complete at least 120 total hours and the following university, college and department requirements. For more complete information about college and university requirements, please consult the LAS guidelines here.^{}

**University and College of Liberal Arts and Sciences Requirements (47 hours)**

Hours | Courses |
---|---|

4 | Composition I^{} |

3 | Advanced Composition^{}May be overlapped with other requirements and free electives increased. |

0-16 | Foreign Language^{} |

24 | General Education^{} |

**Department of Computer Science Requirements (58 - 64 hours)**

Hours | Courses |
---|---|

11-12 | Calculus through MATH 241^{} Calculus III |

4 | CS 125^{} Intro to Computer Science |

2 | CS 173^{} Discrete Structures |

4 | CS 225^{} Data Structure and Software Principles |

3 | CS 231^{} Computer Architecture I (DISCONTINUED AFTER FALL 2011. SEE NOTE BELOW) |

3 | CS 232^{} Computer Architecture II (DISCONTINUED AFTER SPRING 2012. SEE NOTE BELOW) |

4 | CS 233 Computer Architecture (SEE NOTE BELOW) |

NOTEAfter Spring 2012, material from CS 231 Computer Architecture I and CS 232 Computer Architecture II will be combined into a single 4-hour course, CS 233 Computer Architecture. CS 231 and CS 232 will be discontinued and students who have not completed both courses by Fall 2012 must instead take the new single Computer Architecture course. This course will be offered for the first time in Fall 2012 as CS 398 Special Topics ^{} and thereafter as CS 233. |

3 | CS 241^{} System Programming |

3 | CS 242^{} Programming Studio |

3 | CS 357^{} Numerical Methods |

3 | CS 373^{} Theory of Computation |

4 | STAT 400^{} Statistics and Probability I, or MATH 461/STAT 451^{} Probability Theory I |

3 | STAT 410^{} Statistics and Probability II |

3 | STAT 428^{} Statistical Computing |

3 | MATH 415^{} Linear Algebra, or MATH 418^{} Advanced Linear Algebra |

3 | MATH 347^{} Fundamental Mathematics, or MATH 441^{} Differential Equations, or MATH 444^{} Elementary Real Analysis, or MATH 447^{} Real Variables |

3 | CS 473^{} Algorithms, or CS 475^{} Formal Models of Computation |

3 | CS 421^{}Programming Languages and Compilers ,or CS 423^{}Operating Systems Design |

3 | CS 411^{}Database Systems, or CS 418^{} Computer Graphics, or CS 446^{} Pattern Recognition and Machine Learning |

3 | STAT 420^{} Methods of Applied Statistics, or STAT 424^{} Analysis of Variance, or STAT 425^{} Applied Regression and Design |

3 | Either STAT 100^{} Statistics taken during the first 60 hours of coursework (to provide the student an early introduction to statistical concepts), or an additional 400-level statistics course, of which STAT 426^{} Sampling and Categorical Data is recommended. (Taking the additional 400-level statistics course is designed for students who wish to take STAT 400^{} before their junior year.) |

0 - 6 | CS 499^{} Senior Thesis, or CS 492^{} Senior Project in CS I and either CS 493^{} Senior Project in CS II, ACP or CS 494^{} Senior Project in CS II. These courses are recommended but not required. |

9 - 11 | Electives |

**120 Total Hours Required**

For additional help in choosing courses, below are prerequisite flowcharts.

- Prerequisite flowchart
^{}for students who started before Fall 2007 - Prerequisite flowchart
^{}for students who started Fall 2007 or later.

#### 5 Year B.S./M.S. in Computer Science (ENG)

For more information or to apply please click HERE^{}

**B.S. Component: 120 hours plus 3 "Breadth Requirement" courses for 9-12 graduate hours**

- Same required courses as the traditional B.S. degree with the minimum hours required reduced to 120 hours.
- Must complete 3 "Breadth Requirement" courses: three different courses, each from a different area, from the following eight core areas with a grade of B- or higher.
- University undergraduate student minimum residence requirement satisfied.
- Overall GPA of 3.0 or higher maintained through the completion of the B.S. component of the program.

**M.S. Component: Minimum 16-19 additional coursework hours plus 4 hours of CS 599 thesis**

- Program is identical to the traditional M.S. program with the "Breadth Requirement" satisfied while still classified as an undergraduate.
- Students who take the "Breadth Requirement" courses for 3 credit hours instead of 4 credit hours will need to complete a minimum of 19 additional coursework hours.
- Students must satisfy the university's graduate student minimum residence requirement.
- Students must complete remaining M.S. degree requirements in one academic year (fall-spring-summer or spring-summer-fall).
- Students must maintain an overall GPA of 3.0 through completion of the M.S. component of the program.

#### Minor in Computer Science

**The following three courses are specifically required:**

Hours | Course |
---|---|

4 | CS 125^{} Intro to Computer Science |

3 | CS 173^{} Discrete Structures |

4 | CS 225^{} Data Structures |

**Students must take three additional courses from among the following approved courses.** **At least one of the three courses must be at the 400-level****. Students may apply two or even all three of the additional courses from among the 400-level offerings.**

Hours | Course |
---|---|

3 | CS 231^{} Computer Architecture (NOTE: This course was discontinued after Fall 2011) |

3 | CS 232^{} Computer Architecture II (NOTE: This course is being discontinued after Spring 2012) |

4 | CS 233 Computer Architecture (NOTE: This course will be offered as CS 398 Special Topics^{} during Fall 2012 and Spring 2013, and from Spring 2013 and thereafter as CS 233). |

3 | CS 241^{} System Programming (NOTE: This course tends to fill up with CS majors) |

3 | CS 357^{} Numerical Methods |

3 | CS 373^{} (was CS 273) Theory of Computation |

3 | Any course number between CS 410 and CS 498 except CS 413, CS 492, CS 493, CS494. |

- ECE 190
^{}may be substituted for CS 125. - MATH 213
^{}may be substituted for CS 173. - ECE 391
^{}may be substituted for CS 241.

To declare a minor, you should fill out a Statment of Intent to Pursue a Campus-Approved Minor form^{}. Bring it to 1210 Siebel Center for a signature, then submit the form to your college office.

Note that declaring a minor in CS **will not** give you an advantage in registering for CS courses.

#### Software Engineering Certificate

The Software Engineering certificate is available to Computer Science majors in the College of Engineering and requires that the student complete the B.S. Requirements with the following additional requirements.

Students must achieve a minimum B-average (3.0) in courses taken for the Software Engineering Certificate and must "declare" their intent to pursue the Software Engineering Certificate before their last undergraduate semester. To "declare" the Software Engineering Certificate, simply send an email to undergrad@cs.illinois.edu^{} and include your UIN and netid.

All the following courses must be taken.

Hours | Courses |
---|---|

4 | CS 241^{} Systems Programming |

3 | CS 411^{} Database Systems |

3 | CS 421^{} Programming Languages and Compilers |

3 | CS 425^{} Distributed Systems |

3 | CS 431^{} Embedded Systems or CS 433^{} Computer System Organization |

3 | CS 473^{} Algorithms or CS 475^{} Formal Models of Computation |

Students must also take CS 427^{} Software Engineering I and either CS 428^{} Software Engineering II or CS 429^{} Software Engineering II, ACP. CS 429 satisfies the Advanced Composition^{} requirement. It is assumed that students in the Software Engineering Specialization program will not take the senior project but will take these two courses instead.

Students must take two courses from the following list. Other software-oriented courses may be used, subject to approval by the Director of Undergraduate Programs:

Hours | Courses |
---|---|

3 | CS 410^{} Intro to Text Info Systems |

3 | CS 412^{} Intro Data Mining |

3 | CS 414^{} Multimedia Systems |

3 | CS 418^{} Computer Graphics |

3 | CS 419^{} Advanced Computer Graphics |

3 | CS 420^{} Intro to Parallel Programming |

3 | CS 422^{} Programming Language Design |

3 | CS 423^{} Operating Systems Design* |

3 | CS 424^{} Real-Time Systems |

3 | CS 426^{} Compiler Construction |

3 | CS 431^{} Embedded Systems** |

3 | CS 433^{} Computer System Organization** |

3 | CS 438^{} Communication Networks |

3 | CS 440^{} Artificial Intelligence |

3 | CS 446^{} Machine Learning & Pattern Rec |

3 | CS 450^{} Numerical Analysis |

3 | CS 458 Numerical Linear Algebra |

3 | CS 461^{} Computer Security I |

3 | CS 463^{} Computer Security II |

3 | CS 465^{} User Interface Design |

3 | CS 476^{} Program Verification |

3 | CS 477^{} Formal Software Dev Methods |

* Students who took CS 423 Fall 2005 or earlier should choose another course.

** Students who chose CS 431 to fulfill the core requirements may choose CS 433 as one of the two additional courses - and vice-versa.