Our graduates discover that computer science (CS) opens up a world of possibilities.
Computer scientists enjoy exceptional career opportunities, in settings ranging from large, established companies to adventurous new startups. They are also well qualified to pursue graduate study in a number of fields.
Our students are creative, analytical problemsolvers. This is a rich, collaborative and varied field that you will find challenging, no matter where your individual interests lie.
And there is more to CS than programming. While software engineering is an important skill, computer scientists also work with robots and other physical devices, design hardware that runs faster and more efficiently, and apply machine learning techniques to gain insight from large data sets—to name just a few examples.
Because CS has become highly interconnected with medicine, business and many other fields, it is a great fit with other interests you may have. You will enjoy a strong career outlook while having an impact on society.
Declaration Requirements
To declare the computer sciences major, students must complete one Comp Sci course at UW–Madison and achieve a grade of "C" or better in that course. The course must be worth 2 or more credits.
Information on declaring the major is available on the Department of Computer Sciences advising pages.
University General Education Requirements
All undergraduate students at the University of Wisconsin–Madison are required to fulfill a minimum set of common university general education requirements to ensure that every graduate acquires the essential core of an undergraduate education. This core establishes a foundation for living a productive life, being a citizen of the world, appreciating aesthetic values, and engaging in lifelong learning in a continually changing world. Various schools and colleges will have requirements in addition to the requirements listed below. Consult your advisor for assistance, as needed. For additional information, see the university Undergraduate General Education Requirements section of the Guide.
General Education 
* The mortarboard symbol appears before the title of any course that fulfills one of the Communication Part A or Part B, Ethnic Studies, or Quantitative Reasoning Part A or Part B requirements. 
College of Letters & Science Breadth and Degree Requirements: Bachelor of Science (B.S.)
Students pursuing a bachelor of science degree in the College of Letters & Science must complete all of the requirements below. The College of Letters & Science allows this major to be paired with either a bachelor of arts or a bachelor of science curriculum. View a comparison of the degree requirements here.
Bachelor of Science DEGREE REQUIREMENTS
Mathematics  Two (2) 3+ credits of intermediate/advanced level MATH, COMP SCI, STAT Limit one each: COMP SCI, STAT 
Foreign Language  Complete the third unit of a foreign language Note: A unit is one year of high school work or one semester/term of college work. 
L&S Breadth 

Liberal Arts and Science Coursework  108 credits 
Depth of Intermediate/Advanced work  60 intermediate or advanced credits 
Major  Declare and complete at least one (1) major 
Total Credits  120 credits 
UWMadison Experience  30 credits in residence, overall 30 credits in residence after the 90th credit 
Minimum GPAs  2.000 in all coursework at UW–Madison 2.000 in intermediate/advanced coursework at UW–Madison 
Non–L&S Students PURSUING AN L&S MAJOR
Non–L&S students who have permission from their school/college to pursue an additional major within L&S only need to fulfill the major requirements and do not need to complete the L&S breadth and degree requirements above.
Requirements for the Major
REQUIRED COURSEWORK
Code  Title  Credits 

No course may be used to satisfy more than one requirement in the computer sciences major.  
Courses taken on a pass/fail basis will not count toward any major requirements. 
BASIC COMPUTER SCIENCES
Code  Title  Credits 

Complete all of the following courses:  14  
Introduction to Discrete Mathematics  
Introduction to Computer Engineering  
Programming II  
Machine Organization and Programming  
Programming III 
BASIC CALCULUS
Code  Title  Credits 

Select one of the following options:  914  
Calculus and Analytic Geometry 1 and Calculus and Analytic Geometry 2  
Calculus with Algebra and Trigonometry I and Calculus with Algebra and Trigonometry II and Calculus and Analytic Geometry 2  
Topics in Calculus I and Topics in Calculus II 
ADDITIONAL MATHEMATICS
Code  Title  Credits 

