Computer Science, BS

for the degree of Bachelor of Science in Computer Science


The Computer Science curriculum provides both a broad and deep knowledge of the theory, design, and application of computer systems, with an emphasis on software systems. Because computing is ubiquitous, application areas involve virtually any field imaginable - from developing gene sequencing algorithms via techniques in computational biology, to designing user interfaces for mobile applications; from designing methods for high frequency trading, to creating computer generated graphics and special effects in the gaming industry; and from creating embedded real time systems to be deployed in medical devices, to analyzing social data from internet communication patterns. During the first two years the curriculum provides a strong foundation in mathematics, science, and computation. Advanced coursework both in more technical core areas and in areas of the student's choosing follows in the second two years. Graduates regularly go on to graduate study or leading positions in industry.

Both a combined B.S.-M.S. degree program and a B.S-M.C.S. degree program are available. The admission and course requirements are described on the Siebel School of Computing and Data Science website.

Current Program Educational Objectives

for the degree of Bachelor of Science in Computer Science


Graduation Requirements

Minimum hours required for graduation: 128 hours.

Minimum Technical GPA: 2.0

TGPA is required for CS and Math courses. See Technical GPA to clarify requirements.

University Requirements

Minimum of 40 hours of upper-division coursework, generally at the 300- or 400-level. These hours can be drawn from all elements of the degree.  Students should consult their academic advisor for additional guidance in fulfilling this requirement.

The university and residency requirements can be found in the Student Code (§ 3-801) and in the Academic Catalog.

General Education Requirements

Follows the campus General Education (Gen Ed) requirements. Some Gen Ed requirements may be met by courses required and/or electives in the program.

Composition I4-6
Advanced Composition3
Humanities & the Arts (6 hours)6
Natural Sciences & Technology (6 hours)6
fulfilled by PHYS 211 and PHYS 212
Social & Behavioral Sciences (6 hours)6
Cultural Studies: Non-Western Cultures (1 course)3
Cultural Studies: US Minority Cultures (1 course)3
Cultural Studies: Western/Comparative Cultures (1 course) 3
Quantitative Reasoning (2 courses, at least one course must be Quantitative Reasoning I)6-10
Language Requirement (Completion of the third semester or equivalent of a language other than English is required)0-15

Orientation and Professional Development

ENG 100Grainger Engineering Orientation Seminar (External transfer students take ENG 300.)1
Highly recommended, optional 1 credit hour course, CS 100 Computer Science Orientation. Credit hour counts toward free electives.
CS 210Ethical & Professional Issues2 or 3
or CS 211 Ethical and Professional Conduct
Total Hours3-4

Foundational Mathematics and Science

MATH 221Calculus I (MATH 220 may be substituted. MATH 220 is appropriate for students with no background in calculus. 4 of 5 credit hours count towards degree.)4
MATH 231Calculus II3
MATH 241Calculus III4
MATH 257Linear Algebra with Computational Applications3
or MATH 415 Applied Linear Algebra
or MATH 416 Abstract Linear Algebra
PHYS 211University Physics: Mechanics4
PHYS 212University Physics: Elec & Mag4
One Science elective course:3
Students must take one course from the Natural Science & Technology (NST) list, in addition to those taken as part of the General Education requirements. The course must be a course that is allowed for credit by the Grainger College of Engineering.
Exceptions to the list are: ASTR 100, PHYS 101 and PHYS 102, and CHEM 101.
Students who select either ASTR 121, ASTR 122, or ASTR 150 to satisfy the Science Elective requirement will not receive credit for any other 100-level ASTR course as a free elective (maximum of 4 credit hours of ASTR 100-level can count towards graduation requirements for all Grainger College of Engineering Undergraduates).
Total Hours25

Computer Science Technical Core

CS 124Introduction to Computer Science I3
CS 128Introduction to Computer Science II3
CS 173Discrete Structures3
CS 222Software Design Lab1
CS 225Data Structures4
CS 233Computer Architecture4
CS 341System Programming4
CS 357Numerical Methods I3
CS 361Probability & Statistics for Computer Science3
CS 374Introduction to Algorithms & Models of Computation4
CS 421Programming Languages & Compilers3
Total Hours35

