CS + Philosophy

Computer Science + Philosophy, BS
for the degree of Bachelor of Science Major in Computer Science + Philosophy

Philosophy uses the tools of logic and reason to analyze how humans experience the world. Students studying CS + Philosophy are prepared to tackle modern questions related to ethics, logic, and privacy in the digital age, which are increasingly crucial to areas like artificial intelligence and security.

The CS + Philosophy blended bachelor's degree is a partnership between the Siebel School of Computing and Data Science in The Grainger College of Engineering and the Department of Philosophy in the College of Liberal Arts & Sciences. As part of the computing community at Illinois, you will benefit from being part of a top-five-ranked Computer Science program with world-class faculty and research. Learn more about the School's Rankings and Statistics.

Alma Mater statue

Degree Requirements

See requirements and curriculum map.

Course Catalog

College of LAS

Learn more and how to apply.

Program Page

The metal Grainger Bob statue sits and reads a book.

Frequently Asked Questions

Explore common questions and answers.

FAQ

Five smiling students in matching grey shirts with arms around each other's shoulders on the Bardeen Quad.

CS Student Life

With 800+ student organizations and many CS Student Groups, there's a community for everyone at Illinois.

Student Organizations

Four women talk and work together.

Undergraduate Research

Participate in high-impact semester, year-round, or summer research, mentorship, and showcase opportunities.

Research Opportunities

People in business clothes stand and talk to potential employers.

Career Services

Explore comprehensive career services supporting internships, job searches, and resume development. 

Career Information

Curriculum Map

The curriculum sequence mapped below is a sample sequence. Students will work with an academic advisor to achieve educational goals specific to their needs and preparation.

  • Course prerequisite chain
  • Immediate prerequisite
  • Credit or concurrent registration required
  • Concurrent registration required
  • Postrequisite course sequence
Computer Science + Philosophy Curriculum Map
First YearSecond YearThird YearFourth Year
Fall First YearSpring First YearFall Second YearSpring Second YearFall Third YearSpring Third YearFall Fourth YearSpring Fourth Year
CS 100 (1)1
Introduction to Computer Science as a field and career for incoming first year and external transfer students in the computer science majors. Overview of the field and specific examples of problem areas and methods of solution.
CS 124 (3)
Basic concepts in computing and fundamental techniques for solving computational problems. Intended as a first course for computer science majors and others with a deep interest in computing. Course Information: Credit is not given for both CS 124 and CS 125. Prerequisite: Three years of high school mathematics or MATH 112.
MATH 221 (4)2
First course in calculus and analytic geometry for students with some calculus background; basic techniques of differentiation and integration with applications including curve sketching; antidifferentation, the Riemann integral, fundamental theorem, exponential and trigonometric functions. Course Information: Credit is not given for both MATH 221 and either MATH 220 or MATH 234. Prerequisite: An adequate ALEKS placement score as described at http://math.illinois.edu/ALEKS/ and either one year of high school calculus or a minimum score of 2 on the AB Calculus AP exam. Class Schedule Information: Students must register for one discussion and one lecture section beginning with the same letter. Engineering students must obtain a dean's approval to drop this course after the second week of instruction.
RHET 105 (4)4
Introduction in research-based writing and the construction of academic, argumentative essays that use primary and secondary sources as evidence. This course fulfills the Campus Composition I general education requirement. Course Information: Credit is not given for both RHET 105 and any of these other Comp I courses: RHET 101, RHET 102, CMN 111 or CMN 112. Class Schedule Information: Students whose second language is English should take an English placement test through the Division of English as an International Language, before signing up for rhetoric. Engineering students must obtain a dean's approval to drop this course after the second week of instruction.
CS 128 (3)
Continuation of CS 124. More advanced concepts in computing and techniques and approaches for solving computational problems. Course Information: Prerequisite: CS 124 or CS 125.
CS 173 (3)
Discrete mathematical structures frequently encountered in the study of Computer Science. Sets, propositions, Boolean algebra, induction, recursion, relations, functions, and graphs. Course Information: Credit is not given for both CS 173 and MATH 213. Prerequisite: One of CS 124, CS 125, ECE 220; one of MATH 220, MATH 221.
MATH 231 (3)
Second course in calculus and analytic geometry: techniques of integration, conic sections, polar coordinates, and infinite series. Course Information: Prerequisite: MATH 220 or MATH 221. Class Schedule Information: Students must register for one discussion and one lecture section beginning with the same letter in Fall and Spring terms only. Engineering students must obtain a dean's approval to drop this course after the second week of instruction.
PHIL 222 (3)
Introduction to certain ideas and issues at the intersection of computer science and philosophy. Students will focus on foundational questions related to the birth of computer science as a discipline, philosophical issues regarding knowledge and reality that researchers face in the frontiers of contemporary computer science, and current ethical issues related to the uses of machines and computers in society.
CS 225 (4)
Data abstractions: elementary data structures (lists, stacks, queues, and trees) and their implementation using an object-oriented programming language. Solutions to a variety of computational problems such as search on graphs and trees. Elementary analysis of algorithms. Course Information: Credit is not given for CS 277 if credit for CS 225 has been earned. Prerequisite: CS 126 or CS 128 or ECE 220; One of CS 173, MATH 213, MATH 347, MATH 412 or MATH 413. Class Schedule Information: Students must register for one lecture-discussion and one lecture section.
CS 222 (1)
Design and implementation of novel software solutions. Problem identification and definition; idea generation and evaluation; and software implementation, testing, and deployment. Emphasizes software development best practices?including framework selection, code review, documentation, appropriate library usage, project management, continuous integration and testing, and teamwork. Course Information: Prerequisite: CS 128; credit or concurrent registration in CS 225. Restricted to majors in Computer Science undergraduate curricula only.
MATH 257 (3)6
Introductory course incorporating linear algebra concepts with computational tools, with real world applications to science, engineering and data science. Topics include linear equations, matrix operations, vector spaces, linear transformations, eigenvalues, eigenvectors, inner products and norms, orthogonality, linear regression, equilibrium, linear dynamical systems and the singular value decomposition. Course Information: Credit is not given for both MATH 257 and any of MATH 125, MATH 225, MATH 227, MATH 415 or ASRM 406. Prerequisite: MATH 220 or MATH 221; CS 101 or equivalent programming experience. Class Schedule Information: Students must register for a lecture, a lab, and a discussion section.
PHIL 223 (3)
Introduction to certain ideas and issues at the intersection of computer science and philosophy. Students will focus on the nature of human minds and brains in light of what we know about machine ?minds? and ?hardware? (and vice versa), as well as on philosophical considerations of the societal effects and implications of the rise of intelligent machines.
CS 233 (4)7
Fundamentals of computer architecture: digital logic design, working up from the logic gate level to understand the function of a simple computer; machine-level programming to understand implementation of high-level languages; performance models of modern computer architectures to enable performance optimization of software; hardware primitives for parallelism and security. Course Information: Prerequisite: CS 125 or CS 128; CS 173 or MATH 213; credit or concurrent enrollment in CS 225.
CS 361 (3)
Introduction to probability theory and statistics with applications to computer science. Topics include: visualizing datasets, summarizing data, basic descriptive statistics, conditional probability, independence, Bayes theorem, random variables, joint and conditional distributions, expectation, variance and covariance, central limit theorem. Markov inequality, Chebyshev inequality, law of large numbers, Markov chains, simulation, the PageRank algorithm, populations and sampling, sample mean, standard error, maximum likelihood estimation, Bayes estimation, hypothesis testing, confidence intervals, linear regression, principal component analysis, classification, and decision trees. Course Information: Same as STAT 361. Credit is not given for both CS 361 and ECE 313. Prerequisite: MATH 220 or MATH 221; credit or concurrent registration in one of MATH 225, MATH 257, MATH 415, MATH 416 or ASRM 406. For majors only.
PHIL 421 (3-4)
Systematic study of selected classics in moral philosophy by such philosophers as Aristotle, Hume, Mill, Kant, and Nietzsche. Course Information: 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One course in philosophy.
CS 341 (4)7
Basics of system programming, including POSIX processes, process control, inter-process communication, synchronization, signals, simple memory management, file I/O and directories, shell programming, socket network programming, RPC programming in distributed systems, basic security mechanisms, and standard tools for systems programming such as debugging tools. Course Information: Credit is not given for both CS 341 and either CS 241 or ECE 391. Prerequisite: CS 225 and CS 233. Class Schedule Information: Students must register for one lecture and one discussion section.
PHIL 426 (3-4)
Investigation of various metaphysical issues concerning, for example, existence, particulars and universals, causation, laws of nature, time, personal identity, material objects, and modality. Course Information: 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One course in philosophy.
PHILE1 (3-4)
Philosophy Elective
CS 374 (4)
Analysis of algorithms, major paradigms of algorithm design including recursive algorithms, divide-and-conquer algorithms, dynamic programming, greedy algorithms, and graph algorithms. Formal models of computation including finite automata and Turing machines. Limitations of computation arising from fundamental notions of algorithm and from complexity-theoretic constraints. Reductions, undecidability and NP-completeness. Course Information: Same as ECE 374. Prerequisite: One of CS 173, MATH 213; CS 225.
PHIL 454 (3-4)
Completeness, compactness, and Lowenheim-Skolem theorems for first-order logic; incompleteness and undecidability of formal systems; and additional material on proof theory, model theory, or axiomatic set theory as time permits. Course Information: 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: PHIL 202 or consent of instructor.
PHIL--- (3-4)
Philosophy Elective
CS 421 (3-4)
Structure of programming languages and their implementation. Basic language design principles; abstract data types; functional languages; type systems; object-oriented languages. Basics of lexing, parsing, syntax-directed translation, semantic analysis, and code generation. Course Information: 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 233, CS 240 or CS 340; CS 374; one of MATH 225, MATH 257, MATH 415, MATH 416, ASRM 406, BIOE 210.
PHIL--- (3-4)
Philosophy Elective
PHIL 499 (3)
Capstone course required for all philosophy majors. Students will explore in depth a specific topic either in the history of philosophy or in contemporary practical or theoretical philosophy and will write a substantial original essay appropriate for a senior thesis. Topics will differ by section and semester. Course Information: 3 undergraduate hours. No graduate credit. Prerequisite: PHIL 202, PHIL 203, PHIL 206, PHIL 222, PHIL 223. Restricted to Philosophy and CS + Philosophy majors with Senior Standing. Philosophy majors (and CS + Philosophy majors matriculated before Fall 2020) are required to have PHIL 202 (or equivalent), PHIL 203, and PHIL 206. CS + Philosophy majors (matriculated after Fall 2020) are required to have PHIL 202 (or equivalent), PHIL 222, and PHIL 223.
PHIL--- (3-4)
Philosophy Elective
15 hours 15 hours 14 hours 16-17 hours 14-16 hours 16-18 hours 15-17 hours 15-16 hours