Select two from the following:  610  
Elementary Matrix and Linear Algebra (recommended) ^{1}  
Introductory Applied Statistics for Engineers (recommended)  
Introduction to Numerical Methods ^{2}  
Introduction to Cryptography  
Numerical Linear Algebra  
Numerical Analysis  
Linear Programming Methods  
Advanced Linear Programming  
CalculusFunctions of Several Variables ^{1}  
Techniques in Ordinary Differential Equations  
Linear Algebra and Differential Equations ^{1}  
Applied Mathematical Analysis  
Applied Mathematical Analysis  
An Introduction to Probability and Markov Chain Models  
Linear Algebra  
Topics in MultiVariable Calculus and Linear Algebra ^{1}  
Topics in MultiVariable Calculus and Differential Equations  
Introduction to the Theory of Probability  
Applied Linear Algebra  
College Geometry I  
Introduction to Combinatorics  
Analysis I  
Modern Algebra  
Modern Algebra  
Elementary Number Theory  
Mathematical Logic  
Introduction to Probability and Mathematical Statistics I  
Introduction to Probability and Mathematical Statistics II  
Introduction to Theory and Methods of Mathematical Statistics I  
Introduction to Theory and Methods of Mathematical Statistics II  
Introduction to Random Signal Analysis and Statistics 
^{1}  MATH 375 may not be combined with MATH 234 CalculusFunctions of Several Variables, MATH 320 Linear Algebra and Differential Equations, or MATH 340 Elementary Matrix and Linear Algebra. The math department may have additional restrictions on giving credit to certain pairs of math courses. 
ADVANCED COMPUTER SCIENCES
Code  Title  Credits 

Some of the advanced COMP SCI courses listed below have prerequisites not specifically required for the major. It is recommended that students plan ahead to ensure prerequisites are completed in advance of their selected coursework. 
THEORY
Code  Title  Credits 

Select one of the following courses:  3  
Introduction to Algorithms (recommended)  
Introduction to Theory of Computing 
SOFTWARE/HARDWARE
Code  Title  Credits 

Select two of the following courses:  68  
Foundations of Mobile Systems and Applications  
Software Engineering  
Introduction to Programming Languages and Compilers ^{1}  
Introduction to Operating Systems  
Introduction to the Theory and Design of Programming Languages ^{1}  
Introduction to Computer Architecture  
Database Management Systems: Design and Implementation  
Introduction to Computer Networks  
Introduction to Information Security 
^{1}  COMP SCI 536 Introduction to Programming Languages and Compilers may not be combined with COMP SCI 538 Introduction to the Theory and Design of Programming Languages. 
APPLICATIONS
Code  Title  Credits 

Select one of the following courses:  
Introduction to Numerical Methods ^{1}  
Introduction to Combinatorial Optimization  
Numerical Linear Algebra  
Numerical Analysis  
Introduction to Optimization  
Linear Programming Methods  
Computational Photography  
Introduction to Artificial Intelligence  
Natural Language and Computing  
Computer Systems Modeling Fundamentals  
Computer Graphics  
Introduction to HumanComputer Interaction 
^{1}  COMP SCI 412 Introduction to Numerical Methods is used to satisfy the "Additional Mathematics" requirement, it cannot satisfy the "Applications" requirement. 
COMPUTER SCIENCES ELECTIVES
Code  Title  Credits 

Select two of the following courses:  68  
Foundations of Mobile Systems and Applications  
Introduction to Numerical Methods  
Introduction to Combinatorial Optimization  
Introduction to Cryptography  
Introduction to Computational Statistics  
Introduction to Combinatorics  
Software Engineering  
Numerical Linear Algebra  
Numerical Analysis  
Introduction to Theory of Computing  
Introduction to Optimization  
Linear Programming Methods  
Advanced Linear Programming  
Theory and Applications of Pattern Recognition  
Image Processing  
Computational Photography  
Introduction to Programming Languages and Compilers  
Introduction to Operating Systems  
Introduction to the Theory and Design of Programming Languages  
Introduction to Artificial Neural Network and Fuzzy Systems  
Introduction to Artificial Intelligence  
Natural Language and Computing  
Computer Systems Modeling Fundamentals  
Introduction to Computer Architecture  
Introduction to Computational Geometry  
Computer Graphics  
Database Management Systems: Design and Implementation  
Medical Image Analysis  
Introduction to HumanComputer Interaction  
Introduction to Bioinformatics  
Introduction to Algorithms  
Virtual Reality  
Tools and Environments for Optimization  
Undergraduate Elective Topics in Computing  
Introduction to Computer Networks  
Introduction to Information Security  
Computer Game Technology 
Residence and quality of work:
2.000 GPA in all COMP SCI courses and courses counting toward the major
2.000 GPA on 15 upperlevel credits, taken in residence^{1}
15 credits in COMP SCI, taken on campus
^{1}  COMP SCI courses numbered 400 and higher count as UpperLevel. 
DISTINCTION IN THE MAJOR:
Code  Title  Credits 

