Computer Science, BS

for the degree of Bachelor of Science in Computer Science


Computer Science Website

Computer Science Faculty


The Grainger College of Engineering Admissions

The Grainger College of Engineering

Current Program Educational Objectives


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 Computer Science website.

for the degree of Bachelor of Science in Computer Science


Graduation Requirements

Minimum Technical GPA: 2.0

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

Minimum Overall GPA: 2.0


Minimum hours required for graduation: 128 hours


General education: Students must complete the Campus General Education requirements including the campus general education language requirement.  If the option of CS 211 is chosen, it will satisfy a core course requirement and the Campus General Education Advanced Composition requirement.


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

Total Hours chosen from the following:25
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 be allowed to take ASTR 131 and ASTR 132 as free elective (maximum of 4 credit hours of ASTR 100-level can count towards graduation requirements for all Grainger College of Engineering Undergraduates).

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 417Virtual Reality3
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 528Obj-Oriented Progrmg & Design4
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 571Combinatorial Mathematics4
CS 572Extremal Graph Theory4
CS 573Algorithms4
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 440Artificial Intelligence3 or 4
CS 441Applied Machine Learning3 or 4
CS 442Trustworthy Machine 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 548Models of Cognitive Processes4
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 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 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 457Numerical Methods II3
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 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 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

Computer Science 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 at 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

The curriculum sequence below is a sample sequence, as all Grainger Engineering students work with a department academic advisor to achieve their educational goals, specific to their needs and preparation. The curriculum sequence can also be viewed via dynamic and static curricular maps, which include prerequisite sequencing.

General Education: Students must complete the Campus General Education requirements including the campus general education language requirement. 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 (This optional course is highly recommended for freshmen, who may use it as a free elective.)1CS 1283
CS 1243CS 1733
MATH 221 (MATH 220 may be substituted. MATH 220 is appropriate for students with no background in calculus. 4 of 5 credit hours count towards degree.)4MATH 2313
ENG 100 (Exernal transfer students take ENG 300.)1General Education Elective3
RHET 105 (if UIN is even) or General Education Elective (if UIN is odd)4-3General Education Elective (if UIN is even) or RHET 105 (if UIN is odd)3-4
Science Elective3 
 16-15 15-16
Second Year
First SemesterHoursSecond SemesterHours
CS 2221CS 2334
CS 2254CS 3613
MATH 2414MATH 257 (MATH 415 or MATH 416 may be substituted.)3
PHYS 2114PHYS 2124
General Education Elective3Free Elective3
 16 17
Third Year
First SemesterHoursSecond SemesterHours
CS 210 (CS 211 may be substituted.)2CS 3744
CS 3414CS Technical Elective3
CS 3573CS Technical Elective3
CS Technical Elective3General Education Elective3
Free Elective4Free Elective3
 16 16
Fourth Year
First SemesterHoursSecond SemesterHours
CS 4213CS Technical Elective3
CS Advanced Elective3CS Technical Elective3
CS Advanced Elective3CS Technical Elective3
Free Elective3Free Elective4
Free Elective4Free Elective3
 16 16
Total Hours 128