Computer Science Major
introduction Heading link
Studying computer science will help you understand how the computing technology around us works. When you finish this UIC major, you will be able to create software and systems that enhance our daily interactions, determine how (and how quickly!) we get things done, connect us with other people, improve our quality of life, and much more.
Do you like taking on a good challenge — especially one that you can work on with a team? Perhaps you enjoy using creative approaches to dive into how things work on the inside. Maybe you like making something that serves a useful purpose, testing and refining it until it finally works.
If so, computer science could be a great major for you.
Get started here Heading link
Are you just starting your inquiry into the CS major at UIC? This one-page PDF offers an overview of the program.
What do computer scientists do? Heading link
Computer science is a broad umbrella that covers many fast-growing career paths. These are examples of careers that you can pursue with a CS degree, and their average annual pay:
image: CS jobs and salaries Heading link
Source: U.S. Bureau of Labor Statistics
Did you know: Heading link
-
2x The average salary for computer science jobs is more than twice the national average for all occupations.
-
+15% Computer science jobs are expected to grow 15 percent in the next decade, far outpacing most fields.
Keep scrolling to learn more about this major, or ... Heading link
The CS major, start to finish Heading link
You can break down the CS major into four principal parts:
Computer science requirements (39 credits) and electives (18 credits): These courses form your core curriculum in computer science and then allow you to add a layer of specialization or explore your interests.
Math courses (9 credits): Math is the foundation of computer science. These courses will give you all the building blocks you need to understand advanced computing concepts.
Science electives (10 credits): In biology, chemistry, physics, or environmental science courses (your choice!) you will practice the scientific methods of hypothesizing, testing, adjusting, and retesting that will inform your work on computer science projects.
General education courses (27 credits): These courses help make you a well-rounded person, a critical thinker, and a general asset to the companies that will eventually hire you. They might include classes in history, sociology, language, or the creative arts.
One of our faculty members, Shanon Reckinger, drew this flow chart to visually represent how the CS requirements and electives are structured:
Image: CS major flow chart Heading link
Artwork by Clinical Associate Professor Shanon Reckinger
Computer science concentrations Heading link
If you would like to put a specific spin on your computer science major, the CS department offers three concentrations for you to choose from. Each one requires you to complete a specific collection of courses, so if you pick one, it may affect your selection of CS electives. (Your advisors and professors can help you navigate these choices if you decide you would like to complete a concentration). The options are:
computer systems
The computer systems concentration focuses on understanding and designing computer hardware. You will continue to learn the fundamentals of computer science — programming, data structures, discrete math, algorithms, formal languages, architecture and operating systems — while you delve into low-level circuit analysis and high-level system design. You’ll have the option to take additional hardware-oriented courses, too. The result is a unique blend of computer science and computer engineering.
human-centered computing
The human-centered computing concentration prepares you 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 will give you an education in user-interface design, computer graphics, visual media, and natural language processing.
software 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 — you will study key topics such as software cost estimation, large-scale software development, and risk management.
Course highlights Heading link
The UIC computer science major gives you room to customize your academic experience to the areas of CS that interest you most. Here are three classes in particular that CS majors have come to know and love:
CS 361 Systems Programming
Writing code that squeezes every last bit of performance out of a computer and its hardware requires knowing how that code can use the parts of the computer, such as the processor, files, network, and memory. Systems Programming teaches students about how these underlying parts of the operating system work, so that they can write code that takes full advantage of the machines that it runs on.
CS 377 Communication and Ethical Issues in Computing
This discussion-based course offers students the opportunity to consider the various ways in which computing technologies shape the world. It balances the exploration of particular issues in computer science ethics — such as privacy, the social and psychological consequences of automation, and the changing conditions of free speech in the internet age — and critical frameworks that can help us describe and analyze those problems more clearly. The course challenges students to reflect on how their own technical and professional choices will resonate outward and affect others.
CS 401 Computer Algorithms
This course allows you to develop programs to efficiently solve problems that you encounter in practice. Suppose you want to write a program to find a path from the entrance of a huge maze to the exit. A slow program may take years to find a solution, but a fast one can do the same work in seconds. CS 401 introduces the principles and methods to develop programs that work as fast as possible.
View all computer science courses here
The CS major in depth Heading link
-
Degree requirements
Find these on the UIC course catalog page for computer science
-
CS courses
See descriptions of all undergraduate courses in the computer science department
-
Academic advising
Meet the staff advisors who will guide you through your UIC CS degree
-
Student organizations
UIC has four student organizations that can advance your study of CS
-
Undergraduate admissions
Read general information about applying to UIC Engineering for a CS major
-
Apply now
Visit the UIC undergraduate admissions site to start or complete your application
Program educational objectives: CS major Heading link
The computer science program at UIC is accredited by the Computing Accreditation Commission of ABET, http://www.abet.org.
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 Heading link
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 2021-2022 academic year, 1,713 students are enrolled at UIC Engineering as computer science majors across all class years. The department graduated 352 computer science majors in the academic year ending August 2021. View historical enrollment and graduation data here.