Technical Electives

Students must take a minimum of (6) six additional technical electives with at least eighteen (18) cumulative credit hours and chosen from CS 397 and the CS 400-level courses, not including CS 400, CS 401, CS 402, CS 403 or CS 491. CS 500-level courses may be used as technical electives, but only with special permission from the CS Academic Office. CS 397 and CS 499 may be used with a cumulative maximum of six (6) credits from them counting as technical electives. One "CS-like" course in another department (e.g., ECE) may also be counted as a CS 400-level course with permission of the CS Academic Office. Non-CS tech electives will not be considered in focus areas.18
At least one (1) of the CS courses used for technical electives must be chosen from the list below of CS courses satisfying the team project requirement.
Team Project Course List:
CS 411Database Systems3 or 4
CS 415Game Development3 or 4
CS 417Virtual Reality3
CS 425Distributed Systems (4 hour section only)4
CS 427Software Engineering I3 or 4
CS 428Software Engineering II3 or 4
CS 429Software Engineering II, ACP3
CS 437Topics in Internet of Things3
CS 465User Interface Design4
CS 467Social Visualization3 or 4
CS 493Senior Project II, ACP3
CS 494Senior Project II3
CS 497CS Team Project1 to 3
At least three (3) of the CS courses used for technical electives must be chosen from a single focus area, from among the list of focus areas listed below. The team project course may be used as one of them.
CS 498 Special Topics and CS 598 Special Topics classes may be included in a focus area by department approval.
Software Foundations:
CS 407Cryptography3 or 4
CS 409The Art of Web Programming3
CS 422Programming Language Design3 or 4
CS 426Compiler Construction3 or 4
CS 427Software Engineering I3 or 4
CS 428Software Engineering II3 or 4
CS 429Software Engineering II, ACP3
CS 474Logic in Computer Science3 or 4
CS 476Program Verification3 or 4
CS 477Formal Software Development Methods3 or 4
CS 492Senior Project I3
CS 493Senior Project II, ACP3
CS 494Senior Project II3
CS 521Advanced Topics in Programming Systems4
CS 522Programming Language Semantics4
CS 524Concurrent Progrmg Languages4
CS 526Advanced Compiler Construction4
CS 527Topics in Software Engineering4
CS 576Topics in Automated Deduction2 to 4
Algorithms and Models of Computation:
CS 407Cryptography3 or 4
CS 413Intro to Combinatorics3 or 4
CS 473Algorithms4
CS 474Logic in Computer Science3 or 4
CS 475Formal Models of Computation3 or 4
CS 476Program Verification3 or 4
CS 477Formal Software Development Methods3 or 4
CS 481Advanced Topics in Stochastic Processes & Applications3 or 4
CS 482Simulation3 or 4
CS 539Distributed Algorithms4
CS 571Combinatorial Mathematics4
CS 572Extremal Graph Theory4
CS 574Randomized Algorithms4
CS 575Methods of Combinatorics4
CS 576Topics in Automated Deduction2 to 4
CS 579Computational Complexity4
CS 580Topics in Algorithmic Game Theory4
CS 581Algorithmic Genomic Biology4
CS 583Approximation Algorithms4
CS 584Embedded System Verification4
CS 586Combinatorial Optimization4
Intelligence and Big Data:
CS 410Text Information Systems3 or 4
CS 411Database Systems3 or 4
CS 412Introduction to Data Mining3 or 4
CS 414Multimedia Systems3 or 4
CS 416Data Visualization3 or 4
CS 434Real World Algorithms for IoT and Data Science3 or 4
CS 440Artificial Intelligence3 or 4
CS 441Applied Machine Learning3 or 4
CS 442Trustworthy Machine Learning3 or 4
CS 443Reinforcement Learning3 or 4
CS 444Deep Learning for Computer Vision3 or 4
CS 445Computational Photography3 or 4
CS 446Machine Learning3 or 4
CS 447Natural Language Processing3 or 4
CS 448Audio Computing Laboratory3 or 4
CS 464Topics in Societal and Ethical Impacts of Computer Technology3
CS 466Introduction to Bioinformatics3 or 4
CS 467Social Visualization3 or 4
CS 469Computational Advertising Infrastructure3
CS 470Social and Information Networks3
CS 510Advanced Information Retrieval4
CS 511Advanced Data Management4
CS 512Data Mining Principles4
CS 514Advanced Topics in Network Science4
CS 540Deep Learning Theory4
CS 542Statistical Reinforcement Learning4
CS 543Computer Vision4
CS 544Optimiz in Computer Vision4
CS 545Machine Learning for Signal Processing4
CS 546Advanced Topics in Natural Language Processing4
CS 562Advanced Topics in Security, Privacy, and Machine Learning4
CS 567Social Signals and Social Media4
CS 576Topics in Automated Deduction2 to 4
CS 582Machine Learning for Bioinformatics4
Human and Social Impact:
CS 409The Art of Web Programming3 or 4
CS 415Game Development3 or 4
CS 416Data Visualization3 or 4
CS 417Virtual Reality3 or 4
CS 441Applied Machine Learning3 or 4
CS 442Trustworthy Machine Learning3 or 4
CS 460Security Laboratory3 or 4
CS 461Computer Security I4
CS 463Computer Security II3 or 4
CS 464Topics in Societal and Ethical Impacts of Computer Technology3
CS 465User Interface Design4
CS 467Social Visualization3 or 4
CS 468Tech and Advertising Campaigns3
CS 469Computational Advertising Infrastructure3
CS 470Social and Information Networks3
CS 500Current Topics in Computing Education Research4
CS 514Advanced Topics in Network Science4
CS 562Advanced Topics in Security, Privacy, and Machine Learning4
CS 563Advanced Computer Security4
CS 565Human-Computer Interaction4
CS 567Social Signals and Social Media4
Media:
CS 409The Art of Web Programming3 or 4
CS 414Multimedia Systems3 or 4
CS 415Game Development3 or 4
CS 416Data Visualization3 or 4
CS 417Virtual Reality3 or 4
CS 418Interactive Computer Graphics3 or 4
CS 419Production Computer Graphics3 or 4
CS 445Computational Photography3 or 4
CS 448Audio Computing Laboratory3 or 4
CS 465User Interface Design4
CS 467Social Visualization3 or 4
CS 468Tech and Advertising Campaigns3
CS 469Computational Advertising Infrastructure3 or 4
CS 519Scientific Visualization4
CS 545Machine Learning for Signal Processing4
CS 565Human-Computer Interaction4
CS 567Social Signals and Social Media4
Scientific, Parallel, and High Perfomance Computing:
CS 419Production Computer Graphics3 or 4
CS 435Cloud Networking3 or 4
CS 450Numerical Analysis3 or 4
CS 466Introduction to Bioinformatics3 or 4
CS 482Simulation3 or 4
CS 483Applied Parallel Programming4
CS 484Parallel Programming3 or 4
CS 519Scientific Visualization4
CS 554Parallel Numerical Algorithms4
CS 555Numerical Methods for PDEs4
CS 556Iterative & Multigrid Methods4
CS 558Topics in Numerical Analysis4
Distributed Systems, Networking, and Security:
CS 407Cryptography3 or 4
CS 423Operating Systems Design3 or 4
CS 424Real-Time Systems3 or 4
CS 425Distributed Systems3 or 4
CS 431Embedded Systems3 or 4
CS 435Cloud Networking3 or 4
CS 436Computer Networking Laboratory3 or 4
CS 437Topics in Internet of Things3 or 4
CS 438Communication Networks3 or 4
CS 439Wireless Networks3 or 4
CS 460Security Laboratory3 or 4
CS 461Computer Security I4
CS 463Computer Security II3 or 4
CS 483Applied Parallel Programming4
CS 484Parallel Programming3 or 4
CS 523Advanced Operating Systems4
CS 524Concurrent Progrmg Languages4
CS 525Advanced Distributed Systems4
CS 537Advanced Topics in Internet of Things (IoT)4
CS 538Advanced Computer Networks4
CS 539Distributed Algorithms4
CS 562Advanced Topics in Security, Privacy, and Machine Learning4
CS 563Advanced Computer Security4
Machines:
CS 423Operating Systems Design3 or 4
CS 424Real-Time Systems3 or 4
CS 426Compiler Construction3 or 4
CS 431Embedded Systems3 or 4
CS 433Computer System Organization3 or 4
CS 434Real World Algorithms for IoT and Data Science3 or 4
CS 437Topics in Internet of Things3 or 4
CS 484Parallel Programming3 or 4
CS 523Advanced Operating Systems4
CS 526Advanced Compiler Construction4
CS 533Parallel Computer Architecture4
CS 534Advanced Topics in Computer Architecture4
CS 536Fault-Tolerant Dig Syst Design4
CS 541Computer Systems Analysis4
CS 584Embedded System Verification4
CS 588Autonomous Vehicle System Engineering4

