There are very few areas in modern society that are untouched by computer science. It is present in communications, transportation, education, defense, entertainment, healthcare, and scores of other fields. It is in our homes, our schools, our workplaces, and probably also our pockets (if our phones are in there).
To keep pace with this extraordinary reach, today’s computer scientists must have a broad mastery of the field as well as the communication skills to develop connections with the people whom computing affects. UIC’s computer science major prepares you for all of this through a well-rounded degree that requires significant coursework inside and outside the computer science department, placing a strong emphasis on written and verbal communication.
The computer science major is outlined in detail in the course catalog; the information below provides an overview.
Computer science major requirements
Computer science majors complete coursework in five major categories:
General education courses
General education courses are designed to make you a well-rounded, well-informed graduate across disciplines outside of computer science. These requirements total 27 credit hours, including two English classes, courses in broad categories such as Understanding the Creative Arts and Understanding U.S. Society, and electives in humanities, social science, and the arts. Specific requirements and course options are in the course catalog.
Computer science majors are required to take 9 credit hours of additional math courses. Details on course options are in the in the course catalog.
Students choose 10 credit hours of courses that can include biology, chemistry, physics, and earth and environmental sciences. For more information, see the Science Electives section of the course catalog.
Required computer science courses
There are 39 credit hours that make up the computer science core curriculum. To give a few examples, the core includes Program Design I and II, Mathematical Foundations of Computing, Software Design, Data Structures, Systems Programming, and Communication and Ethical Issues in Computing. Learn about them all in the course catalog.
Computer science electives
In choosing your 18 credit hours of electives, you can add a layer of specialization to your computer science major or explore your interests. The options are far too numerous to list here—Computer Graphics, Programming Language Design, Video Game Design and Development, Codes and Cryptography, Building Secure Computer Systems, and more—but you can see the full list in the course catalog.
The College of Engineering emphasizes practically implementing what we learn theoretically to prepare us for any challenge we face when we start our careers. It has an amazing faculty, value for the money, and a fun learning environment.BS in Computer Science|
Computer Science Concentrations
Concentrations allow you to define an area of focus for your major. The department offers three concentrations, each of which requires that you complete a specific collection of courses. These concentrations may affect the choices you make in the categories above. (Your advisors and professors will help you navigate this during your time at UIC.) The concentrations are:
The computer systems concentration focuses on understanding and designing computer hardware. Students in this concentration continue to learn the fundamentals of computer science—programming, data structures, discrete math, algorithms, formal languages, architecture and operating systems—but they also delve into low-level circuit analysis and high-level system design and have the option to take additional hardware-oriented courses. The result is a unique blend of computer science and computer engineering.
The software engineering concentration emphasizes the knowledge and skills needed to begin a professional practice in software engineering. In addition to the fundamental areas of computer science, including programming, data structures, discrete mathematics, algorithms, formal languages, computer architecture, and operating systems, students study key topics such as software cost estimation, large-scale software development, and risk management.
The human-centered computing concentration prepares students to pursue areas such as user-interface design and development and computer graphics and animation. Applications of these skills might include video games, movie special effects, and visualization in science, engineering, and medicine. In addition to the fundamental areas of computer science—programming, data structures, discrete mathematics, algorithms, formal languages, computer architecture, and operating systems—the concentration educates students in user-interface design, computer graphics, visual media, and natural language processing.
Learn more about the computer science major
To explore the CS major in greater detail, here are some key resources:
Program educational objectives: CS major
As part of our accreditation process, ABET asks our department to capture the overall goals of the computer science program. These are called our educational program objectives. They are:
- Depth: Through professional practice or advanced study in computer science, graduates will apply the foundational concepts of the discipline including design, implementation, and analysis of computing systems.
- Breadth: Graduates will demonstrate an awareness of broad societal and ethical issues in computing as they engage in productive public or private sector careers or graduate study.
- Professionalism: As participants in complex modern work environment, graduates will demonstrate clear communication skills, engage in responsible teamwork practices, and exhibit ethical and professional attitudes.
- Learning: Graduates will pursue lifelong learning that builds on the foundational knowledge and skills of computer science acquired in their undergraduate program in pursuit of their goals.
Student outcomes: CS major
Another part of the ABET accreditation process requires the department to identify the specific knowledge and skills that students are intended to have when they complete their undergraduate education. These are called student outcomes.
Students graduating from the UIC computer science program will have the ability to:
- Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.
In the 2019-2020 academic year, 1,415 students were enrolled at UIC Engineering as computer science majors across all class years. The department graduated 205 computer science majors in the academic year ending May 2019.