Skip navigation

Section navigation

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 up-to-date requirements.

BS in Computer Science Minors

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


BS in Computer Science

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 well-trained 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 well-rounded 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 low-level circuit analysis and high-level system design, and has the option to take additional hardware-oriented courses. The result is a unique blend of computer science and computer engineering.

The Department of Computer Science also offers a Human-Centered 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: user-interface 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 human-centered computing practice such as user-interface 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, large-scale 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 one-semester-hour 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—Object-Oriented 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 one-semester-hour 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 Electives 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 one-semester-hour 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—Object-Oriented 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—Microprocessor-Based 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 one-semester-hour 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 Human-Centered 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 Human-Centered 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 Human-Centered 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 HoursRequired 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 HoursRequired 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—Object-Oriented 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 Non-Linear Programming (3)  
MATH 419—Models in Applied Mathematics (3)  
Total HoursTechnical 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 HoursRequired 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 HoursFree Electives 6


Sample Course Schedule—Computer Science with Human-Centered 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—User-Interface 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 one-semester-hour 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—Object-Oriented 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 one-semester-hour 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

Minors

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: 34
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 computer-related 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