Advanced Electives

Students must take for a letter grade a minimum of two (2) advanced elective courses comprising at least six (6) credit hours. These advanced elective courses must be distinct from courses used to satisfy the technical electives. They may be chosen from CS 397 Individual Study and the 400-level coursework offered for letter grade in ANY area offered at the University of Illinois Urbana-Champaign. It is expected that students will select these additional advanced courses in a way that best augments their program of study. Consultation with a faculty mentors is highly encouraged. A maximum of six (6) credit hours of CS 397 may be used in the combination of technical electives and advanced electives.6
Total Hours6

Free Electives

Additional course work,subject to the Grainger College of Engineering restrictions to Free Electives,so that there are at least 128 credit hours earned toward the degree.24-25
Total Hours of Curriculum to Graduate128

for the degree of Bachelor of Science in Computer Science


Sample Sequence

This sample sequence is intended to be used only as a guide for degree completion. All students should work individually with their academic advisors to decide the actual course selection and sequence that works best for them based on their academic preparation and goals. Enrichment programming such as study abroad, minors, internships, and so on may impact the structure of this four-year plan. Course availability is not guaranteed during the semester indicated in the sample sequence. The curriculum sequence can also be viewed via dynamic and static curricular maps, which include prerequisite sequencing.

Students must fulfill their Language Other Than English requirement by successfully completing a third level of a language other than English. See the corresponding section on the Degree and General Education Requirements. If the option of CS 211 is chosen, it will satisfy a core course requirement and the Campus General Education Advanced Composition requirement.

