Undergraduate Guide
+
Overview
Computer science is the study of software (programming), hardware, and theoretical aspects of high-speed computing devices, as well as the application of these devices to a broad spectrum of scientific, technological, and business problems.
Both the College of Liberal Arts (CLA) and the College of Science and Engineering (CSE) offer a bachelor's degree in computer science. These degrees not only provide a basic understanding of the field, but also include an upper division emphasis in a student-chosen subarea of computer science. This flexibility allows for concentrations within computer science, or in interdisciplinary areas involving computer applications. This should prepare students for a variety of industrial, governmental, and business positions involving computer use, or for graduate work in the field.
The four-year CLA program leads to the degree of Bachelor of Arts, B.A., with a major sequence in Computer Science. The four-year CSE program leads to the degree of Bachelor of Science, B.S., in Computer Science. A minor sequence in Computer Science, available to all students, is offered through CLA.
The remainder of this guide is organized into sections. Where the information in a section differs for CLA and CSE students, subsections contain specific information for each type of major. The material in this document pertains only to the departmental requirements. Each college may have other requirements not covered here.
Additional information about the computer science Department and the computer science undergraduate program may also be obtained via the following links:
These websites contain some application forms, announcements, advising information, and other useful links.
Advising information for lower division students is available at the following locations:
- CSE Academic Advising: 105 Lind Hall, 612-624-2890
- CLA Student Services: 16 Johnston Hall, 612-625-2020
+
CS&E degree programs
Overview
Students interested in studying computer science have the option of obtaining the Bachelor of Science (B.S.) degree through the College of Science & Engineering or the Bachelor of Arts (B.A.) degree through the College of Liberal Arts.
Requirements for all computer science degrees:
- Liberal education requirements (cores and themes): These university-wide requirements ensure a student has a broad education covering a number of different areas.
- Required core classes: These classes provide a solid foundation in the theory and practice of computer science. Since the field changes so quickly, it is important for students to have a foundation in computer science basics so they can continue to learn as the field evolves. All required courses must be taken A-F and passed with a grade of C- or better.
- Upper division electives: All CS students (both B.A. and B.S.) must take at least 23 credits of upper division elective coursework. (More details on this below). The purpose is to allow students to get greater depth in a computer science area of their choice. All elective courses must be taken A-F and passed with a grade of C- or better.
Differences in requirements between B.A. and B.S. degrees
Though the B.S. and B.A. degree programs share many requirements, they differ in the following ways:
- The B.S. requires two intro level science courses: PHYS 1301W and an additional science course (from a list of approved options).
- The B.A. requires four semesters of second language coursework or demonstrated proficiency. (More information on this requirement can be obtained from the CLA advising office.)
Then:
- Both the CS B.A. and CS B.S. degrees require 23 total credits (7-8 courses) of upper division elective coursework.
- The B.A. requires a minimum of 8 credits of upper division (4000-5000) CSCI-designator elective coursework
- The B.A. also requires a minimum of 18* credits of upper division (3000 or higher) non-CSCI-designator elective coursework
- STAT 3021 is a 3-credit core course for all CS students. Since it's a 3000-level non-CSCI-designator course, B.A. students can think of needing just 15 credits of upper division non-CSCI electives.
- The B.S. requires 23 total credits (7-8 courses) of upper division elective coursework, i.e. "tech electives".
- At least one of the 7-8 total courses must come from the list of approved upper division math-oriented options.
- At least 11 of the 23 credits must come from CSCI-designator electives. The other 12 credits can be additional CSCI electives OR can come from the list of approved non-CSCI-designator options.
The degree requirements listed here apply to all students who began their education at the University of Minnesota during the Fall of 2013 or after for CSE students and Fall 2014 or after for CLA students. Previous degree requirements can be found in the appendix. Degree requirements between the current program and previous programs cannot be mixed. It is recommended that students who enrolled at the University of Minnesota prior to Fall 2013 contact an undergraduate advisor when planning their degree completion.
Distinction between B.A. and B.S. degrees
When working with colleagues in the CSE and CLA Career Centers and with many U.S.-based employers, we are routinely told that employers do not know or care about the difference between graduates with a B.A. in computer science and graduates with a B.S. in computer science. Students earning a bachelor’s degree in computer science are qualified for an extremely wide range of jobs across many sectors and industries; B.A. and B.S. students take the same required core courses and same amount of upper division elective coursework; and departmental opportunities such as student groups, research opportunities, and studying abroad are available to students in both degree programs.
That said, here are things advisors encourage students to consider:
- The B.S. upper division technical elective credits can allow for students the opportunity to focus on a particular CSCI interest area. For students who are highly interested in a particular area of study within computer science, the B.S. may provide a better background.
- The B.A. asks for 8 credits of upper division CSCI coursework and 18 credits of upper division non-CSCI electives. These could include courses in statistics, mathematics, electrical engineering, psychology, or any other 3xxx-level or higher UMN courses. B.A. students may choose to explore another area of study that intersects with computer science, such as psychology, communications, or economics. For applications and future career goals that involve the liberal arts (human-centered computing, big data, and data privacy/public policy, etc.), this broader background may be more appropriate. The B.A. may also be a more efficient option for students pursuing a double major or a large minor.
Transfer students
New student transfers
Students transferring to the University of Minnesota from another school and wishing to select computer science as their major should first consult with the appropriate admissions counselor:
- College of Science and Engineering (CSE) for the B.S. program
- College of Liberal Arts (CLA) for the B.A. program
Based on the transfer coursework completed at the time of admission to the University, students will either be admitted as a major or pre-major student.
- Transfer students admitted as pre-majors will still need to apply to the major. The applications are posted online for CLA (B.A.) and CSE (B.S.).
- Students admitted as major students do not need to take any additional steps to apply to the major.
All transfer students will meet either a college advisor (pre-major students) or a departmental advisor (major students) during their orientation day organized by either CSE or CLA.
Transferring between CLA and CSE
Students wishing to transfer either from CLA to CSE to obtain a B.S. degree or from CSE to CLA to obtain a B.A. degree must file a Change of College Form online. Please pay particular attention to the application deadlines. Students transferring to CSE should refer to this website for admission criteria and information sessions.
Minors
Minor options in the department
Computer science minor
The computer science minor is a great option for students who want to include a basic core of computer science coursework to enhance or supplement their major program.
Information technology minor
This interdisciplinary minor provides opportunities for students from non-technical disciplines to supplement their major with a practical set of courses focused on information technology.
Minor options for computer science majors
Many students find that pursuing minor degree programs can be a strategic way to explore other interests and gain skills that are helpful for future career goals.
+
Academic and CSCI course policies
- Introductory computer science sequences FAQ
- C- or better policy
- Common CSCI substitutions
- Course restrictions for CSCI 3081W and CSCI 4061
- CSCI classes with undergraduate AND graduate versions
Introductory computer science sequences FAQ
There are multiple pathways to completing our introductory course sequence. This often leads to many questions from students, so we developed a webpage to answer frequently asked questions. If your questions is not answered in the FAQ, please email [email protected].
C- or better policy
Students must complete all classes required by their degree program (B.A. or B.S.) with a grade of C- or better. This includes all classes specifically required for the degree (e.g., STAT 3021, CSCI 2011) as well as classes used for the CSCI electives (B.A.) and CSCI technical elective requirements (B.S.). If a D or D+ grade is earned, students can petition to have that grade count toward the completion of a degree requirement.
Learn more about the D grade policy petition option
Common CSCI substitutions
The following are approved substitutions for certain computer science requirements. Keep in mind that while these substitutions are approved, they are not necessarily recommended. We advise against students without other upper division math or statistics coursework taking 4xxx/5xxx level math and statistics courses in place of CSCI 2033 and STAT 3021. If you have already or plan to take advantage of a substitution, know that they are not always automatically updated in APAS reports and may need to be manually added. Please work directly with your computer science major advisor if you have questions.
View the common CSCI course substitutions
Course restrictions for CSCI 3081W and CSCI 4061
Computer Science has restricted two required major courses so only specific majors can register for them. This helps prioritize students needing the course who are officially in a program.
- CSCI 3081W will only be allowing the following students access: CSCI B.S. declared majors, CSCI B.A. declared majors, CSCI M.S. students, CSCI Ph.D. students
- CSCI 4061 will only be allowing the following students access: CSCI B.S. declared majors, CSCI B.A. declared majors, CSCI M.S. students, CSCI Ph.D. students, data science M.S. students, computer engineering declared majors, electrical engineering declared majors, electrical engineering M.S. students, electrical engineering Ph.D. students, information technology infrastructure declared majors
Pre-major students in CLA and CSE won’t be able to register for these courses until they are admitted to the major. Permission numbers will not be given out to pre-major students. Permission numbers will not be given to Computer Science Minor students.
Advisors will consider requests from other declared majors, and prospective graduate students if there is proof that they need these courses for their program of study. Students in this situation should fill out this form the week before the start of the term.
CSCI classes with undergraduate AND graduate versions
The internet programming (4131/5131), data communication and networks (4211/5211), AI I (4511W/5511), and databases (4707/5707) classes have a 4xxx and 5xxx version. The purpose of this is to allow tailoring of the course to the primary audiences (undergraduate students for the 4xxx version, graduate students for the 5xxx). There is enough overlap between the two versions that students will not be able to get credit for both.
Who should take which version of the courses?
- Computer science and computer engineering graduate students should take the 5xxx version; they will not receive graduate credit for the 4xxx versions.
- Graduate students from other programs should check with their programs and see which version will be acceptable.
- Most undergraduates should take the 4xxx version.
- Undergraduate students can take 5xxx level courses for their degree requirements; however, it's also perfectly possible to complete your electives with 4xxx-level coursework.
- Many students note an experiential difference in the STRUCTURE (rigor, pace, assignments) of 5xxx-level courses, since they are designed and taught with the assumption that everyone in the room already has a 4-year degree and/or is in a graduate program.
- There tends to be a much higher expectation of self-teaching in 5xxx-level coursework/less direct guidance from instructors.
- Undergraduate students can take 5xxx level courses for their degree requirements; however, it's also perfectly possible to complete your electives with 4xxx-level coursework.
+
B.A. degree requirements
Application to program
Students may pursue admission to the Computer Science major in the College of Liberal Arts after completing and enrolling in certain courses in our program. Admission to the major is competitive and is based on an unbracketed technical GPA from University of Minnesota – Twin Cities courses.
We encourage all interested students to apply to the computer science major program of their choice as soon as they have met the eligibility requirements (in other words, do not delay applying to a major).
The demand for computer science education at the University has been increasing for over a decade, and it has outpaced the University's investment in our instructional capacity. Therefore, the Department is being forced to impose stricter limits on admission to the major at least for the near future. Learn more about these changes and suggested next steps.
Students should be careful to follow the steps and deadlines listed on the B.A. program application page.
Upper division major (CSCI-designator) electives
Students in the B.A. program need a minimum of 8 credits of 4000-5000 level elective coursework from CSCI-designator courses. Since most upper division CSCI elective courses are three credits, students typically take three 3-credit courses to meet the 8 credit minimum. The Department of Computer Science & Engineering has a wide variety of 4000-5000 level CSCI elective courses that have been grouped into focus or interest areas of study within computer science.
Rather than focusing on “choosing” an area of study, students are encouraged to view the major technical elective courses as a way to explore or more specialties within computer science and use those courses as a way to further develop computer science knowledge and skills. A area of study is not meant to limit your course options; students are able to mix and match across interest areas!
See all the areas and associated courses
Sample graduation plan
The sample graduation plan for the major includes all required courses in the order strongly recommended by advisors. While graduation is not guaranteed in four years, these sample plans are an example of how students could finish degree requirements in that amount of time.
This plan is for students admitted as of fall 2014 and for future admitted students.
Students who are pursuing a B.A. degree and were admitted to the major prior to fall 2014 may use the previous graduation plans:
+
B.S. degree requirements
- Application to program
- Technical electives: Overview and interest areas
- Approved upper division math-oriented requirement (part of technical electives)
- Approved non-CSCI-designator technical electives
- Sample graduation plan
Application to program
Admission to a major in the College of Science and Engineering is a competitive process based on the successful completion of specific technical courses and a grade point average (GPA) based on technical courses (the technical GPA).
Students who have completed the necessary technical courses and have a 3.2 or above technical GPA at the end of fall semester will be guaranteed admission to that major. All other students who have completed the necessary technical coursework for their intended major (as identified by each department) will be considered for admission to that major on a space-available basis.
The demand for computer science education at the University has been increasing for over a decade, and it has outpaced the University's investment in our instructional capacity. Therefore, the Department is being forced to impose stricter limits on admission to the major at least for the near future. Learn more about these changes and suggested next steps.
The College of Science and Engineering website has more information on applying to your major as a CSE student.
Students should be careful to follow the steps and deadlines listed on the B.S. program application page.
Technical electives
Students in the B.S. program need 23 credits of upper-division elective coursework, including at least one course that satisfies the upper division math-oriented requirement and at least 11 credits of CSCI-designator electives. The Department of Computer Science & Engineering has a wide variety of upper-division elective courses that have been grouped into broad interest areas.
Rather than focusing on “choosing” an area of study, students are encouraged to view technical elective courses as a way to go deeper into one or more specialties within computer science and use those courses as a way to further develop computer science knowledge and skills. An area of study is not meant to limit your course options; indeed, students are able to mix and match elective courses across interest areas (and departments!).
See all the areas and associated courses
Note: The areas were changed in the summer of 2020. If needed, you can still view the previous groupings.
Upper division math-oriented requirement
Students working towards a B.S. in Computer Science are required to take an upper division math-oriented course as part of their 23 total credits of upper division elective coursework.
See the approved courses for the math-oriented requirement
Approved non-CSCI-designator technical electives
Of the 23 total upper division elective credits needed for the B.S. degree, a minimum of 11 out of 23 must come from 4xxx-5xxx level CSCI-designator courses. The other 12 credits can come from approved non-CSCI-designator technical electives listed below.
See the classes that are automatically approved as non-CSCI technical electives for the B.S. program
Sample graduation plan
The sample graduation plan for the major includes all required courses in the order strongly recommended by advisors. While graduation is not guaranteed in four years, these sample plans are an example of how students could finish degree requirements in that amount of time.
This plan is for students admitted as of fall 2013 and for future admitted students.
Students who are pursuing a B.S. degree and were admitted to the major prior to fall 2013 may use the previous sample graduation plans:
+
Student engagement
We strongly encourage students to involve themselves in opportunities beyond the classroom. From on- and off-campus internships and work experiences to studying abroad to student groups, there are many ways to meet people, practice leadership, and learn new skills (or polish existing ones!)
Jobs & internships
CSCI Teaching Assistant opportunity
Handshake job and internship site
University of Minnesota student jobs
Co-Op program (be sure to speak with a CSCI advisor before applying)
Get involved
CSCI 4950 (Senior Software Project)
Study abroad
University of Minnesota Learning Abroad Center
Learning abroad in CLA - B.A. students
Learning abroad in CSE - B.S. students
Research
How to get involved in undergraduate research
Undergraduate student research interest survey
For credit research opportunities (CSCI 4970W, CSCI 5991, CSCI 5994)
Stay connected
Sign up for the CSCI undergraduate mailing list
Follow @umncomputerscience on Instagram
Follow @UMNComputerScience on Twitter
Follow @UMNComputerScience on Facebook
+
Student support resources and general info
Like engagement opportunities, there are many resources and tools available to you to support you academically, as well as policies to know and understand. Below are some of the most common - if you don’t see something you’re curious about, please ask your advisor!
Important links
OneStop Student Services
(policies, academic information, financial aid & tuition, and more)
CSCI undergraduate prerequisite chart
Scholarship information
Department of Computer Science & Engineering scholarships
College of Liberal Arts scholarships
College of Science and Engineering scholarships
Resources for academic success
Student Academic Success Center
Graduation and beyond
Graduation checklist for undergraduates
College of Science and Engineering commencement
College of Liberal Arts commencement
University of Minnesota computer science graduate programs
Peterson’s Guide
(for exploring other graduate programs and institutions)
Academic integrity policies
University of Minnesota student conduct code
+
Frequently asked questions
The advising team has put together a list of some of the most frequently asked questions that they receive from undergraduate students.
Academic Advisors
Jacquelyn Burt, Dametrius Coleman, Daliya Jokondo, and Kelly Thomas
324 Lind Hall
[email protected]