Distinction in the major is awarded automatically upon graduation to computer sciences majors who meet the qualifications below. 
QUALIFICATIONS FOR DISTINCTION IN THE COMPUTER SCIENCES MAJOR
Code  Title  Credits 

3.750 GPA in all COMP SCI courses and courses counting toward the major  
OR  
3.500 GPA in all COMP SCI courses and courses counting toward the major, plus completion of one of the following:  
Completion of COMP SCI 691 & COMP SCI 692 for at least 6 credits, or  
One COMP SCI course, at the 500 level or above, and counted towards the major, must be taken for honors credit and completed with a grade of “B” or better 
Honors in the Major
Students may declare Honors in the Computer Sciences Major in consultation with the Computer Sciences undergraduate coordinator(s).
Honors in the Computer Sciences Major Requirements
 Earn a 3.300 overall university GPA
 Earn a 3.500 GPA for all COMP SCI courses, and all courses accepted in the major
 Complete the following coursework, earning a B or better in each individual course:
 One COMP SCI course, at the 500 level or above, taken for Honors credit, which counts toward the COMP SCI major
 A twosemester Senior Honors Thesis in COMP SCI 681 Senior Honors Thesis and COMP SCI 682 Senior Honors Thesis, for a total of 6 credits.^{1}
^{1}  The thesis proposal must be approved by both the thesis/project advisor and the department undergraduate coordinator before enrollment in COMP SCI 681. A final thesis or project must be filed with the Department of Computer Sciences before a final grade for COMP SCI 682 can be awarded. 
Upon graduation, students will be able to:
 Recognize and apply the core principles of Computing (abstractions and algorithms) to solve realworld problems.
 Describe and apply the theoretical foundations of Computer Science (e.g., complexity analysis) in practical settings.
 Demonstrate knowledge of key elements of computer systems, e.g., hardware, operating systems, networks.
 Use fundamental and detailed knowledge, skills, and tools (e.g., specific algorithms, techniques methods, etc.) of computer science and develop the ability to acquire new knowledge, skills, and tools.
 Design, implement, and evaluate software in multiple programming paradigms and languages.
 Develop a substantial piece of software, and recognize the challenges of designing and developing software.
 Exhibit technical (designing, implementing, and testing) and teamwork (communication, collaboration, and professional practice) skills in order to develop solutions as a computer science practitioner.
 Can solve problems by applying a broad toolbox of knowledge and techniques.
Advising
The undergraduate coordinators in the Department of Computer Sciences are ready to help students with questions about the major, L&S degree requirements and policy, and course selection. Information on academic advising for students interested or declared in the computer sciences major is posted to the Computer Sciences advising page.
CAREERS
Demand for those with a computer sciences education is exceptionally strong. According to figures from the U.S. Bureau of Labor Statistics, the vast majority of growth in STEM (science, technology, engineering, and math) occupations through 2020 will occur within computing fields.
Computer sciences majors are encouraged to begin working on their career exploration and preparation soon after arriving on campus to explore different career paths, participate in coops or summer internships, prepare for the job search and/or graduate school applications, and network with professionals in the field.
Department of Computer Sciences: the department hosts one major career fair per year, in the fall, as well as other opportunities to connect with employers, such as technical talks and information sessions.
Letters & Science Career Services: L&S Career Services offers two major career fairs per year, assists with resume writing and interviewing skills, and offers individual career advising appointments for L&S students.
Engineering Career Services (ECS): ECS offers two major career fairs per year, assists with resume writing and interviewing skills, and hosts workshops on the job search.
Professors A. ArpaciDusseau, R. ArpaciDusseau, Bach, Barford, Banerjee, Cai, Doan, Dyer, Ferris, Gleicher, Hill, Jha, Livny, Miller, Patel, Reps, Ron, Shavlik, Sohi, van Melkebeek, Wood, Wright, Zhu
Associate Professors Akella, Chawla, Liblit, Mutlu, Sankaralingam, Swift
Assistant Professors Albarghouthi, D'Antoni, Gupta, Koutris, Sifakis
Faculty Associates Dahl, Deppeler, Hasti, Legault, LewisWilliams, Skrentny, Williams
Visit Scholarships@UWMadison to find UW–Madison scholarships and apply online.
Visit the scholarships page on the Department of Computer Sciences website for a compendium of opportunities available to students studying computer sciences.