Free Electives: Additional course work, subject to the Grainger College of Engineering restrictions to Free Electives, so that there are at least 128 credit hours earned toward the degree.

First Year
First SemesterHoursSecond SemesterHours
CS 100 (Optional course, highly recommended, free elective)1CS 1283
CS 1243CS 1733
MATH 221 (MATH 220 may be substituted)4MATH 2313
ENG 1001General Education course (Choose a Humanities or Social/Behavioral Science course with Cultural Studies designation)3
Science elective course3General Education (Choose a Humanities or Social/Behavioral Science course) or Composition I course3-4
Composition I or General Education (Choose a Humanities or Social/Behavioral Science course)4-3 
 16 15
Second Year
First SemesterHoursSecond SemesterHours
CS 2221CS 2334
CS 2254CS 3613
MATH 2414MATH 2573
PHYS 2114PHYS 2124
General Education course (choose a Humanities or Social/Behavioral Science course with Cultural Studies designation)3Free elective course3
 16 17
Third Year
First SemesterHoursSecond SemesterHours
CS 210 (CS 211 may be substituted)2CS 3744
CS 3414CS Technical elective course3
CS 3573CS Technical elective course3
CS Technical elective course3General Education course (choose a Humanities or Social/Behavioral Science course with Cultural Studies designation)3
Language Other Than English (3rd level) course4Free elective course3
 16 16
Fourth Year
First SemesterHoursSecond SemesterHours
CS 4213CS Technical elective course3
CS Advanced elective course3CS Technical elective course3
CS Advanced elective course3CS Technical elective course3
Free elective course3Free elective course4
Free elective course4Free elective course3
 16 16
Total Hours 128

for the degree of Bachelor of Science Major in Computer Science


By the time of graduation, students will have the ability to:

  1. Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions. 
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline. 
  3. Communicate effectively in a variety of professional contexts. 
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles. 
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline. 
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions.