Department of Computer Science
Important Note: This is the archived version of the 2013–2015 Undergraduate Catalog. The information on these pages was archived on August 6, 2013 and will not be updated as requirement and/or program changes are approved. Please see www.uic.edu/ucat for the most uptodate requirements.
BS in Computer Science Degree Requirements—Computer Science
 Sample Course Schedule—Computer Science
 Degree Requirements—Computer Science with Computer Systems Concentration
 Sample Course Schedule—Computer Science with Computer Systems Concentration
 Degree Requirements—Computer Science with HumanCentered Computing Concentration
 Sample Course Schedule—Computer Science with HumanCentered Computing Concentration
 Degree Requirements—Computer Science with Software Engineering Concentration
 Sample Course Schedule—Computer Science with Software Engineering Concentration
1120 Science and Engineering Offices (SEO)
(312) 996–3422
ugrad@cs.uic.edu
http://www.cs.uic.edu
Administration:
Professor and Head of the Department, Robert Sloan
Director of Undergraduate Studies, John Lillis, lillis@uic.edu
Student Services Office: 905 SEO, (312) 996–3463
Computer science is a relatively young but extremely rich and diverse discipline. At one end of the spectrum, computer science may be viewed as the formal study of what can be computed and what resources are required for computation. At the other end of the spectrum, computer science may be seen as the application of human resources, software, and, of course, computers to solve computational problems relating to society’s and individuals’ needs.
A welltrained computer scientist requires knowledge of both ends of this spectrum—and several points in between. The Computer Science program in the Department of Computer Science is intended to provide that broad background. Along with a strong theoretical component, the Computer Science program places special emphasis on the development of applied skills in design, implementation, and validation of computer systems. In our experience, industry and graduate programs alike value—above all—people who can solve real problems, and who come prepared to use the tools of their trade.
All students acquire a common background in the fundamental areas of computer science: computer systems, organization and architecture, algorithms and data structures, principles of software design, elements of the theory of computation, and operating systems. In addition, students obtain specialized backgrounds through the selection of five technical elective courses in computer science. Required and elective courses in the sciences and mathematics, along with additional courses in writing, humanities, social sciences, and the arts give students the opportunity to expand their horizons and to prepare for multidisciplinary careers.
There are very few areas in modern society untouched by computer science. Computer science is present in everything from healthcare, telecommunications, and entertainment, to transportation, education, and defense. The result of this diversity is that a computer scientist must be capable of working with people outside his or her field. In support of this, the Computer Science program provides its students with a wellrounded education requiring significant course work outside the Department of Computer Science, placing a strong emphasis on writing and communication skills.
Given the breadth and diversity of the computer science discipline, the Department of Computer Science also offers a Computer Systems Concentration within the BS in Computer Science program. The Computer Systems Concentration represents a subspecialty that provides more emphasis on understanding and designing computer hardware. The student continues to learn the fundamental areas of computer science, including programming, data structures, discrete math, algorithms, formal languages, architecture, and operating systems. Unlike traditional computer science, however, the student also studies lowlevel circuit analysis and highlevel system design, and has the option to take additional hardwareoriented courses. The result is a unique blend of computer science and computer engineering.
The Department of Computer Science also offers a HumanCentered Computing Concentration (HCC) within the BS in Computer Science program. The HCC concentration emphasizes the knowledge and skills needed to begin a professional practice in areas such as: userinterface design and development for desktop or mobile devices; computer graphics and animation for video games, movie special effects; and scientific, engineering and medical visualization. The concentration continues to cover in depth the fundamental areas of computer science including programming, data structures, discrete mathematics, algorithms, formal languages, computer architecture, and operating systems. In addition the concentration focuses on key topics of humancentered computing practice such as userinterface design, computer graphics, visual media, and natural language processing.
The Department of Computer Science also offers a Software Engineering Concentration within the BS in Computer Science program. The Software Engineering Concentration emphasizes the knowledge and skills needed to begin a professional practice in software engineering. The concentration continues to cover in depth the fundamental areas of computer science, including programming, data structures, discrete mathematics, algorithms, formal languages, computer architecture, and operating systems. In addition, the concentration focuses on key topics of software engineering practice such as software cost estimation, largescale software development, and risk management.
Degree Requirements—Computer Science
To earn a Bachelor of Science in Computer Science degree from UIC, students need to complete University, college, and department degree requirements. The Department of Computer Science degree requirements are outlined below. Students should consult the College of Engineering section for additional degree requirements and college academic policies.
BS in Computer Science Degree Requirements  Hours 
Nonengineering and General Education Requirements  50 
Required in the College of Engineering  42 
Technical Electives  15 
Required Mathematics Courses  9 
Free Electives  12 
Total Hours—BS in Computer Science  128 
Nonengineering and General Education Requirements
Courses  Hours 
ENGL 160—Academic Writing I: Writing for Academic and Public Context  3 
ENGL 161—Academic Writing II: Writing for Inquiry and Research  3 
Exploring World Cultures coursea  3 
Understanding the Creative Arts coursea  3 
Understanding the Past coursea  3 
Understanding the Individual and Society coursea  3 
Understanding U.S. Society coursea  3 
Humanities/Social Sciences/Art Electivesb  6 
MATH 180—Calculus Ic  5 
MATH 181—Calculus IIc  5 
MATH 210—Calculus IIIc  3 
Science Electives See belowd 
10 
Total Hours—Nonengineering and General Education Requirements  50 
a Students should consult the General Education section of the catalog for a list of approved courses in this category.
b These electives must be selected from a list of approved courses provided by the CS department.
c This course is approved for the Analyzing the Natural World General Education category.
d All courses on the science elective list below are approved for the Analyzing the Natural World General Education category.
Required in the College of Engineering
Courses  Hours 
ENGR 100—Orientationa  0a 
CS 111—Program Design I  3 
CS 141—Program Design II  3 
CS 151—Mathematical Foundations of Computation  3 
CS 211—Programming Practicum  2 
CS 251—Data Structures  4 
CS 261—Machine Organization  3 
CS 301—Languages and Automata  3 
CS 341—Programming Language Design and Implementation  3 
CS 342—Software Design  3 
CS 361—Computer Systems  3 
CS 362—Computer Design  3 
CS 377—Communication and Ethical Issues in Computing  3 
CS 385—Operating Systems Concepts and Design  3 
CS 401—Computer Algorithms I  3 
CS 499—Professional Development Seminar  0 
Total Hours—Required in the College of Engineering  42 
a ENGR 100 is a onesemesterhour course, but the hour does not count toward the total required for graduation.
Technical Electives
Courses  Hours 
Students must complete at least fifteen hours of courses from among the following list of courses, only one of which may be outside the CS rubric:  15 
CS 398—Undergraduate Design/Research (3)  
CS 411—Artificial Intelligence (3)  
CS 415—Computer Vision I (3)  
CS 421—Natural Language Processing (3)  
CS 422—User Interface Design and Programming (3)  
CS 424—Visualization and Visual Analytics (3)  
CS 426—Video Game Design and Development (3)  
CS 440—Software Engineering I (3)  
CS 441—Distributed Object Programming Using Middleware (3)  
CS 442—Software Engineering II (3)  
CS 450—Introduction to Networking (3)  
CS 455—Design and Implementation of Network Protocols (3)  
CS 466—Advanced Computer Architecture (3)  
CS 469—Computer Systems Design (3)  
CS 473—Compiler Design (3)  
CS 474—ObjectOriented Languages and Environments (3)  
CS 476—Programming Language Design (3)  
CS 480—Database Systems (4)  
CS 485—Networked Operating Systems Programming (4)  
CS 487—Building Secure Computing Systems (3)  
CS 488—Computer Graphics I (3)  
MCS 320—Introduction to Symbolic Computation (3)  
MCS 425—Codes and Cryptography (3)  
MCS 471—Numerical Analysis (3)  
MCS 481—Computational Geometry (3)  
STAT 471—Linear and Nonlinear Programming (3)  
Total Hours—Technical Electives  15 
Required Mathematics Courses
Courses  Hours 
Nine hours from among the following list of courses, with at least one course taken from IE 342— Probability and Statistics for Engineers or STAT 381—Applied Statistical Methods:  9 
One of the following courses must be chosen:  
IE 342—Probability and Statistics for Engineers (3)a OR STAT 381—Applied Statistical Methods (3) 

MATH 215—Introduction to Advanced Mathematics (3) 

MATH 220—Introduction to Differential Equations (3)  
MATH 310—Applied Linear Algebra (3) OR MATH 320—Linear Algebra I (3) 

MATH 430—Formal Logic I (3)  
MATH 435—Foundations of Number Theory (3)  
MATH 436—Number Theory for Applications (3)  
MCS 421—Combinatorics (3)  
MCS 423—Graph Theory (3)  
MCS 471—Numerical Analysis(3)b  
STAT 401—Introduction to Probability (3)  
STAT 473—Game Theory (3)  
Total Hours—Required Mathematics Courses  9 
a Students who take IE 342 will not receive credit for either STAT 381 or STAT 401.
b Students may choose to use MCS 471—Numerical Analysis as either a CS technical elective from outside the CS department or as a required mathematics course, but not both.
Science Electives
Every student must take two courses from the list below. If additional hours are necessary to complete the ten required hours, additional courses may be other courses on this list, courses that have any of these courses as prerequisites, or other sciences and quantitative social sciences courses from a list maintained by the Computer Science department
Courses  Hours 
Eight to ten hours from among the following list of courses.a If chosen courses total less than ten hours remaining hours can be satisfied as described above.  10 
BIOS 100—Biology of Cells and Organisms (5)  
BIOS 101—Biology of Populations and Communities (5)  
CHEM 112—General Chemistry I (5) OR CHEM 116—Honors General Chemistry I (5) 

CHEM 114—General Chemistry II (5) OR CHEM 118—Honors General Chemistry II (5) 

PHYS 141—General Physics I (Mechanics) (4)  
PHYS 142—General Physics II (Electricity and Magnetism) (4)  
EAES 101—Global Environmental Change (4)  
EAES 111—Earth, Energy, and the Environment (4)  
Total Hours—Lab Science/Science Electives  10 
a These courses are approved for the Analyzing the Natural World General Education category
Free Electives
Courses  Hours 
Total Hours—Free Electives  12 
Sample Course Schedule—Computer Science
Freshman Year 

First Semester  Hours 
MATH 180—Calculus I  5 
CS 111—Program Design I  3 
ENGL 160—Academic Writing I: Writing for Academic and Public Contexts  3 
Science Elective  5 
ENGR 100—Orientationa  0a 
Total Hours 
16 
a ENGR 100 is a onesemesterhour course, but the hour does not count toward the total hours required for graduation.  
Second Semester  Hours 
MATH 181—Calculus II  5 
ENGL 161—Academic Writing II: Writing for Inquiry and Research  3 
General Education Core course  3 
CS 141—Program Design II  3 
CS 151—Mathematical Foundations of Computing  3 
Total Hours 
17 
Sophomore Year  
First Semester  Hours 
MATH 210—Calculus III  3 
Science Elective  5 
CS 211—Programming Practicum  2 
CS 251—Data Structures  4 
General Education Core course  3 
Total Hours 
17 
Second Semester  Hours 
CS 261—Machine Organization  3 
CS 301—Languages and Automata  3 
Required Mathematics course  3 
Humanities/Social Science/Art Elective  3 
General Education Core course  3 
Total Hours 
15 
Junior Year  
First Semester  Hours 
CS 361—Computer Systems  3 
CS 362—Computer Design  3 
CS 342—Software Design  3 
Required Mathematics course  3 
General Education Core course  3 
Free Elective  2 
Total Hours 
17 
Second Semester  Hours 
CS 341—Programming Language Design and Implementation  3 
CS 385—Operating Systems Concepts and Design  3 
Required Mathematics course  3 
Humanities/Social Sciences/Art Elective  3 
Free Elective  4 
Total Hours 
16 
Senior Year  
First Semester  Hours 
CS 377—Communication and Ethical Issues in Computing  3 
CS 401—Computer Algorithms  3 
Technical Elective  3 
Technical Elective  3 
General Education Core course  3 
Total Hours 
15 
Second Semester  Hours 
Technical Elective  3 
Technical Elective  3 
Technical Elective  3 
Free Elective  3 
Free Elective  3 
CS 499—Professional Development Seminar  0 
Total Hours 
15 
Degree Requirements—Computer Science
with Computer Systems Concentration
To earn a Bachelor of Science in Computer Science, Computer Systems Concentration degree from UIC, students need to complete University, college, and department degree requirements. The Department of Computer Science degree requirements are outlined below. Students should consult the College of Engineering section for additional degree requirements and college academic policies.
BS in Computer Science, Computer Systems Concentration Degree Requirements  Hours 
Nonengineering and General Education Requirements  50 
Required in the College of Engineering  42 
Technical Electives  15 
Required Mathematics Courses  9 
Free Elective  12 
Total Hours—BS in Computer Science, Computer Systems Concentration  128 
Nonengineering and General Education Requirements
Courses  Hours 
ENGL 160—Academic Writing I: Writing for Academic and Public Contexts  3 
ENGL 161—Academic Writing II: Writing for Inquiry and Research  3 
Exploring World Cultures coursea  3 
Understanding the Creative Arts coursea  3 
Understanding the Past coursea  3 
Understanding the Individual and Society coursea  3 
Understanding U.S. Society Coursea  3 
Humanities/Social Sciences/Art Electivesb  6 
MATH 180—Calculus Ic  5 
MATH 181—Calculus IIc  5 
MATH 210—Calculus IIIc  3 
Science Electives See belowd 
10 
Total Hours—Nonengineering and General Education Requirements  50 
a Students should consult the General Education section of the catalog for a list of approved courses in this category.
b These electives must be selected from a list of approved courses provided by the CS department.
c This course is approved for the Analyzing the Natural World General Education category.
d All courses on the science elective list below are approved for the Analyzing the Natural World General Education category.
Required in the College of Engineering
Courses  Hours 
ENGR 100—Orientationa  0a 
CS 111—Program Design I  3 
CS 141—Program Design II  3 
CS 151—Mathematical Foundations of Computation  3 
CS 211—Programming Practicum  2 
CS 251—Data Structures  4 
CS 261—Machine Organization  3 
CS 301—Languages and Automata  3 
CS 341—Programming Language Design and Implementation  3 
CS 342—Software Design  3 
CS 361—Computer Systems  3 
CS 362—Computer Design  3 
CS 377—Communication and Ethical Issues in Computing  3 
CS 385—Operating Systems Concepts and Design  3 
CS 401—Computer Algorithms I  3 
CS 499—Professional Development Seminar  0 
Total Hours—Required in the College of Engineering  42 
a ENGR 100 is a onesemesterhour course, but the hour does not count toward the total required for graduation.
Technical Electives
Courses  Hours 
Students must complete at least 15 hours of courses from among the following list of courses, only one of which may be outside the CS rubric. Four courses must be chosen from the following: CS 450, CS 466, CS 469, CS 473, CS 487, and ECE 367 
15 
CS 398—Undergraduate Design/Research (3)  
CS 411—Artificial Intelligence (3)  
CS 415—Computer Vision I (3)  
CS 421—Natural Language Processing (3  
CS 422—User Interface Design and Programming (3)  
CS 424—Visualization and Visual Analytics (3)  
CS 426—Video Game Design and Development (3)  
CS 440—Software Engineering I (3)  
CS 441—Distributed Object Programming Using Middleware (3) 

CS 442—Software Engineering II (3)  
CS 450—Introduction to Networking (3)  
CS 455—Design and Implementation of Network Protocols (3) 

CS 466—Advanced Computer Architecture (3)  
CS 469—Computer Design Systems (3)  
CS 473—Compiler Design (3)  
CS 474—ObjectOriented Languages and Environments (3) 

CS 476—Programming Language Design (3)  
CS 480—Database Systems (4)  
CS 485—Networked Operating Systems Programming (4)  
CS 487—Building Trustworthy Computing Systems (3)  
CS 488—Computer Graphics I (3)  
ECE 467—MicroprocessorBased Design (3)  
MCS 320—Introduction to Symbolic Computation (3)  
MCS 425—Codes and Cryptography (3)  
MCS 471—Numerical Analysis (3)  
MCS 481—Computational Geometry (3)  
STAT 471—Linear and Nonlinear Programming (3)  
Total Hours—Technical Electives  15 
Required Mathematics Courses
Courses  Hours 
Nine hours from among the following list of courses, with at least one course taken from IE 342—Probability and Statistics for Engineers or STAT 381—Applied Statistical Methods  9 
One of the following courses must be chosen:  
IE 342—Probability and Statistics for Engineers (3)a OR STAT 381—Applied Statistical Methods (3) 

MATH 215—Introduction to Advanced Mathematics (3)  
MATH 220—Introduction to Differential Equations (3)  
MATH 310—Applied Linear Algebra (3) OR MATH 320—Linear Algebra I (3) 

MATH 430—Formal Logic I (3)  
MATH 435—Foundations of Number Theory (3)  
MATH 436—Number Theory for Applications (3)  
MCS 421—Combinatorics (3)  
MCS 423—Graph Theory (3)  
MCS 471—Numerical Analysis (3)b  
STAT 401—Introduction to Probability (3)  
STAT 473—Game Theory (3)  
Total Hours—Required Mathematics Courses  9 
a Students who take IE 342 will not receive credit for either STAT 381 or STAT 401.
b Students may choose to use MCS 471—Numerical Analysis as either a CS technical elective from outside the CS department or as a required mathematics course, but not both.
Science Electives
Every student must take two courses from the list below. If additional hours are necessary to complete the ten required hours, additional courses may be other courses on this list, courses that have any of these courses as prerequisites, or other sciences and quantitative social sciences courses from a list maintained by the Computer Science department
Courses  Hours 
Eight to ten hours from among the following list of courses.a If chosen courses total less than ten hours remaining hours can be satisfied as described above.  10 
BIOS 100—Biology of Cells and Organisms (5)  
BIOS 101—Biology of Populations and Communities (5)  
CHEM 112—General Chemistry I (5) OR CHEM 116—Honors General Chemistry I (5) 

CHEM 114—General Chemistry II (5) OR CHEM 118—Honors General Chemistry II (5) 

PHYS 141—General Physics I (Mechanics) (4)  
PHYS 142—General Physics II (Electricity and Magnetism) (4)  
EAES 101—Global Environmental Change (4)  
EAES 111—Earth, Energy, and the Environment (4)  
Total Hours—Lab Science/Science Electives  10 
a These courses are approved for the Analyzing the Natural World General Education category.
Free Electives
Courses  Hours 
Total Hours—Free Electives  12 
Sample Course Schedule—Computer Science with Computer Systems Concentration
Freshman Year  
First Semester  Hours 
MATH 180—Calculus I  5 
CS 111—Program Design I  3 
ENGL 160—Academic Writing I: Writing for Academic and Public Contexts  3 
Science Elective  5 
ENGR 100—Orientationa  0a 
Total Hours 
16 
a ENGR 100 is a onesemesterhour course, but the hour does not count toward the total hours required for graduation.  
Second Semester  Hours 
MATH 181—Calculus II  5 
ENGL 161—Academic Writing II: Writing for Inquiry and Research  3 
CS 141—Program Design II  3 
CS 151—Mathematical Foundations of Computing  3 
General Education Core course  3 
Total Hours 
17 
Sophomore Year  
First Semester  Hours 
MATH 210—Calculus III  3 
Science Elective  5 
CS 211—Programming Practicum  2 
CS 251—Data Structures  4 
General Education Core course  3 
Total Hours 
17 
Second Semester  Hours 
CS 261—Machine Organization  3 
CS 301—Languages and Automata  3 
Required Mathematics course  3 
General Education Core course  3 
Humanities/Social Sciences/Art Elective  3 
Total Hours 
15 
Junior Year  
First Semester  Hours 
CS 361—Computer Systems  3 
CS 362—Computer Design  3 
CS 342—Software Design  3 
Required Mathematics course  3 
General Education Core course  3 
Free Elective  2 
Total Hours 
17 
Second Semester  Hours 
CS 341—Programming Language Design and Implementation  3 
CS 385—Operating Systems Concepts and Design  3 
Required Mathematics course  3 
Humanities/Social Sciences/Art Elective  3 
Free Elective  4 
Total Hours 
16 
Senior Year  
First Semester  Hours 
CS 377—Programming Language Concepts  3 
CS 401—Computer Algorithms  3 
Technical Elective  3 
Technical Elective  3 
General Education Core course  3 
Total Hours 
15 
Second Semester  Hours 
Technical Elective  3 
Technical Elective  3 
Technical Elective  3 
Free Elective  3 
Free Elective  3 
CS 499—Professional Development Seminar  0 
Total Hours 
15 
Degree
Requirements—Computer Science with HumanCentered Computing
Concentration
To earn a Bachelor of Science in Computer Science,
with an HCC Concentration, students need to complete university, college, and
department degree requirements. The Department of Computer Science degree
requirements are outlined below. Students should consult the College of
Engineering section for additional degree requirements and college academic
policies.
BS in Computer Science with HumanCentered Computing Concentration Degree Requirements 
Hours 
Required Outside the College of Engineering  59 
Required in the College of Engineering  54 
Technical Electives  3 
Required Mathematics Courses  6 
Free Elective  6 
Total Hours—BS in Computer Science with HumanCentered Computing Concentration  128 
Required outside College of Engineering
Courses  Hours 
ENGL 160—English Composition I  3 
ENGL 161—English Composition II  3 
General Education Core—Select one course from each of the following categories:a  15 
Exploring World Cultures (3)  
Understanding the Creative Arts (3)  
Understanding the Past (3)  
Understanding the Individual and Society (3)  
Understanding US Society (3)  
Humanities/Social Sciences/Art Electivesb  At least three of the selected courses must be from the following list: (Please note: In order to enroll in some of these courses, students will have to go to the respective departments to get an override on prerequisites and/or enrollment restrictions.)  12 
PSCH 100—Introduction to Psychology (4)  
PSCH 242—Introduction to Research in Psychology (3) (Mandatory prerequisite for PSCH 242 is PSCH 100).  
ART 150—Introduction to Responsive Arts (4)  
ART 454—3D Space I: Modeling (4)  
ART 456—Embedded Media: Physical Computing (4)  
DES 452—Information Aesthetics I (4)  
COMM 430—Media, Information, and Society (3)  
COMM 316—Writing for Electronic Media (3)  
COMM 460—Visual Communication (3)  
MATH 180—Calculus Ic  5 
MATH 181—Calculus IIc  5 
MATH 210—Calculus IIIc  3 
MATH 220—Differential Equations  3 
PHYS 141—General Physics I (Mechanics)c  4 
PHYS 142—General Physics II (Electricity and Magnetism)c  4 
Science Elective—See belowd  2 
Total Hours—Required Outside the College  59 
a Students should consult the General Education section of the catalog for a list of approved courses in this category.
b These electives must be selected from a list of approved courses provided by the CS department.
c This course is approved for the Analyzing the Natural World General Education category.
d All courses on the science elective list below are approved for the Analyzing the Natural World General Education category.
Required in the College of Engineering
Courses  Hours 
ENGR 100—Orientationa  0a 
CS 111—Program Design I  3 
CS 141—Program Design II  3 
CS 151—Mathematical Foundations of Computation  3 
CS 211—Programming Practicum  2 
CS 251—Data Structures  4 
CS 261—Machine Organization  3 
CS 301—Languages and Automata  3 
CS 341—Programming Language Design and Implementation  3 
CS 342—Software Design  3 
CS 361—Computer Systems  3 
CS 362—Computer Design  3 
CS 377—Communication and Ethical Issues in Computing  3 
CS 385—Operating Systems Concepts and Design  3 
CS 401—Computer Algorithms I  3 
CS 422—User Interface Design and Programming  3 
CS 499—Professional Development Seminar  0 
At least three courses from the following list:  9 
CS 415—Computer Vision I (3)
OR ECE 415—Image Analysis and Computer Vision I (3) 

CS 411—Artificial Intelligence (3)  
CS 421—Natural Language Processing (3)  
CS 424—Visualization and Visual Analytics (3)  
CS 426—Video Game Design and Development (3)  
CS 488—Computer Graphics I (3)  
Total Hours—Required in the College of Engineering  54 
a Engineering 100 carries one equivalent semester hour, but awards no credit toward graduation.
Technical Electives
Courses  Hours 
Students must complete at least 3 hours from among the following technical elective courses. CS 411, CS 415, ECE 415, CS 421, CS 424, CS 426, and CS 488 may be used as either a selective course (above) or a technical elective but not both. 
3 
CS 398—Undergraduate Design/Research (3)  
CS 411—Artificial Intelligence (3)  
CS 415—Computer Vision I (3) OR ECE 415—Image Analysis and Computer Vision I (3)  
CS 421—Natural Language Processing (3)  
CS 424—Visualization and Visual Analytics (3)  
CS 426—Video Game Design and Development (3)  
CS 440—Software Engineering I (3)  
CS 441—Distributed Object Programming using Middleware (3)  
CS 450—Introduction to Networking (3)  
CS 455—Design and Implementation of Network Protocols (3)  
CS 466—Advanced Computer Architecture (3)  
CS 469—Computer Systems Design (3)  
CS 473—Compiler Design (3)  
CS 474—ObjectOriented Languages and Environments (3)  
CS 476—Programming Language Design (3)  
CS 480—Database Systems (4)  
CS 485—Networked Operating Systems Programming (4)  
CS 487—Building Secure Computer Systems (3)  
CS 488—Computer Graphics I (3)  
ECE 452—Robotics: Algorithms and Control (3)  
MCS 320—Introduction to Symbolic Computation (3)  
MCS 471—Numerical Analysis (3)  
MCS 481—Computational Geometry (3)  
STAT 471—Linear and NonLinear Programming (3)  
MATH 419—Models in Applied Mathematics (3)  
Total Hours—Technical Electives  3 
Required
Mathematics Courses
Courses  Hours 
IE
342—Probability and Statistics for Engineers (3)a OR STAT 381—Applied Statistical Methods (3) 
3 
MATH 310—Applied Linear Algebra
(3) OR MATH 320—Linear Algebra I (3) 
3 
Total Hours—Required Mathematics Courses  6 
a Students who take IE 342 will not receive credit for either STAT 381 or STAT 401.
Lab Science
Sequence and Science Electives
Every student must take a total of at least 2
additional credit hours in the science area to make up a total of 10 credits.
Additional courses may be other courses on this list, courses that have PHYS
141, PHYS 142, or any of these courses as prerequisites, or other courses from a
list maintained by the Department of Computer Science of certain additional
courses in Engineering and quantitative social sciences.
Courses  Hours 
Two hours from among the following list of courses:a  2 
BIOS 100—Biology of Cells and Organisms (5)  
BIOS 101—Biology of Populations and Communities (5)  
CHEM 112—General Chemistry I (5)  
CHEM 114—General Chemistry II (5)  
CHEM 116—Honors General Chemistry I (5)  
CHEM 118—Honors General Chemistry II (5)  
EAES 101—Global Environmental Change (4)  
EAES 111—Earth, Energy, and the Environment (4)  
Total Hours – Lab Science/Engineering Science Electives  2 
a These courses are approved for the Analyzing the Natural World General Education category.
Free
Electives
Courses  Hours 
Total Hours—Free Electives  6 
Sample Course Schedule—Computer Science with HumanCentered Computing
Concentration
Freshman Year  
First Semester  Hours 
MATH 180—Calculus I  5 
CS 111—Program Design I  3 
ENGL 160—Academic Writing I: Writing for Academic and Public Context  3 
General Education Core course  3 
General Education Core course  3 
ENGR 100—Orientationa  0a 
Total
Hours 
17 
a ENGR 100 carries one equivalent hour but awards no credit towards graduation. 

Second Semester  Hours 
MATH 181—Calculus II  5 
ENGL 161—Academic Writing II: Writing for Inquiry and Research  3 
CS 141—Program Design II  3 
CS 151—Mathematical Foundations of Computing  3 
General Education Core course  3 
Total
Hours 
17 
Sophomore Year  
First Semester  Hours 
MATH 210—Calculus III  3 
PHYS 141—General Physics I  4 
CS 211—Programming Practicum  2 
CS 251—Data Structures  4 
General Education Core course  3 
Total
Hours 
16 
Second Semester  Hours 
CS 261—Machine Organization  3 
CS 301—Languages and Automata  3 
MATH 220—Introduction to Differential Equations  3 
PHYS 142—General Physics II  4 
Humanities/Social Sciences/Art Elective  3 
Total
Hours 
16 
Junior Year  
First Semester  Hours 
CS 361—Computer Systems  3 
CS 362—Computer Design  3 
CS 342—Software Design  3 
IE 342—Probability and Statistics for Engineers OR STAT 381—Applied Statistical Methods 
3 
Science Elective  2 
Humanities/Social Science/Art Elective (one of the following electives): PSCH 100, 242; ART 150, 454, 456; DES 452; COMM 430, 316, 460  3–4 
Total
Hours 
17–18 
Second Semester  Hours 
CS 341—Programming Language Design and Implementation  3 
CS 385—Operating Systems Concepts and Design  3 
CS 422—UserInterface Design and Programming  3 
MATH 310—Applied Linear Algebra OR MATH 320—Linear Algebra I 
3 
Humanities/Social Science/Art Elective (one of the following electives): PSCH 100, 242; ART 150, 454, 456; DES 452; COMM 430, 316, 460  3–4 
Total
Hours 
15–16 
Senior Year  
First Semester  Hours 
CS 377—Communication and Ethical Issues in Comuting  3 
CS 401—Computer Algorithms  3 
CS 424—Visualization and Visual Analytics  3 
CS 488—Computer Graphics I  3 
General Education Core course  3 
Total
Hours 
15 
Second Semester  Hours 
CS 426—Video Game Design and Development  3 
CS 499—Professional Development Seminar  0 
Technical Elective  3 
Humanities/Social Science/Art Elective (one of the following electives): PSCH 100, 242; ART 150, 454, 456; DES 452; COMM 430, 316, 460  3–4 
Free Elective  3 
Free Elective  3 
Total
Hours 
15–16 
Degree Requirements—Computer Science with Software Engineering Concentration
To earn a Bachelor of Science in Computer Science, Software Engineering Concentration degree from UIC, students need to complete University, college, and department degree requirements. The Department of Computer Science degree requirements are outlined below. Students should consult the College of Engineering section for additional degree requirements and college academic policies.
BS in Computer Science with Software Engineering Concentration Degree Requirements  Hours 
Nonengineering and General Education Requirements  50 
Required in the College of Engineering  51 
Technical Electives  9 
Required Mathematics Courses  6 
Free Elective  12 
Total Hours—BS in Computer Science, Software Engineering Concentration 
128 
Nonengineering and General Education Requirements
Courses  Hours 
ENGL 160—Academic Writing I: Writing for Academic and Public Contexts  3 
ENGL 161—Academic Writing II: Writing for Inquiry and Research 
3 
Exploring World Cultures coursea  3 
Understanding the Creative Arts coursea  3 
Understanding the Past coursea  3 
Understanding the Individual and Society coursea  3 
Understanding U.S. Society Coursea  3 
Humanities/Social Sciences/Art Electivesb  6 
MATH 180—Calculus Ic  5 
MATH 181—Calculus IIc  5 
MATH 210—Calculus IIIc  3 
Science Electives Science Electives—See belowd 
10 
Total Hours—Nonengineering and General Education Requirements  50 
a Students should consult the General Education section of the catalog for a list of approved courses in this category.
b These electives must be selected from a list of approved courses provided by the CS department.
c This course is approved for the Analyzing the Natural World General Education category.
d All courses on the lab science sequence below are approved for the Analyzing the Natural World General Education category.
Required in the College of Engineering
Courses  Hours 
ENGR 100—Orientationa  0a 
CS 111—Program Design I  3 
CS 141—Program Design II  3 
CS 151—Mathematical Foundations of Computation  3 
CS 211—Programming Practicum  2 
CS 251—Data Structures  4 
CS 261—Machine Organization  3 
CS 301—Languages and Automata  3 
CS 341—Programming Language Design and Implementation  3 
CS 342—Software Design  3 
CS 361—Computer Systems  3 
CS 362—Computer Design  3 
CS 377—Communication and Ethical Issues in Computing  3 
CS 385—Operating Systems Concepts and Design  3 
CS 401—Computer Algorithms I  3 
CS 440—Software Engineering I  3 
CS 442—Software Engineering II  3 
IE 342—Probability and Statistics for Engineers  3 
CS 499—Professional Development Seminar  0 
Total Hours—Required in the College of Engineering  51 
a ENGR 100 is a onesemesterhour course, but the hour does not count toward the total hours required for graduation.
Technical Electives
Courses  Hours 
Students must complete at least nine hours of courses from among the following list of courses, only one of which may be outside the CS rubric. Two of these courses must be taken from the following list of courses: CS 422, CS 480, CS 441, and CS 471.  9 
CS 398—Undergraduate Design/Research (3)  
CS 411—Artificial Intelligence (3)  
CS 421—Natural Language Processing (3)  
CS 422—User Interface Design and Programming (3) 

CS 424—Visualization and Visual Analytics (3)  
CS 426—Video Game Design and Development (3)  
CS 441—Distributed Object Programming Using Middleware (3)  
CS 450—Introduction to Networking (3)  
CS 455—Design and Implementation of Network Protocols (3)  
CS 473—Compiler Design (3)  
CS 474—ObjectOriented Languages and Environments (3)  
CS 476—Programming Language Design (3)  
CS 480—Database Systems (4)  
CS 485—Networked Operating Systems Programming (4)  
CS 487—Building Trustworthy Computing Systems (3)  
CS 488—Computer Graphics I (3)  
IE 345—Regression Applications and Forecasting in Engineering (3)  
MCS 425—Codes and Cryptography (3)  
STAT 471—Linear and Nonlinear Programming (3)  
Total Hours—Technical Electives  9 
Required Mathematics Courses
Courses  Hours 
Six hours from among the following list of courses:  6 
MATH 215—Introduction to Advanced Mathematics (3) 

MATH 220—Introduction to Differential Equations (3) 

MATH 310—Applied Linear Algebra (3) OR MATH 320—Linear Algebra I (3) 

MATH 430—Formal Logic I (3)  
MATH 435—Foundations of Number Theory (3)  
MATH 436—Number Theory for Applications (3)  
MCS 421—Combinatorics (3)  
MCS 423—Graph Theory (3)  
MCS 471—Numerical Analysis (3)a  
STAT 473—Game Theory (3)  
Total Hours—Required Mathematics Courses  6 
a Students may choose to use MCS 471—Numerical Analysis as either a CS technical elective from outside the CS department or as a required mathematics course, but not both.
Science Electives
Every student must take two courses from the list below. If additional hours are necessary to complete the ten required hours, additional courses may be other courses on this list, courses that have any of these courses as prerequisites, or other sciences and quantitative social sciences courses from a list maintained by the Computer Science department
Courses  Hours 
Eight to ten hours from among the following list of courses.a If chosen courses total less than ten hours remaining hours can be satisfied as described above.  10 
BIOS 100—Biology of Cells and Organisms (5)  
BIOS 101—Biology of Populations and Communities (5)  
CHEM 112—General Chemistry I (5) OR CHEM 114—General Chemistry II (5) 

CHEM 116—Honors General Chemistry I (5) OR CHEM 118—Honors General Chemistry II (5) 

PHYS 141—General Physics I (Mechanics) (4)  
PHYS 142—General Physics II (Electricity and Magnetism) (4)  
EAES 101—Global Environmental Change (4)  
EAES 111—Earth, Energy, and the Environment (4)  
Total Hours—Science Electives  10 
a These courses are approved for the Analyzing the Natural World General Education category.
Free Electives
Courses  Hours 
Total Hours—Free Electives  12 
Sample Course Schedule—Computer Science with Software Engineering Concentration
Freshman Year  
First Semester  Hours 
MATH 180—Calculus I  5 
CS 111—Program Design I  3 
ENGL 160—Academic Writing I: Writing for Academic and Public Contexts  3 
Science Elective  5 
ENGR 100—Orientationa  0a 
Total Hours 
16 
a ENGR 100 is a onesemesterhour course, but the hour does not count toward the total hours required for graduation.  
Second Semester  Hours 
MATH 181—Calculus II  5 
ENGL 161—Academic Writing II: Writing for Inquiry and Research  3 
CS 141—Program Design II  3 
CS 151—Mathematical Foundations of Computing  3 
General Education Core course  3 
Total Hours 
17 
Sophomore Year  
First Semester  Hours 
MATH 210—Calculus III  3 
Science Elective  5 
CS 211—Programming Practicum  2 
CS 251—Data Structures  4 
General Education Core course  3 
Total Hours 
17 
Second Semester  Hours 
CS 261—Machine Organization  3 
CS 301—Languages and Automata  3 
IE 342—Probability and Statistics for Engineers  3 
Humanities/Social Sciences/Art Elective  3 
General Education Core course  3 
Total Hours 
15 
Junior Year  
First Semester  Hours 
CS 361—Computer Systems  3 
CS 362—Computer Design  3 
CS 342—Software Design  3 
Required Mathematics course  3 
General Education Core course  3 
Free Elective  2 
Total Hours 
17 
Second Semester  Hours 
CS 341—Programming Language Design and Implementation  3 
CS 385—Operating Systems Concepts and Design  4 
Required Mathematics course  3 
Humanities/Social Sciences/Art Elective  3 
Free Elective  4 
Total Hours 
17 
Senior Year  
First Semester  Hours 
CS 377—Communication and Ethical Issues in Computing  3 
CS 401—Computer Algorithms  3 
CS 440—Software Engineering I  3 
Technical Elective  3 
General Education Core course  3 
Total Hours 
15 
Second Semester  Hours 
CS 442—Software Engineering II  3 
Technical Elective  3 
Technical Elective  3 
Free Elective  3 
Free Elective  3 
CS 499—Professional Development Seminar  0 
Total Hours 
15 
Minor in Computer Science
For the minor, 14–17 semester hours are required, excluding prerequisite courses. This minor is not available to students in very closely related fields, including Computer Systems, Computer Engineering, and Mathematical Computer Science.
Prerequisite Courses—Computer Science Minor  Hours 
MATH 180—Calculus I  5 
Total Hours—Prerequisites for Computer Science Minor  5 
Required Courses—Computer Science Minor  Hours 
CS 101—Introduction to Computinga  3 
CS 102—Introduction to Programminga  3 
CS 201—Data Structures and Discrete Mathematics I  4 
CS 202—Data Structures and Discrete Mathematics II  3 
One of the following courses:  3–4 
CS 301—Languages and Automata (3)  
CS 340—Software Design (4)  
CS 401—Computer Algorithms (3)  
Total Hours—Required Courses for Computer Science Minor  14–17a 
a A student may substitute CS 107 for both CS 101 and CS 102, thus reducing the number of hours for the CS Minor by 2 credit hours. This substitution was designed for students in the College of Engineering.
Minor in Information Technology
The explosive growth of the World Wide Web and its universal acceptance by society has changed the computing landscape forever. Today, the typical computer user neither knows nor needs to know very much about how a computer works in order to use it. They need to have appropriate systems in place. Those systems must work properly, be secure, and be upgraded, maintained, and replaced as appropriate. What these users need, however, is a professional who can help them access new technologies effectively and appropriately. The Information Technologist is that professional. People throughout an organization require support from Information Technology staff who understand computer systems and their software, and are committed to solving computerrelated problems they might have. From webmasters to network and system administrators, information technologists are the key agents in the societal revolution that is changing us from an industrial society to a digital/information society.
For the minor, 12 semester hours are required, excluding prerequisite courses. Students who wish to minor in Information Technology (IT) must complete the following:
Prerequisite Courses—Information Technology Minor  Hours 
MATH 121—Precalculus Mathematics (for nonengineering students only)  5 
One of the following courses:  3–4 
IT 101—Java Programming for Information Technology (3)  
CS 102—Introduction to Programming (3)  
CS 107—Introduction to Computing and Programming (4)  
Total Hours—Prerequisites for Information Technology Minor  8–9 
Required Courses—Information Technology Minor  Hours 
IT 201—Introduction to Computer Configuration and Operating Systems Software  3 
IT 202—Web and Multimedia Technology  3 
IT 301—Networks and Distributed Computing Technology  3 
IT 302—Database Administration and Installation  3 
Total Hours—Required Courses for Information Technology Minor  12 