Notes

Before reviewing the links, students should find their effective Academic Catalog Year. When clicking any links referenced below that take students to the Academic Catalog Year pages, they should be mindful of which Academic Catalog year is displayed.

  1. This optional course is highly recommended for freshmen, who may use it to help meet free elective requirements.
  2. MATH 220 may be substituted. MATH 220 is appropriate for students with no background in calculus.
  3. LAS 102 may be used for external transfer students. LAS 100 is supplemental course international students take along with LAS 101/102/122.
  4. RHET 105 (or an alternative Composition I sequence) is taken either in the first or second semester of the first year, according to the student's UIN (Spring if UIN is Odd). General Education Elective is taken the other semester. Composition I guidelines can be found at Degree and General Education Requirements under Written Communication Requirement.
  5. General education: Students must complete the Campus General Education requirements including the campus general education language requirement.
  6. MATH 225 may be substituted.
  7. CS 340 and two (2) CS technical electives (400 level CS courses) can be use to substiute the CS 233 and CS 341 requirements. The 2 technical electives must be distinct from courses used to satisfy other major requirements and can replace Free Electives.
  8. Additional coursework, subject to College of Liberal Arts and Sciences restrictions to Free Electives, so that there are at least 120 credit hours earned toward the degree.

The code used to present this flowsheet is based on original work shared by the University at Buffalo School of Engineering and Applied Sciences.