Undergraduate Guide

Revised on: November 13th, 2014.

1. Introduction

Computer science is the study of software (programming), hardware, and theoretical aspects of high-speed computing devices, and 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 concentrations within computer science, or in interdisciplinary areas involving computer applications. This should prepare a student 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 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 be also 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:

Most University-related information is available on the University's OneStop website.

2. Degree Programs

2.1. Computer Science Major

The Computer Science and Engineering Department offers a Bachelor of Science degree for CSE students and a Bachelor of Arts for CLA students. For both the B.S. and B.A. all major courses must be taken A-F,  and passed with a grade of C- or better. The degree check-lists and a prerequisite chart later in this guide show the major courses and prerequisites.

The degree requirements contained 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 14 or after for CLA students. Previous 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 the Undergraduate Advisor when deciding which requirements to use.

The B.S. and B.A. share many requirements, but they differ in the following ways:

  • The B.S. requires two lab science courses, one of which is Physics I, the other is chosen from a list of approved lab science courses.
  • The B.S. requires an upper division math oriented requirement.
  • The B.S. includes a 23-credit upper division track (including the upper division math oriented requirement), while the B.A. includes 8-credits of elective upper division (4XXX-5XXX) computer science courses.
  • The B.A. requires an additional 18 upper division credits outside of the CSCI prefix to meet the CLA requirements. STAT 3021 counts for 3 of these 18 credits.
  • The B.A. requires second language coursework or proficiency. (More information on these credits can be obtained from the CLA advising office.)

2.1.1. Which Computer Science Degree Should I Choose?

The B.S. has credits in the upper division track allowing the student to pursue more deeply a particular area of computer science and tailor the degree to a specific area of interest. For students who are more likely to practice in an area that is highly specialized or technical, the B.S. may provide a better background.

The B.A. is a good fit for someone who wants to learn Computer Science + X. It allows room to explore another area of study when compared the technical course heavy BS program. The B.A. includes a richer set of liberal education credits than the B.S. For application areas that involve the liberal arts, 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 to stay on track for a four-year graduation.

Students don't have to pursue a specific track or specialization in the B.A., but it's recommended to package the 8 minimum credits of CSCI 4000-5000 level electives into a given area similar to our B.S. program tracks. 

Common additions to pair with both the B.S and B.A. program would be Carlson Management Minor, Math Minor, Statistics Minor, and the IT Infrastructure Certificate. As previously noted, additions may be easier to fit into a graduation plan with the B.A. program.

The curriculum differences between the B.S. and B.A. are:

  • The B.S. requires two two additional science courses beyond the university required physical and biological science requirements; The B.A. doesn't require additional science courses.
  • The B.S. requires a junior or senior level math oriented course; The B.A. doesn't require this math requirement.
  • The B.S. requires 23 total credits of 4000-5000 level computer science or related coursework that includes the math oriented course mentioned above; The B.A. requires 8 credits of CSCI specific 400-5000 level electives.
  • The B.S. doesn't require a second language; The B.A. requires a second language.
  • The B.S. doesn't require additional outside the major electives; The B.A. requires 18 credits of upper-division coursework outside of CSCI (This is where student can add minors, additional majors, or more CSCI-related courses if they want)

Most employers and graduate schools will not specify which type of computer science degree is required to apply for a given position. Students in the B.S. and B.A. programs will be competing for almost all of the same job and graduate school opportunities. What will make a student stand out to employers or graduate schools will be what surrounds their degree on their resume. Some of the possible opportunities students can pursue to add to their resume include research, TA positions, student group involvement and leadership, and internships.

2.2. Computer Engineering Degree

The Computer Science and Engineering Department and the Electrical and Computer Engineering Department offer a joint degree in Computer Engineering. For more information please see the Electrical and Computer Engineering Undergraduate Curriculum Guide as well as other Computer Engineering information on the ECE Advising Site.

2.3. Computer Science Minor

A Computer Science minor is available to most undergraduate students through CLA. The Computer Science minor is for students who want to include a basic core of computer science coursework to enhance or supplement their major program. Knowledge of computing is useful for students majoring in engineering, physical, biological, and social sciences, business, and almost any other major, including design and visual arts, just to name a few. The minor increases job opportunities and provides a base for more advanced studies and independent learning.

The minor teaches students problem-solving and computational thinking skills, as well as fundamental programming concepts, practical knowledge of computer programming languages, data structures, and algorithm development techniques that are essential to modern computing. Students have flexibility in choosing courses to meet the minor requirements. Advanced courses provide detailed knowledge in specific topics, such as databases, networks, internet programming, or game design.

To succeed, the students in the minor need to have solid analytical and abstraction skills. Students who are not planning on taking calculus should take at least a math class, such as Math 1031 College Algebra and Probability or Math 1051 Pre-calculus I, before starting the minor.

All the approved minor courses must be taken A-F, with only courses with a grade of C- or better counting towards the minor. At least 3 upper-division credits must be taken at the University of Minnesota-Twin Cities. Students may earn no more than one undergraduate degree in computer science: a B.A. or a B.S. or a minor. Other course work can only be accepted with advisor approval.

A minor consists of 5 three- or four-credit approved Computer Science courses, including the following:

  1. One of the following introductory sequences: CSci 1133 and CSci 1933 (recommended path); CSci 1103 and CSci 1913; or CSci 1113 and CSci 1913. The discontinued courses CSci 1901 and 1902 will be allowed. We allow EE 1301 and CSCI 1913 as well, but this is not a recommended path for most students (except Electrical Engineering students).
  2. Three additional CSci courses, two of which can be CSci 2XXX, 4XXX, and 5xxx, and the other must be CSci 4xxx or higher. All CSci courses can be used, except CSci 2980, 3003, 3113Q, 3921W, 3970, 3980, 4921. 49XX and 59XX courses can be accepted only with prior advisor approval.

Here are some examples of suggested sets of courses for the minor, depending on the student's interests. These are suggestions intended to provide guidance, not requirements.

  • Bioinformatics: 1133, 1933, 2011, 4041, 5461
  • Computational Science: 1113, 1913, 2033, 5302, 5521
  • Cryptography: (1133 and 1933; or 1113 and 1913), 2011, 4041, 5471
  • Data Management: 1133, 1933, 2011, 4041, 4707
  • Game Design (AI): 1133, 1933, 2011, 4511W, 5512
  • Game Design (graphics): 1113, 1913, 2011, 2021, 4611
  • Geographical Information Systems: 1133, 1933, 2011, 4041, 5715
  • Human Computer Interaction: 1133, 1933, 2011, 4041, 5115
  • Networks: (1133 and 1933; or 1113 and 1913), 2021, 4061, 4211
  • Robotics: (1133 and 1933; or 1113 and 1913), 2033, 5302, 5551
  • Theoretical Foundations: 1133, 1933, 2011, 4011, 4041
  • Visualization: 1113, 1913, 2011, 4041, 5609
  • Web Programming: 1133, 1933, 2021, 4061, 4131

All courses for the minor must be from the CSCI prefix or a cross-listed course. Students who have completed Math 2373, 2243, 2574H (Linear Algebra & Differential Equations) or Math 2142 (Linear Algebra) can't use these courses as a substitution for CSCI 2033 in the minor. Students can use these courses to meet pre-requisites for advanced courses requiring CSCI 2033.

The minor can be declared at any point (during first Computer Science course through completion of all requirements). Students must be declared in a major in order to add the minor. Students can declare the minor by meeting with the Computer Science Advisor or by emailing with their name, student id number, and a few sentences regarding their request and where they are at in terms of completing the minor.

2.4. Information Technology Minor

The College of Science and Engineering offers a minor in Information Technology. This is an interdisciplinary minor, with the participation of the College of Science and Engineering (CSE), the College of Liberal Arts (CLA), and the College of Design (CDES).

The purpose of the minor is to provide opportunities to students from non-technical disciplines to supplement their major with a practical set of courses focused on information technology. The minor provides students with basic knowledge and skills in Internet and web technology, and it explores the application of these skills in courses selected from a wide variety disciplines.

  • Structure
    • Courses required – 2 core courses and 3 breadth courses
    • Credits required – 17 credit minimum
  • Required:
    • A grade point average of 2.0 or above in the minor classes.

(Courses must be taken on A-F basis. Each course must be completed with C- or better.)

Introductory Computer Science Courses

Take exactly 2 course(s) from the following:

Preferred Sequence

  • CSCI 1103 - Introduction to Computer Programming in Java (4.0 cr)
  • CSCI 1001 - Overview of Computer Science (4.0 cr)

or Alternative sequence 1

  • CSCI 1103 - Introduction to Computer Programming in Java (4.0 cr)
  • CSCI 1913 - Introduction to Algorithms, Data Structures, and Program Development (4.0 cr)

or Alternative sequence 2

  • CSCI 1113 - Introduction to C/C++ Programming for Scientists and Engineers (4.0 cr)
  • CSCI 1913 - Introduction to Algorithms, Data Structures, and Program Development (4.0 cr)

or Alternative sequence 3

  • CSCI 1133 - Introduction to Computing and Programming Concepts (4.0 cr)
  • CSCI 1933 - Introduction to Algorithms and Data Structures (4.0 cr)

Breadth Courses

Some of the courses below have prerequisites or require instructor permission. Please see the course catalog or a Department of Computer Science and Engineering adviser for more information.

Take 3 or more course(s) from the following:

· COMM 3201 - Introduction to Electronic Media Production (4.0 cr)
· COMM 3211 - Introduction to Media Studies (3.0 cr)
· COMM 4235 - Electronic Media and Ethnic Minorities--A World View (3.0 cr)
· COMM 4291 - New Telecommunication Media (3.0 cr)
· GDES 2342 - Web Design (3.0 cr)
· GDES 4371 - Data Visualization Studio (3.0 cr)
· GDES 5341 - Interactive Design (3.0 cr)
· GDES 5342 - Advanced Web Design (3.0 cr)
· GDES 5372 - Data Visualization for Interactive Platforms (3.0 cr)
· GDES 5383 - Digital Illustration and Animation (3.0 cr)
· GEOG 3561 - Principles of Geographic Information Science (4.0 cr)
· GEOG 5563 - Advanced Geographic Information Science (3.0 cr)
· GEOG 5564 - Urban Geographic Information Science and Analysis (3.0 cr)
· JOUR 3004 - Information for Mass Communication (3.0 cr)
· JOUR 3551 - The Business of Digital Media: Innovation, Disruption, and Adaptation (3.0 cr)
· JOUR 3552 - Internet and Global Society (3.0 cr)
· JOUR 3614 - History of Media Communication (3.0 cr)
· JOUR 3776 - Mass Communication Law (3.0 cr)

The minor can be declared at any point (prior to taking courses through completion of all requirements). Students can declare the minor by printing out the application and meeting with the Computer Science Advisor.

2.5. Information Technology Infrastructure Degree

The College of Continuing & Professional Studies, in collaboration with the Computer Science and Engineering Department, offers a Bachelor of Applied Science (B.A.Sc) in Information Technology Infrastructure (ITI). This degree addresses an industry shortage of professionals with expertise in information technology (IT) and business competencies and emphasizes both the academic concepts of computer systems and IT business solutions. Graduates are prepared to become information technology professionals who can plan, design, construct, and manage technology infrastructure services -- systems, networks, servers, databases, and security. Graduates also develop management and communication skills to build teams that achieve business objectives. For more information, call the College of Continuing Education at (612) 624-4000, or visit the ITI B.A.Sc website.

3. Application to Major

3.1. CLA Computer Science BA Application

Application Link

Introduction

Once students have been admitted to the College of Liberal Arts, they may pursue admission to the Computer Science major. Admission to the major is competitive and is based on an unbracketed Technical GPA from the University of Minnesota – Twin Cities courses. Students should be careful to follow the steps and deadlines listed below. Eligible students need to apply online at z.umn.edu/applycsciba.

Application Process

Students are eligible to apply for Computer Science major status once they have met the following minimum requirements:

 Completed the following courses with a C- or better or have the courses in progress during the current application cycle:

  • Math 1271 or 1371  (Calculus I)
  • Math 1272 or 1372  (Calculus II)
  • CSci 1133, or 1113, or 1103
  • CSci 1933 (if 1133 is taken), or 1913 (if 1113 or 1103 are taken)
  • CSci 2011

Students must have an appropriately connected CSCI I and CSCI II sequence (CSCI 1133 & 1933, CSCI 1113 & 1913, CSCI 1103 & 1913). While any of these appropriately connected sequences are acceptable, CSCI 1133 & CSCI 1933 is the recommended sequence.

Students are only eligible to apply to the major two times. 

Technical GPA

The Technical Grade Point Average (Technical GPA) is calculated using your University of Minnesota - Twin Cities grades in the courses listed in the link provided in this sentence. Courses taken at other institutions may fulfill degree requirements; however, they will not be included in the technical GPA calculation.

An "unbracketed" Technical GPA will be used for admission to the major. This means that all attempts at a course (which resulted in a letter grade of A - F) or its equivalent will be used to calculate the Technical GPA. The Technical GPA is used in the admission to the major process.

The technical GPA can be found on a "What If" APAS Report for the BA in Computer Science.

Admission Standards

Admission to the Computer Science major is a competitive process based on two factors:

  • The successful completion of specific technical courses (as listed above)
  • The student's technical (unbracketed) grade point average (GPA) for courses taken at the University of Minnesota - Twin Cities
    • Students with a 3.2 technical GPA will have guaranteed admission to the major
    • Students below a 3.2 technical GPA, but above a 2.00 technical GPA, will be considered for admission to the major based on space available in the program
    • Students below a 2.00 Technical GPA will automatically be denied
  • Students may only apply to the major twice. After the second denied application, students will need to choose a different major. 

Application Deadlines

Applications for the Computer Science major are accepted during two periods each academic year:

Admission Term

Applications Begin

Application Deadline

Spring semester

March 1

Last day of spring classes

Fall semester

October 1

Last day of fall classes

Please apply as soon as possible.  Early application will allow us to better understand how the demand for the Computer Science major may impact the technical GPA cutoff point required for admission and to advise students accordingly.

Admission Notifications

Students will be notified of their admission decision once all grades have posted for the semester and a review has been done. Students applying in fall should expect email notifications in early January. Students applying in spring should expect email notifications in late May or early June.

Historical Admission Results

Admission to the major is based on the space available. This is to ensure students who are admitted to the program can register for required classes as they need them and graduate in a timely manner. Below you will see a table of historical admission statistics to provide a sense of how competitive it has been in previous semesters. Keep in mind that every cycle is different. The statistics below only include CLA applicants. CSE applicants are competing for admission to the major in the same pool as CLA applicants.

SemesterApplicantsAdmittedPercentageLowest Tech GPA Admitted
Fall 2015765369.74%2.400
Spring 2016916268.13%2.400
Fall 20161046562.50%2.500
Spring 2017985556.12%2.500
Fall 20171449868.06%2.500
Spring 20181117264.86%2.500

3.2. CSE Computer Science BS Application

CSE students are usually accepted into the B.S. program upon admission to upper division. Students should apply online when they have completed or they are currently enrolled in Calc I, Calc II, CS I (CSci 1133, 1103, 1113, or 1901), CSci II (CSci 1933, 1913, or 1902), and CSci 2011. Failure to apply in a timely manner will result in a major declaration hold which may prevent future registration.

Information on applying to a major in CSE can be found here.

Here is part of that page:

"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."

Students applying for the computer science B.S. should have completed the following courses by the end of the semester they submit their online application: Calc I, Calc II, CSci I (CSci 1133, 1103, 1113, or 1901), CSci II (CSci 1933, CSci 1913, or 1902), and CSci 2011. Each course must have been completed with a C- or better. Admission to the major is based on the unbracketed technical GPA. This is the GPA in all attempts of Computer Science, Math, Statistics and other technical courses required for science or engineering degrees. More information on the technical GPA can be found here. CSE students can check their technical GPA on their APAS report. Only classes taken at the University of Minnesota – Twin Cities count towards the technical GPA.

Note if the GPA in technical courses is not sufficiently high, the college reserves the right to deny admission to the major. Students are also advised not to delay application to the major.

Historical Admission Results

Admission to the major is based on the space available. This is to ensure students who are admitted to the program can register for required classes as they need them and graduate in a timely manner. Below you will see a table of historical admission statistics to provide a sense of how competitive it has been in previous semesters. Keep in mind that every cycle is different. The statistics below only include CSE applicants. CLA applicants are competing for admission to the major in the same pool as CSE applicants.

SemesterApplicantsAdmittedPercentageLowest Tech GPA Admitted
Fall 201515514593.55%2.400
Spring 201615214494.74%2.400
Fall 201617715688.14%2.500
Spring 201717515588.57%2.500
Fall 201718316690.71%2.500
Spring 201818316992.35%2.500

3.3. Changing Majors or Adding a Major

Students wishing to switch to the CSci major or add the CSci major to their existing degree plan should begin with their college advising office. Be sure to clearly specify that you are either changing or adding the CSci major. Acceptance is based on the same criteria as acceptance to the major described in section 3.1 (for CLA) and 3.2 (for CSE) for a change in major or major addition.

3.4. Transferring Between CLA and CSE

Students wishing to transfer from CLA to CSE to obtain a B.S. degree, or from CSE to CLA to receive a B.A. degree, must file a Change of College Form online. The following One Stop page describes the process. Pay particular attention to the application deadlines. Students transferring to CSE should refer to this website for admission criteria and information sessions.

3.5. Transfer Students

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 CSE or CLA admissions counselor. Some transfer students will be admitted as pre-majors who will still need to apply to the major (detailed in 3.1 for CLA and 3.2 for CSE). Some transfer students will be admitted as major students will not need to apply to the major. This is based on the transfer work a student has completed at the time of admission to the university. Transfer students will meet either a college advisor (pre-major students) or a departmental advisor (major students) during the orientation day organized by either CSE or CLA.

4. CSci Undergraduate C- or Better Policy

Students must complete all classes that are departmental requirements for the BS and BA degrees with a C- or better. This includes all classes specifically required for the degree (e.g., Stats 3021, CSci 2011) as well as classes used for the CSCI electives (BA), CSCI track requirements (BS), and the upper division math oriented requirement (BS). An Academic Policy Petition requesting to waive a requirement due to a D or D+ for a major class can be considered except for core major requirements. CSCI 2021, 2033, 2041, 3081W, 4041, 4061 are considered core major requirements where a petition can't be considered.

Recommendation for approval from the Director of Undergraduate Studies is required for the Academic Policy Petition prior to submitting to the college office. 

Liberal education and other college or university requirements must be passed with a 'D' or better. 

5. Upper Division Track

The degree requirements contained here apply to all students who began their education at the University of Minnesota during the Fall of 2013 or after for BS students and to all students admitted to the BA program after Fall 2014. BS Students who began their education at the University of Minnesota prior to Fall of 2010 have their choice of following the requirements described here or the previous requirements which can be found in the  Appendix. BA students who were admitted to the major prior to Fall 14 have their choice of following the requirements described here or the previous requirements which can be found in the  Appendix. The two sets of requirements cannot be mixed. It is recommended that students contact the Undergraduate Advisor when deciding which requirements to use if they have the option.

5.1. CLA Students

All CLA students must complete a minimum of 8 credits of 4xxx or 5xxx elective courses (other than the required courses of CSCI 4041 and CSCI 4061 and CSCI 5465) in the Computer Science and Engineering Department. The major electives must be taken A-F. (The quarter class CSci 5113 cannot be used. Moreover, no more than 3 credits from CSCI 4970 or 59xx courses can be used as part of the 8 credits.) CSCI 5996 (CPT course) can't be used for these credits.

5.2. CSE Students

All CSE students must complete an upper division track. The purpose of the upper division track is to allow students to select a coherent program of courses specific to their interests. The rules below are for students who were admitted to the University of Minnesota in Fall 2013 or later. Students who were admitted to the University of Minnesota prior to Fall 2013 should consult the undergraduate guide's Appendix to view their program requirements.

The upper division track consists of courses in four categories:

  • Required Track Courses - 2 specific courses that are required as the basis for each track. These courses will uniquely identify each track, and they cannot be substituted.
  • Selected Track Courses - 2 courses that are selected from a group of courses defined for each track. This category allows the student to provide depth or breadth within a specific track area while allowing some flexibility.
  • Upper Division Math Oriented Requirement
  • CSCI Track Elective Courses - courses that provide enough credits to bring the total track credits to 23. All courses from other tracks can be used as track electives.

The flexibility incorporated into the track structure will allow for a great deal of individual customization of each track. However, a minimum of 11 credits must be from CSci courses. 

During their junior year, students should meet with the Computer Science advisor to plan a track based on the student's academic interests. Students who are interested in tracks that have a large number of prerequisite courses should start planning sooner.

Specific tracks are listed in the next section. Important reminders and some restrictions concerning track credits are presented in Section 5.4.

5.3. Upper Division Track Options

The rules below are for students who were admitted to the University of Minnesota in Fall 2013 or later. Students who were admitted to the University of Minnesota prior to Fall 2013 should consult the undergraduate guide's Appendix to view their program requirements.

All tracks require a minimum of 23 credits as follows: 

Students should note that some of the listed track courses may have additional prerequisites or may be available only with special instructor approval. If students are unable to take such courses for these reasons, they should take other courses in the list that do not have those constraints. Substitutions can be approved by the Computer Science Advisors when course access or time conflicts occur.

Track Summary:

*In addition to these tracks, a custom track can be developed in close consultation with the Computer Science Advisor.

  • Architecture & Hardware Systems

    • CSCI 4203 - Computer Architecture (4) Required Course for Track
    • CSCI 5204 - Advanced Computer Architecture (3) Required Course for Track
    • CSCI 4211 - Introduction to Computer Networks (3)
    • CSCI 5103 - Operating Systems (3)
    • CSCI 5161 - Introduction to Compilers (3)
    • CSCI 5451 - Introduction to Parallel Computing (3)
    • EE 4341 - Embedded System Design (4)

  • Artificial Intelligence/Robotics

    • CSCI 4511W - Introduction to Artificial Intelligence (4) Required Course for Track
    • CSCI 5512 - Artificial Intelligence II (3) Required Course for Track
    • CSCI 5521 - Introduction to Machine Learning (3)
    • CSCI 5523 - Introduction to Data Mining (3)
    • CSCI 5525 - Machine Learning (3)
    • CSCI 5551 - Introduction to Intelligent Robotic Systems (3)
    • CSCI 5552 - Sensing and Estimation in Robotics (3)
    • CSCI 5561 - Computer Vision (3)

  • Big Data

    • CSCI 4707 - Practice of Database Systems (3) Required Course for Track OR
    • CSCI 5105 - Introduction to Distributed Systems (3) Required Course for Track
    • CSCI 5521 - Introduction to Machine Learning (3) Required Course for Track OR
    • CSCI 5523 - Introduction to Data Mining (3) Required Course for Track
    • CSCI 4511W - Introduction to Artificial Intelligence (4)
    • CSCI 5451 - Introduction to Parallel Computing (3)
    • CSCI 5481 - Computational Techniques for Genomics (3)
    • CSCI 5512 - Artificial Intelligence II (3)
    • CSCI 5609 - Visualization (3)
    • INET 4061 - Introduction to Data Warehousing (3)
    • INET 4710 - Big Data Architecture (3)
    • MATH 5651 - Basic Theory of Probability and Statistics (4) OR STAT 5101 - Theory of Statistics I (4)

  • Bioinformatics & Computational Biology

    • CSCI 5461 - Functional Genomics, Systems Biology, and Bioinformatics (3) Required Course for Track
    • CSCI 5481 - Computational Techniques for Genomics (3) Required Course for Track
    • CSCI 4707 - Practice of Database Systems (3)
    • CSCI 5421 - Advanced Algorithms and Data Structures (3)
    • CSCI 5521 - Introduction to Machine Learning (3)
    • CSCI 5523 - Introduction to Data Mining (3)

  • Computational Science

    • CSCI 5302 - Analysis of Numerical Algorithms (3) Required Course for Track
    • CSCI 5304 - Computational Aspects of Matrix Theory (3) Required Course for Track
    • CSCI 5451 - Introduction to Parallel Computing (3)
    • CSCI 5461 - Functional Genomics, Systems Biology, and Bioinformatics (3)
    • CSCI 5481 - Computational Techniques for Genomics (3)
    • CSCI 5523 - Introduction to Data Mining (3)
    • CSCI 5609 - Visualization (3)
    • AST 4101 - Computational Methods in the Physical Sciences (4)
    • MATH 5075 - Mathematics of Options, Futures, and Derivative Securities I (4)
    • MATH 5467 - Introduction to the Mathematics of Image and Data Analysis (4)
    • MATH 5587 - Elementary Partial Differential Equations I (4)
    • MATH 5588 - Elementary Partial Differential Equations II (4)
    • MATH 5711 - Linear Programming (4)

  • Databases

    • CSCI 4707 - Practice of Database Systems (3) Required Course for Track
    • CSCI 5708 - Architecture and Implementation of DBMS (3) Required Course for Track
    • CSCI 4131 - Internet Programming (3)
    • CSCI 4211 - Introduction to Computer Networks (3)
    • CSCI 4511W - Introduction to Artificial Intelligence (4)
    • CSCI 5103 - Operating Systems (3)
    • CSCI 5421 - Advanced Algorithms and Data Structures (3)
    • CSCI 5523 - Introduction to Data Mining (3)
    • INET 4061 - Introduction to Data Warehousing (3)

  • Geographical Information Systems

    • CSCI 4707 - Practice of Database Systems (3) Required Course for Track
    • CSCI 5708 - Architecture and Implementation of DBMS (3) Required Course for Track
    • CSCI 4611 - Programming Interactive Computer Graphics and Games (3) OR 5607 - Intro to Computer Graphics Programming (3)
    • CSCI 5715 - From GPS and Virtual Globes to Spatial Computing (3)
    • FNRM 5131 - GIS for Natural Resources (4)
    • FNRM 5262 - Remote Sensing of Natural Resources (3)
    • FNRM 5412 - Digital Remote Sensing (3)

  • Graphics & Visualization

    • CSCI 4611 - Programming Interactive Computer Graphics and Games (3) Required Course for Track OR
    • CSCI 5607 - Fundamentals of Computer Graphics I (3) Required Course for Track
    • CSCI 5608 - Computer Graphics II (3) Required Course for Track OR
    • CSCI 5609 - Visualization (3) Required Course for Track OR
    • CSCI 5611 - Animation and Planning in Games (3) Required Course for Track OR
    • CSCI 5619 - Virtual Reality and 3D Interaction (3) Required Course for Track
    • CSCI 5115 - User Interface Design, Implementation, and Evaluation (3)
    • CSCI 5125 - Collaborative and Social Computing (3)
    • CSCI 5302 - Analysis of Numerical Algorithms (3)
    • CSCI 5523 - Introduction to Data Mining (3)
    • CSCI 5561 - Computer Vision (3)

  • Human Computer Interaction

    • CSCI 5115 - User Interface Design (3) Required Course for Track
    • CSCI 5125 - Collaborative and Social Computing (3) Required Course for Track
    • CSCI 5123 - Recommender Systems (3)
    • CSCI 5127W - Embodied Computing: Design & Prototyping (3)
    • CSCI 5117 - Developing the Interactive Web (3)
    • CSCI 5609 - Visualization (3)
    • KIN 5001 - Foundations of Human Factors/Ergonomics (3)

  • Networks

    • CSCI 4211 - Introduction to Computer Networks (3) Required Course for Track
    • CSCI 5221 - Foundations of Advanced Networking (3) Required Course for Track
    • CSCI 5103 - Operating Systems (3)
    • CSCI 5105 - Introduction to Distributed Systems (3)
    • CSCI 5231 - Wireless and Sensor Networks (3)
    • CSCI 5271 - Introduction to Computer Security (3)
    • CSCI 5471 - Modern Cryptography (3)
    • MATH 5251 - Error-Correcting Codes (4)
    • INET 4011 - Network Administration (4)
    • INET 4021 - Network Programming (4)
    • INET 4041 - Emerging Network Technologies and Applications (3)
    • EE 5505 - Wireless Communication (3)

  • Security

    • CSCI 4211 - Introduction to Computer Networks (3) Required Course for Track
    • CSCI 5271 - Introduction to Computer Security (3) Required Course for Track
    • CSCI 5103 - Operating Systems (3)
    • CSCI 5471 - Modern Cryptography (3)
    • CSCI 5801 - Software Engineering I (3)
    • MATH 5248 - Cryptology and Number Theory (4)
    • INET 4011 - Network Administration (4)

  • Software & Data Systems Development

    • CSCI 4707 - Practice of Database Systems (3) Required Course for Track
    • CSCI 5801 - Software Engineering I (3) Required Course for Track
    • CSCI 4131- Internet Programming (3)
    • CSCI 5103- Operating Systems (3)
    • CSCI 5106- Programming Languages (3)
    • CSCI 5115- User Interface Design (3)
    • CSCI 5161- Introduction to Compilers (3)
    • CSCI 5271 - Introduction to Computer Security (3)
    • CSCI 5708 - Architecture and Implementation of Database Management Systems (3)
    • CSCI 5802- Software Engineering II (3)
    • INET 4061 - Introduction to Data Warehousing (3)

  • Software Engineering & Programming Languages

    • CSCI 5106 - Programming Languages (3) Required Course for Track
    • CSCI 5801 - Software Engineering I (3) Required Course for Track
    • CSCI 4011 - Formal Languages and Automata Theory (4)
    • CSCI 5161 - Introduction to Compilers (3)
    • CSCI 5802 - Software Engineering II (3)
    • MATH 5165 - Mathematical Logic I (4)

  • Systems

    • CSCI 4211 - Introduction to Computer Networks (3) Required Course for Track
    • CSCI 5103 - Operating Systems (3) Required Course for Track
    • CSCI 4131 - Internet Programming (3)
    • CSCI 5105 - Introduction to Distributed Systems (3)
    • CSCI 5143 - Real-Time and Embedded Systems (3)
    • CSCI 5161 - Introduction to Compilers (3)
    • CSCI 5221 - Foundations of Advanced Networking (3)
    • CSCI 5231 - Wireless and Sensor Networks (3)
    • CSCI 5271 - Introduction to Computer Security (3)
    • CSCI 5551 - Introduction to Intelligent Robotic Systems (3)

  • Theory

    • CSCI 4011 - Formal Languages and Automata Theory (4) Required Course for Track
    • CSCI 5421 - Advanced Algorithms and Data Structures (3) Required Course for Track
    • CSCI 5451 - Introduction to Parallel Computing (3)
    • CSCI 5471 - Modern Cryptography (3)
    • CSCI 5481 - Computational Techniques for Genomics (3)
    • CSCI 5525 - Machine Learning (3)
    • MATH 5165 - Mathematical Logic I (4)
    • MATH 5166 - Mathematical Logic II (4)
    • MATH 5707 - Graph Theory (4)
    • MATH 5711 - Linear Programming (4)

5.3.1. Approved Track Electives

Students must complete four specific courses from a given track listed on the previous page. This will total 12-13 credits for a student's 23 credit track (new curriculum) or 27 credits (old curriculum) of track coursework and the upper division math oriented requirement depending on their requirement year. Students will need to take approved track electives in order to complete the remaining credits of their track. Automatically approved track electives are listed below:

  • All 4000-5000 level CSCI courses are approved as track electives except for CSCI 4041 (core requirement), 4061 (core requirement), CSCI 5465, and 5996 (CPT course for international students)
  • AEM 4601
  • AEM 4602W
  • AST 4041
  • BIOL 5272
  • CHEM 4021
  • EE 4301
  • EE 4303
  • EE 4341
  • EE 4363
  • EE 5364
  • EE 5371
  • EE 5393
  • EE 5505
  • FNRM 5131
  • FNRM 5262
  • FNRM 5412
  • GDES 4343*
  • GDES 5341*
  • GDES 5342*
  • GDES 5343*
  • GDES 5372*
  • GDES 5386*
  • HSCI 4321 (cross-listed course for CSCI 4921)
  • IDSC 4131
  • IDSC 4153
  • IDSC 4204W
  • IDSC 4431
  • IDSC 4432
  • IDSC 4441
  • IE 4011
  • IE 4041W (Not automatically approved. Students must provide more details on their project and how it incorporates programming or computational methods for approval)
  • IE 5331
  • INET 4011
  • INET 4021
  • INET 4041
  • INET 4061
  • INET 4710
  • INET 4711
  • KIN 5001
  • LING 5801
  • MATH 4XXX
  • MATH 5XXX
  • ME 5228
  • ME 5286
  • MICE 5992
  • PDES 5704*
  • PHYS 4041
  • PHYS 4051
  • PHYS 4052 (Not automatically approved. Students must provide more details on their project and how it incorporates programming or computational methods for approval)
  • PSY 5018H
  • PSY 5038W
  • PSY 5051W
  • STAT 4XXX
  • STAT 5XXX

Courses not listed above must be submitted to the Computer Science Advisors for approval. Approval is only given to courses which have elements of computer science (computational theory or programming requirements), math, or statistics and relate to the student's overall track plan. In general, 3xxx classes are not allowed as part of the upper division track. No other EE, IDSC, or INET courses can be approved for the program as all courses from these departments have already been reviewed.

Again, the computer science track and upper division math oriented requirement must total 23 credits minimum. 11 of the 23 credits must be from CSCI courses. At most 3 credits of the advanced project course (CSCI 4970W), independent study (CSCI 5991), or directed research (CSCI 5994) can be used as part of the upper division track. Students are able to take more than 3 credits of special topics courses (CSCI 5980); however, if a student includes more than 3 credits of 5980 courses, or includes both 5980 credits and 4921, 4970W, 5991, or 5994 credits in their upper division track they should check with a Computer Science advisor to ensure they have enough "regular" CSci courses.

*A maximum of 2 GDES and PDES courses may be used for the track. 

5.4. Things to Remember

  1. Less popular CS classes are offered once every two years, so if you wish to take any of these as part of your upper division track you need to plan in advance.
  2. Double counting isn't allowed. You cannot use the same class for both the upper division math oriented requirement as well as part of the upper division track for credits. An example of this is CSCI 4011. It can't be used for 8 credits if you want to use it for the upper division math oriented requirement and a track option for the software engineering track.
  3. Start early! During their junior year, students should meet with a Computer Science advisor to plan a mutually agreeable track based on the student's academic interests. Students who are interested in tracks that have a large number of prerequisite courses should start planning sooner.
  4. If you have any questions as to whether a course can be used as part of an upper division track, please contact the Computer Science Advisor.

5.5. Upper Division Math-Oriented Requirement

Students working towards a BS degree in Computer Science are required to take an upper division math-oriented course. Options include: CSci 4011, 5302, 5304, 5403, 5421, 5471, 5481, 5525, and 4XXX or 5XXX math courses. Faculty recommended Math options include Math 4151, 4152, 4428, 4707, 5248, 5251, 5447.

Math 4242 (Applied Linear Algebra) is the only option students who are substituting Math 2243/2373/2574H for CSCI 2033 can use for the Upper Division Math Oriented Requirement. More information on this substitution situation can be found here.

Please note that not all Math courses with 4xxx/5xxx numbers will satisfy the advanced math oriented elective requirement. Math 2283/3283W, 4005, 4065, 4067W, 4113, 4116, 4118, 5067, 5068, 5075, and 5076 do not fulfill the math oriented elective requirement. Students who took multivariable calculus or sequence, sets and foundations prior to Fall 2002 (Fall 2003 for transfer students) may use that course as the math oriented elective. We do not accept Phil 5209 for this requirement or a track elective in the BS.

5.6. 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?

  • CS and CompE *grad* 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. There is one exception to this. Very skilled or interested undergraduates may take 5131, 5211, 5511, or 5707 with instructor permission.
  • Students who register for the 5xxx versions should ensure they have the necessary prerequisite knowledge. The expectation is that students in these classes will be better prepared than students in the 4xxx class, as the 5xxx classes will cover more material and require slightly more work.

5.7. College of Continuing & Professional Studies Networking Courses

The College of Continuing & Professional Studies offers a number of information networking courses under the INET descriptor. CS&E students may use certain of these courses as part of their upper-division emphasis. Specifically, INET 4011 (Network Administration), INET 4021 (Network Programming), INET 4041 (Emerging Network Technologies and Applications),  INET 4061 (Introduction to Data Warehousing), and INET 4710 (Data Science II: Big Data Analytics) may be used for a B.S. student's track. Other INET courses may be taken as free electives, but won't count towards B.S. track requirements. See Quick Class Schedules and Course Descriptions and Class Search for more information. 

5.8. CSCI 4970W (Advanced Project Laboratory), CSCI 5991 (Independent Study), CSCI 5994 (Directed Research)

Advanced Project Laboratory (CSCI 4970W), Independent Study (CSCI 5991), and Directed Research (CSCI 5994)

CSCI 4970W – Advanced Project Laboratory

What is this option?

Advanced project laboratory is for a project of some type, usually an implementation project. It's somewhat like a senior project, but gives more flexibility in terms of the topic and the exact type of project. It's not necessarily research (although it could be partially research). The project idea is typically created and developed by the student and presented to a faculty member well in advance of the semester they would be working on the project.

Why is CSci 4970W writing intensive? How much writing is expected in this course?

4970W is writing intensive since projects usually involve a writing component, for example, to document what the project consists of in detail. The amount of writing should be enough to satisfy the University's writing intensive requirements

CSCI 5991 – Independent Study

What is this option?

Independent study is a catch-all that could be used, for example, to look at an existing area in more depth than is covered in existing classes, look at an important topic that isn’t covered in set classes. Independent studies usually don't involve research or an implementation project.

CSCI 5994 – Directed Research

What is this option?

Directed research is for a study that is primarily research. Research in the sense of "cutting edge" research; not in the sense of "I need to do some online research for an essay I need to write for a class." Often this could be joining a research lab of one of our faculty members. Sometimes this could be focused on a student’s idea to research a given area, but it’s more common to connect the experience to a faculty member’s research focus.

Frequently Asked Questions

How do I attempt to set these unique experiences up (etc.)?

You should contact faculty members whom you have taken a class with, know well, or are doing research you have a strong interest in. Note faculty members are not required to supervise projects, and so they might say no. Or they might say yes, but have specific conditions such as you working on an existing project in their research lab. Once you have found a faculty member who is willing to supervise your work you can request a permission number to add the course at the following link: https://wwws.cs.umn.edu/forms/independent_project

When should I begin contacting faculty to set this up?

This will vary, but it is a good idea to contact faculty in advance of registration to see (i) if they are willing to supervise this, and (ii) if there is any preliminary work you need to do.

What would be the time commitment for these options?

As a general rule, the time commitment should be commensurate with the number of credits (e.g., a 3 credit project would be about 10 hours/week). That being said, due to their nature independent student, research, and advanced projects tend to be more variable than regularly scheduled classes

Can the courses be used as part of a track or as an upper division elective in CS?

Yes, but at most 3 credits of the advanced project course (CSCI 4970W), independent study (CSCI 5991), or directed research (CSCI 5994) can be used as part of the upper division track in the BS program or upper division CSCI electives in the BA program. More credits of CSCI 4970W, 5991, and 5994 can be approved by advisors on a case-by-case basis.

6. Suggested 4 Year Plan

6.1. CLA

FRESHMAN YEAR

  • Fall Semester (17 cr)
    • Math 1271 Calculus I (4 cr)
    • Writ 1301 or 1401 University Writing (4 cr)
    • Liberal Education Elective (3 cr)
    • Second Language course (5 cr)
    • CLA 1001 First-Year Experience I (1 cr)
  • Spring Semester (17 cr)
    • Math 1272 Calculus II (4 cr)
    • CSci 1133 Introduction to Computing and Programming Concepts (4 cr) (CSci 1103 or 1113 accepted as CS I)
    • Liberal Education Elective (3 cr)
    • Second Language course (5 cr)
    • CLA 1002 First-Year Experience II (1 cr)

SOPHOMORE YEAR

  • Fall Semester (16 cr)
    • CSci 1933 Introduction to Algorithms and Data Structures (4 cr) (CSci 1913 should be taken for CS II if CSci 1103 or 1113 is taken for CS I)
    • CSci 2011 Discrete Structures (4 cr)
    • Liberal Education Elective (3 cr)
    • Second Language course (5 cr)
  • Spring Semester (16 cr)
    • CSci 2021 Machine Arch and Org. (4 cr)
    • CSci 2041 Advanced Programming Principles (4 cr)
    • Liberal Education Elective (3 cr)
    • Second Language course (5 cr)

JUNIOR YEAR

  • Fall Semester (15 cr)
    • CSci 3081W Prog Design and Dev. (4 cr)
    • CSci 4041 Algorithms and Data Structures (4 cr)
    • Liberal Education Elective (4 cr)
    • Upper Division non-CSci course (3 cr)
  • Spring Semester (15 cr)
    • CSci 4061 Intro. to Operating Systems (4 c
    • CSci 2033 Elementary Computational Linear Algebra (4 cr)
    • Liberal Education Elective (4 cr)
    • Upper Division non-CSci course (3 cr)

SENIOR YEAR

  • Fall Semester (12 - 13 cr)
    • Stat 3021 Intro. to Probability and Stats. (3 cr)
    • Upper Division CSci (3-4 cr; 8 credits of 4xxx-5xxx CSci courses needed)
    • Upper Division non-CSci course (3 cr)
    • Upper Division non-CSci course (3 cr)
  • Spring Semester (12 cr)
    • Upper Div. CSci Course (3-4 cr; 8 credits of 4xxx-5xxx CSci courses needed)
    • Upper Div. CSci Course (3 cr; if needed; 8 credits of 4xxx-5xxx CSci courses needed)
    • Upper Division non-CSci course (3 cr)
    • Elective (if needed to reach the 120 credits minimum)

6.2. CSE

FRESHMAN YEAR

  • Fall Semester (15 - 16 cr)
    • Math 1271 or 1371 Calculus I (4 cr)
    • Phys 1301W Introductory Physics I (4 cr)
    • University Writing (WRIT 1301 or 1401) (4 cr) (Or Liberal Education Elective (3 cr))
    • Liberal Education Elective (3 cr)
    • CSE 1001 First Year Experience (1 cr)
  • Spring Semester (15 - 16 cr)
    • Math 1272 or 1372 Calculus II (4 cr)
    • Science Requirement (Select from: Phys 1302W, Chem 1061/1065, Chem 1062/1066, ESci 2201, Psy 3011, or GCD 3022) (4 cr)
    • CSci 1133 Introduction to Computing and Programming Concepts (4 cr) (CSci 1103 or 1113 accepted as CS I)
    • Liberal Education Elective (3 cr) (Or University Writing (WRIT 1301 or 1401) (4 cr))

SOPHOMORE YEAR

  • Fall Semester (15 - 16 cr)
    • Stats 3021 Introduction to Probability and Statistics(3 cr)
    • CSci 1933 Introduction to Algorithms and Data Structures (4 cr) (CSci 1913 should be taken for CS II if CSci 1103 or 1113 is taken for CS I)
    • CSci 2011 Discrete Structures (4 cr)
    • Liberal Education Elective (3-4 cr)
  • Spring Semester (14 - 15 cr)
    • CSci 2021 Machine Arch and Org. (4 cr)
    • CSci 2033 Elementary Computational Linear Algebra (4 cr)
    • CSci 2041 Advanced Programming Principles (4 cr)
    • Liberal Education Elective (3-4 cr)

JUNIOR YEAR

  • Fall Semester (14 - 16 cr)
    • CSci 3081W Prog Design and Dev. (4 cr)
    • CSci 4041 Algorithms and Data Structures (4 cr)
    • Upper Division Math Oriented Requirement (Select from CSci 4011, 5302, 5304, 5403, 5421, 5471, 5481, 5525, or an advisor approved Math 4XXX-5XXX course; CSci courses cannot be used for the UD Math Oriented Requirement as well as a UD Track Requirement) (3-4 cr)
    • Liberal Education Elective (3-4 cr)
  • Spring Semester (13 - 16 cr)
    • CSci 4061 Intro. to Operating Systems (4 cr)
    • Upper Division Track (3-4 cr)
    • Upper Division Track (3-4 cr)
    • Elective (3-4 cr)

SENIOR YEAR

  • Fall Semester (12 - 16 cr)
    • Upper Division Track (3-4 cr)
    • Upper Division Track (3-4 cr)
    • Upper Division Track (3-4 cr)
    • Elective (3-4 cr)
  • Spring Semester (12 - 16 cr)
    • Upper Division Track (3-4 cr)
    • Upper Division Track (3-4 cr)
    • Elective(3-4 cr)
    • Elective (3-4 cr) (if needed)

7. CS Requirements

The degree requirements contained 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 14 or after for CLA students. Previous 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 should contact the Undergraduate Advisor when deciding which requirements to use.

7.1. CLA B.A.

  1. Math and Statistics: Math 1271 (or 1371), Math 1272 (or 1372), Stat 3021
  2. CS Lower Level: CSci 1133, CSci 1933, CSci 2011, CSci 2021, CSci 2033, CSci 2041
  3. CS Upper Level: CSci 3081W, CSci 4041, CSci 4061
  4. 8 credits of CSci 4xxx/5xxx classes

7.2. CSE B.S.

  1. Math, Science, and Statistics: Math 1271 (or 1371), Math 1272 (or 1372), Physics 1301W, Second Science (Select from: Phys 1302W, Chem 1061/1065, Chem 1062/1066, ESci 2201, Psy 3011, or Gcd 3022), Stat 3021
  2. CS Lower Level: CSci 1133, CSci 1933, CSci 2011, CSci 2021, CSci 2033, CSci 2041
  3. CS Upper Level: CSci 3081W, CSci 4041, CSci 4061
  4. CS Upper Division Track: 23 credits of approved CSci 4xxx/5xxx classes including the upper division math oriented requirement (see "Upper Division Math-Oriented Requirement"(see "Upper Division Track")

7.3 Acceptable CSCI Substitutions

CSCI 2033 Substitution: Elementary Computation Linear Algebra (CSCI Majors only)

If a student has credit for MATH 2243/2373/2471/2574H/3592H and 3593H or wants to take MATH 2243/2373/2471/2574H/3592H and 3593H instead of CSCI 2033:
  • Computer Science Minor students can't use non-CSCI courses in their minor. If credit for MATH 2243/2373/2471/2574H/3592H and 3593H is already earned then minor students should consider taking a different course.  Minor students can decide to stay in CSCI 2033 and use it for their minor, but parts will likely be redundant.
  • Computer Science BS students can use MATH 2243/2373/2471/2574H in place of CSCI 2033 IF they take MATH 4242 (applied linear algebra) for their upper division math oriented requirement that is in the curriculum later. This is a two for two substitution. The department won't allow MATH 2243/2373/2471/2574H to sub for CSCI 2033 if students don't take MATH 4242. BS students may use MATH 3592H and 3593H combined in place of CSCI 2033.
  • Computer Science BA students can use MATH 2243/2373/2471/2574H in place of CSCI 2033 IF they take MATH 4242 (applied linear algebra), which will count towards their upper division credits outside of the major required by CLA. This is a two for two substitution. The department won't allow MATH 2243/2373/2471/2574H to sub for CSCI 2033 if students don't take MATH 4242. BA students may use MATH 3592H and 3593H combined in place of CSCI 2033.
  • Computer Science/Math double majors or Math minors should take MATH 2243/2373/2471/2574H over CSCI 2033 and then take MATH 4242 later to meet one of their algebra requirements for the math major or for their math minor electives.
  • MATH 2243/2373/2471/2574H doesn't substitute for CSCI 2033 by itself since MATH 2243/2373/2471/2574H is about two topics (linear algebra and differential equations) where our course is a full semester learning linear algebra.
  • MATH 3592H and 3593H combined substitute for CSCI 2033 without further requirements. 
  • Students wanting or needing to take these math substitutions should contact an advisor for approval (csciug@umn.edu). 

STAT 3021 Substitution: Introduction to Probability and Statistics (CSCI Majors Only)

We offer the following substitutes for our required STAT 3021 requirement in the Computer Science BS and BA programs:
  • A combination of STAT 3011 and 3022 (STAT 3011 alone isn't an acceptable substitute for STAT 3021)
  • STAT 4101, 4102, 5101, 5102, 8101, or 8102 (These courses can't double count towards a student's computer science track credits for the BS program)
  • MATH 4653 or MATH 5651 (These courses can't double count towards a student's computer science track credits or the upper division math oriented requirement for the BS program)
  • IE 3521 (Only for Computer Science and Industrial Systems and Engineering double majors)
  • EE 3025 (Only for Computer Science and Electrical Engineering or Computer Engineering double majors)

CSCI 2021 Substitution: Machine Architecture and Organization (CSCI Majors Only)

We allow EE 2361 to substitute for CSCI 2021 only for Electrical Engineering or Computer Engineering double majors. EE 2361 can't be substituted if a student isn't a double major or is only pursuing the Computer Science Minor.

EE 1301 Substitution: Introduction to Computing Systems (CSCI Minors Only)

We allow EE 1301 to substitute for the CS I requirement (CSCI 1103,1113, or 1133) in the Computer Science minor curriculum. We do not allow EE 1301 to substitute for the CS I requirement in the Computer Science majors (BA and BS). We will, however, allow a Computer Science major who has completed EE 1301 to substitute a CSCI 4000-5000 level course in place of the CS I requirement rather than having to take CSCI 1103, CSCI 1113, or CSCI 1133.

8. Course Descriptions

Information about CS courses is online. See, for example, the catalog descriptions of all CS courses, the more detailed descriptions of required CS courses, the  class schedules and catalogs for the current term and the near future, and the prerequisite chart for CS classes.

9. Honors Program

The University Honors Program is the sole entity at the University of Minnesota - Twin Cities that grants Latin honors to undergraduate students. For information on graduating with Honors, please refer to:

10. Advising and APAS Reports

10.1. Advising for Undergraduate Students

Advisors can answer questions about the CS&E degrees and minors, course requirements, the upper division track, general career opportunities, etc.  Advisor office hours are posted on the CS undergraduate web pageAll students may seek advice from course instructors and faculty members. Instructors and faculty can answer questions about specific classes they teach, careers in their area of expertise, etc.

10.2. Pre-Computer Science Students in CSE and CLA

Pre-computer science students are advised through their college advising offices, although they are welcome to visit the Computer Science Undergraduate Advisors as well.

CSE Advising: 105 Lind Hall, 624-2980

CLA Advising: 16 Johnston Hall, 625-2020

10.3. Admitted Computer Science Majors in CSE and CLA

Admitted computer science majors should visit a CSci Advisor for computer science questions. Additionally, all students must see a Computer Science Advisor upon admission.

CSci advisors can answer questions about computer science courses, careers, degree requirements, etc. Sometimes students will need to see their college office (for example, to submit petitions, ask questions about college requirements, etc.).

CSci Upper Division Advising: Keller Hall 4-192, 612-625-4002, .

CSE Student Advising: 105 Lind Hall, 624-2890.

CLA Advising: 16 Johnston Hall, 625-2020.

10.4. Tracking Your Progress with APAS (Academic Progress Audit System)

Your APAS report is your guide to how you are progressing toward your goal of a bachelor's degree. APAS Reports are available online at the One Stop website. If you have had any coursework transferred from other institutions, but which is not yet showing up on your APAS, you should bring records showing this work.

10.5 Course Restrictions for CSCI 3081W and CSCI 4061

Computer Science has put restrictions on two required major courses so only specific majors can register for them. This helps give priority to students needing the course who are officially in a program.

CSCI 3081W will only be allowing the following students access: CSCI BS declared majors, CSCI BA declared majors, CSCI MS, CSCI Ph.D.

CSCI 4061 will only be allowing the following students access: CSCI BS declared majors, CSCI BA declared majors, CSCI MS, CSCI Ph.D., Data Science MS, CompE declared majors, EE declared majors, EE MS, EE PhD, ITI BAS declared majors.

Pre-majors in CLA and CSE won’t be able to register for these courses until they are admitted to majors. Permission numbers won’t be given out to pre-major students. Advisors ( ) will consider requests from other declared majors or prospective graduate students if there’s proof that they need these courses for their program of study. Students in this situation should email with their name, student id number, and reason(s) they need the course the week before the start of the term. Permission numbers will be given out to students with appropriate reasons if space is still available in the course at that time. Honors students should also contact the advisors to discuss enrollment options.

11. Closed Classes/First Day Policies

11.1. Closed Classes Policy

 
 
 
 
 
CSCI Courses (for closed sections)
Sometimes the enrollment capacity of popular computer science classes is reached before all interested students can be accommodated. Here are some tips for dealing with such a situation:
  1. Register as soon as your time in the queue arrives.
  2. If the class you want to get into has filled, sign up on the on-line waiting list, attend the first day of class, and sign the attendance sheet. You will be notified if there is enough room in the class for you to take the course.
  3. Follow the prerequisite structure.
  4. If for some reason you are delaying applying for CS or CompEng upper division status, apply as soon as possible. In some elective CS courses seats may be reserved for declared CS or CompEng majors and graduate students.
  5. Always have a backup plan. If you are unable to get into a certain popular class, know which other classes would still fulfill your degree requirements and be useful to take.
Undergraduates have great flexibility in many of their track/elective requirements. Students should register for an alternative or substitution course in place of the full course even if the full course is listed as required for a student's chosen track. Advisors can approve substitutions in tracks when required courses are at capacity or conflict with other required courses.
  
 
STAT 3021 (for open AND closed sections)
 
In order to help students who are unable to register because they have not taken the prerequisites through the university, the Statistics Department needs to confirm that they have met the prerequisites through other methods. In order to do this they need to know the following information in an email sent to :
 
•The student's name
•The student's ID number (seven digits)
•The student's first and second choices for lab (preferred by number over registration code)
•Verify that the prerequisite course is on the student’s APAS. If there is not evidence of the prerequisite course being met in APAS, they will need some sort of additional verification that the credit has been met. Students can attach an AP report or unofficial transcript to the email showing the prerequisite course has been completed.
 
 
MATH Courses (for closed sections)
 
SEND AN EMAIL TO with this information:
•4-digit course number (Ex. Math 1001) and term (Fall 2015) in the "subject" line of email;
•Student Name and U of M ID number (if you have one) in the main text of the email;
•For each section of each course include:
•Course Number (Ex.: Math 1001)
•Section Number (Ex.: 012)
•Class number (5-digit Ex.: 12345)
•Reason(s) why you can't register to open section(s) in course(s)
 
Without this information, the reply to your email will be a request to provide the missing information. Permission requests for math classes will not be considered until the registration queue begins.
 
The University of Minnesota has information about getting into non-CSci courses.

11.2. First Day of Class

You must attend the first class meeting of every course in which you are registered unless you obtain approval for your intended absence before the first meeting. Without this prior approval, you may lose your place in class to another student.

If you wish to remain in a class from which you have been absent the first day without prior approval, contact your instructor as soon as possible. Instructors have the right to deny you admission if the class is full.

You must officially cancel any class if you have been denied admission.

12. Academic Integrity

All members of the University community are expected to behave in an honorable fashion. In terms of coursework, this means that students are solely responsible for carrying out work assigned to them unless collaboration has been specifically sanctioned by the course instructor. Information related to academic integrity is available at the Office for Community Standards. You may also refer to the Student Conduct Code. The Undergraduate Catalog contains some relevant information as well.

13. Disability Resource Center

The Computer Science and Engineering Department follows the disability policies of the University of Minnesota. The University strives to provide optimal educational opportunities for all students. The University recognizes that disabled students may have unique needs that must be met for them to have full access to campus programs and facilities.

It is the responsibility of the student to seek assistance and to make their needs known. For more information, students should contact the Disability Resource Center (Suite 180 of the McNamara Alumni Center, 626-1333).

14. Academic Help and Survival Tips

There are a wealth of places around the university to get academic help. Here are a few:

  • Office hours: students are encouraged to go to TA and professor office hours as soon as they have questions in a class (do not wait until the last minute!).
  • Study groups, clubs, etc.: Many students find that forming a study group or joining a club such as the university student chapter of the ACM helps them in studying for their classes.
  • SMART Learning Commons: The University of Minnesota offers tutoring for many introductory courses, including technical courses like math, physics, chemistry, and sometimes computer science through the SMART Learning Commons. SMART has many locations, but the main office and most tutoring takes place on the 2nd floor of Walter Library. A test bank of old exams is also available to students to use for preparation purposes.
  • The University's Student Academic Success Services offers workshops and classes on topics like improving your study skills, time management, and test taking.
  • Center for Writing: Student Writing Support provides free writing instruction for all University of Minnesota students—graduate and undergraduate—at all stages of the writing process. In face-to-face and online collaborative consultations, they help students develop productive writing habits and revision strategies.
  • Advising: students are welcome and encouraged to talk with a college or CS advisor if they'd like to discuss their academic progress, how to do better in classes, etc.

Here are some other study tips:

Most courses in Computer Science require a significant amount of time outside the classroom. Some of this time may be in a computer lab. Be forewarned that the labs get very busy during the last weeks of the semester when all your assignments are due. Usually, due to the workload, this is also the time the computer systems experience increased failures. Plan ahead and start your assignments early.

Many labs also allow modem and network access. The obvious advantage is that you don't have to sit in the lab all the time. The less obvious disadvantage is that the lab assistants and other students aren't available to help if you need help.

Get to know people in your classes. One proven method to being a successful student or professional is obtaining knowledge that travels only by "oral-tradition". It is also good to participate in study groups for your classes.

Information about computers and software packages is available online through the University Office of Information Technology (OIT) website.

15. Laboratory Policy

CSE Lab computer accounts information is available at the CSE Labs account information page.

Unless a different policy is explicitly announced in class, all computer programming assignments must be designed and implemented by each student individually. Students should take reasonable precautions against having their work improperly used by others. These precautions include protecting computer files with passwords and not leaving work or passwords in public places.

Use of a computer system account carries responsibilities established by the Minnesota Computer Crime Act (sections 609.87, 609.88 and 609.89), the University of Minnesota Regents (Administrative Statement on Responsible Computer Use, April 1984), the Student Conduct Code. Your responsibilities include, but are not limited to, the following:

  • You must use your account only for the authorized purposes relating to the class(es) in which you are enrolled.
  • You are not authorized to use your account to play games, to do work on behalf of clubs or businesses, to do assignments for other people, etc. All reasonable uses directly related to your class are encouraged. If in doubt, consult the instructor, the lab manager or a member of the systems staff.
  • You must not permit others to use your account. You are responsible for maintaining the secrecy of your password and for changing it regularly.
  • Some minimal standard of personal behavior is expected of all computer account users. Sending obscene or offensive messages through computer mail is in poor taste and is forbidden.
  • You must not damage or attempt to damage systems or data.
  • You must not access or attempt to access systems or data that you are not authorized to access. This includes plagiarizing your colleagues' work.
  • Learn about the limitations and strengths of computer system security. Know how to use system security features to verify that others cannot plagiarize your work.
  • Help identify cheaters and malicious users. Talk to your TA, professor or the lab manager. Reports will be held confidential and will be independently verified.

Violations are handled by the CS&E department. Violators will lose their computer accounts and may receive an F in their class. Further, violators will be subject to (1) disciplinary action under Regents regulations, and (2) prosecution under the Minnesota Computer Crime Statutes. As with any criminal matter, such prosecution is handled by officials of the justice system and, once initiated, is not within the direct control of the University.

16. Student Opportunities

The University and the department offer a wide range of opportunities for Computer Science students. Students are encouraged to try new activities and get involved. These activities help students explore their interests, look great on resumes and graduate school applications, and provide important ways to learn about computer science and related fields.

16.1. Scholarships

There are a number of scholarship sources in both CLA and CSE. For more information on these see the college offices. There also scholarship opportunities specifically for CS&E Undergraduates. All details can be found on our Departmental Scholarship Webpage. We encourage eligible students to apply for these scholarships each spring semester. 

16.2. UROP/Co-op Programs/CPT

16.2.1. UROP Program

UROP is a University program allowing students to work in conjunction with faculty on faculty research. Financial awards to undergraduates for research, scholarly or creative projects include stipends and/or expense allowances. For more information and application material visit UROP website. Particular attention should be paid to the deadlines for applications. CS students have had good success in receiving UROP support. There are many excellent opportunities available within various research groups in the Computer Science and Engineering Department.

16.2.2. Co-op Program

CS majors may participate in an industrial co-op program. Students can work with companies for up to two non-consecutive semesters, with students alternating full-time studies with full-time work at the cooperating company. A record of these experiences can be used by the student for future job hunting and career development. Students can also sign up for the two-credit Co-op class, CSci 3970, in which they will submit a short report of their work experience. These credits are free elective credits and do not apply towards satisfying CSci major requirements. The CSE Career Center or the CLA Career Center can assist students in finding companies. More information and application forms are can be found here.

16.2.3. Undergraduate CPT

This page contains information for undergraduate students pursuing Curricular Practical Training (CPT). Graduate students should review this CPT page instead.

International students admitted to our Undergraduate Computer Science programs in CLA and CSE who are interested in working off campus must complete specific paperwork with a CS&E Advisor and the International Student and Scholar Services (ISSS) office in order to legally work.

Students should take the following steps to get set up for CPT:

  1. Students should complete the CPT online workshop.
  2. Students should complete all student portions of the required CPT paperwork.
  3. Students should meet a CS&E Advisor via drop-in advising or an appointment. Students will need to bring the CPT paperwork and their offer letter for employment with them to the advisor meeting.
    1. The CS&E Advisor will complete both the advisor and instructor portion of the CPT paperwork.
    2. The CSE&E Advisor will email the student a permission number to add CSCI 5996 to a future semester as well instructions on writing a paper to receive credit for CSCI  5996.
  4. Students should register for CSCI 5996 online using the permission number emailed to them (must be registered prior to submitting paperwork to ISSS).
  5. Students should bring the completed CPT paperwork to the ISSS office.

CSCI 5996 is a one credit course taken pass/fail which will only count for pure elective credits towards the 120 credit minimum needed to graduate with one of our undergraduate programs. CSCI 5996 will not count for any major requirements in the BS and BA programs.

16.3. Learning Abroad

Since computer science is an international field, computer science students are encouraged to participate in the university's learning abroad program. If you are interested in learning more about learning abroad opportunities, you should visit the Learning Abroad webpage, attend Learning Abroad first step meeting, and meet with one of the computer science advisors to discuss how to make learning abroad fit in with your computer science degree progress. CSE student should also consider meeting with the CSE Study Abroad Coordinator in the Collegiate Life office (115 Lind Hall) to discuss options. There is already an extensive international technical course equivalency guide which is updated regularly to reference as well.

16.4. Professional Societies

16.4.1. ACM - (Association for Computing Machinery)

The ACM chapter at the University provides a number of services and engagement opportunities for anyone interested in Computer Science. They can help you form study groups, they host speakers from industry or from our faculty group, they promote job postings and social events, and they run the annual Minnehack competition. For more information, visit the ACM office in Keller Hall 2-204.

16.4.2. IEEE - (Institute of Electrical and Electronics Engineers)

The Institute of Electrical and Electronics Engineers (IEEE) is the world's largest technical professional society. IEEE focuses on advancing the theory and practice of electrical, electronics, computer engineering, and computer science. IEEE sponsors many technical conferences and publishes nearly 1/4 of all technical papers in electrical engineering, electronics, and computer engineering. For further information about IEEE or about joining the University of Minnesota student chapter, stop by Keller 2-110 or visit the student group webpage.

16.5. Career Services

16.5.1. CSE Students

CSE Career Services, located in 105 Lind Hall (612-624-4090), assists students seeking internships, co-ops, and permanent employment. This office provides workshops on the topics of resume writing, job search strategy and related issues. It receives employment opportunity announcements from companies, refers student resumes to employers, and hosts on-campus interviews, and run large career fairs each semester. Students are encouraged to place their resume on GoldPASS to take advantage of these opportunities.

16.5.2. CLA Students

CLA Career Services help undergraduate students match academic interests with career options, identify career goals and learn job hunting skills. The office provides a career library, on-campus interviews, job vacancy lists, resume referral services, etc. For more information, see CLA Career Services website. Students are encouraged to place their resume on GoldPASS to take advantage of these opportunities.

16.5.3. Electronic Job Information

In addition to the services available on campus, the World Wide Web has several useful employment-related sites. Try the following sites for more information regarding resume writing, resume posting and job openings in both academia and industry.

16.6. Graduate School Information

Undergraduate students are encouraged to talk to the CS&E Graduate Advisors, and/or faculty about graduate school. Information that highlights the required steps towards graduate school application completion is available at the computer science website.

To find more information about a particular school, try Peterson's Graduate Programs in Engineering and Applied Sciences available in bookstores and libraries. For an electronic version, access Peterson's Guide on the World Wide Web. Information about specific universities can be found through the following path: Graduate Schools; Search for Graduate Schools by Subject; Computer Science (under Engineering). There is also a wealth of additional information on graduate schools at this general site.

The following is a list of World Wide Web sites containing information about the graduate programs at various schools. Information about other institutions can be found on WWW by performing a net search on the name of the school.

University of California, Berkeley

University of Illinois, Urbana-Champaign

University of Michigan

University of Minnesota

University of Wisconsin, Madison

The following provide good guides to graduate school.

Peterson's Guide

Application materials for the University of Minnesota Graduate School, in Computer Science, may be downloaded from the Department's page for Prospective Grad Students.

Some information about financial aid may be found at the following site: FinAid Guide

17. Graduation and Beyond

17.1. Graduation Procedures

The OneStop graduation procedure page lists the steps for applying for graduation. Pay particular attention to the application deadline. If students have any questions about whether they will have fulfilled all their requirements, they should see a CS&E advisor or visit their college office well in advance of graduation. 

17.2. Commencement Ceremony

Both CLA and CSE offer commencement ceremonies each year. Students need not graduate in the same term as the ceremony they wish to attend; they may attend if they graduate in a term close to the ceremony. Contact CSE or CLA for more information and the exact rules or go to the links below:

CSE Commencement

CLA Commencement

18. CSci Undergraduate Frequently Asked Questions

There are a number of different types of questions in this FAQ: questions related to degree requirements, jobs, courses and credit, computing, and special opportunities.

18.1. Degree Requirements

What is the difference between a CSE and CLA CS&E degree?

  • Two science courses (Phys 1301W and your choice of Phys 1302W, Chem 1061/1065, Chem 1062/1066, ESci 2201, Psy 3011, or Gcd 3022) is required by CSE, not by CLA.
  • CSE Upper Division Track including an addition math requirement (see UD Math Oriented Requirement below) is 23 credits, of which some can be upper level courses in a "related field." CLA Upper Division Track is 8 semester credits of 4xxx/5xxx CSci courses.
  • CSE requires an additional math course (UD Math Oriented Requirement).
  • CLA requires a second language.
  • CLA requires 18 credits of upper division non-CSCI courses.

Is my Upper Division Track OK?

See the Upper Division Track portion of this guide for additional information. Consult with a CS&E Advisor in 4-196 before starting to take track courses. The advisors can help you to make appropriate choices for a track conforming to your area of interest.

Is my upper division math oriented requirement OK?

See the upper division math oriented requirement portion of this guide for more information. Some CSci courses are pre-approved to count in this area (can’t double count within your track) and most Math 4xxx-5xxx courses will count unless the topic of the course is specific to a certain field like actuarial.

Can I graduate with {insert odd situation here}?

Connect with advisors. You can fill out a petition in order to graduate in some cases.

How can I graduate with honors?

See the honors section of this guide.

What do I need to do to graduate?

See the Graduation Procedures section of this guide.

What course fulfills the CLA senior project semester requirement?

CSci 3081W

What courses fulfill the writing-intensive requirements?

CSci courses that are "writing intensive" are CSci 3921W, CSci 3081W and CSci 4511W. Note that CSCI 3921W can't be used towards track credits or the CSCI 4000-5000 level electives needed for both the CSE BS and CLA BA respectively.

18.2. Jobs

Help, I need a part-time/temporary job - now.

Go to GoldPASS or the UMN student employment site (for on campus jobs) to find opportunities.

Most of our students are working part time, many at CS jobs. Be aware that most of the students who end up on probation work too many hours for the class load taken (including extra-curricular activities and a social life).

Interested in being a Teaching Assistant? The CS&E Department uses undergraduate lab attendants and graders for many introductory courses.

Help, I need a real job - soon.

Go to GoldPASS to find opportunities.

Use your college's career center. They can help you get prepared for interviews. Remember to learn about the company you interview with. It will impress the interviewers.

If you have a favorite professor, who you are pretty sure thinks well of you, ask him/her for leads.

Check the bulletin board outside the CS&E main office.

Help, I'll need a job - someday.

Go to GoldPASS to find opportunities and what employers are looking for based on job descriptions.

Participate in class. Get to know professors. Then you can ask them to write letters of recommendation and they can give a truthful evaluation of your work.

Use the resume service at your college's career center to publicize your resume to companies.

Attend on campus job fairs and various "Company Recruiting Days" held on campus.

Do a co-op or internship during your junior year.

Check out career web sites listed in the Career Services section of this guide.

What are CS jobs like?

Go to GoldPASS to set up an informational interview with a current CS professional.

Go to your college's career center to get information on what entry-level jobs are available.

Read industry publications which have articles about the workplace and classified ads for jobs. Some of these publications are available in Wilson or Walter Libraries.

Check the bulletin board outside the CS&E main office.

18.3. Courses and Credit

I transferred here having taken some CS courses elsewhere. What should I take here?

Where you fit in the curriculum gets resolved during the transfer orientation day that both CSE and CLA have. If things were not resolved, please visit a CS&E Advisor.

CSE maintains course equivalencies for numerous domestic and international colleges and can usually resolve most course evaluations. Where there are questions, you will be asked to file a petition and provide catalogs, syllabi, etc., so that the department can perform the evaluation.

How do I take an independent study?

Talk beforehand to the professor you want to study with before the semester begins. This is voluntary work on the faculty's part, and you can't demand that the professor participate. You and the professor will agree on the course number and number of credits. Complete the online Independent Study Form. Once you have submitted the form, your professor will receive an email requesting his/her approval. Once approved, you will receive a permission number for course registration via email. (Independent study sections are always offered, but always closed, so individual overrides are needed.)

Normally, an independent study involves advanced, continued work (with the same professor) from the material covered in a class. Professors will say "no" if you ask to study material already available in a course we offer (which may be taught at an inconvenient time).

You and the professor decide what you will do and how you will be graded.

What if I plan to take a course elsewhere and want to know if it will count?

First, check the online transfer guides for domestic and international colleges maintained by CSE. If the course is not listed there ask a CS&E Advisor. Bring along as much information on the course as possible, like a course description or syllabus.

Can I drop/withdraw a class after the withdrawal deadline?

If you have your one time only late withdrawal then you can withdraw from one class after the deadline as long as you visit your college advising office prior to the last day of the class. If you have used your one time only late withdrawal then it is unlikely you would be able to withdraw after the deadline. Late withdrawals may be allowed under special circumstances. See your college advising office if you have extenuating circumstances.

CSci xxxx is closed. What can I do to get in?

Waitlist for the course if that is an option for the course. If there is no waitlist or if the waitlist if full then contact the listed instructor and attend the first day of class.

Can I receive credit for my internship or Co-op?

You receive free-elective credit for your Co-op work (2 cr per Co-op term, maximum of 2 terms). This credit does not satisfy any CSci or liberal education requirements. There is no credit for internship work that would count towards major requirements. International students are required to register for CSCI 5996 (Curricular Practical Training) in order to work at an internship. CSCI 5996 is taken pass/fail for one credit, which isn't used towards the student's major requirements. CSCI 5996 would only count as a free-elective towards the 120 credit minimum to earn an undergraduate degree.

Can I take a class if I haven't satisfied all the prerequisites?

In general, you should always follow the prerequisites. However, in certain circumstances (e.g., you took a similar prerequisite course at another university, or you have extensive work experience equivalent to a prerequisite course) you may be able to take a course without taking the prerequisites. If you do this, you must ensure you are sufficiently prepared: look through a copy of the textbook, examine the course description and the course syllabus, and talk with the professor to ensure you have a sufficient background.

18.4. Computing

I want to buy a computer for home. What kind should I get?

Visit the bookstore, and/or ask other students about what types of computers they use. The bookstore offers discounts for students and faculty. The OIT student site also has information about purchasing technology products. A PC or a Mac works for the purposes of being a student in the CS program. One is not better than the other as long as you have basic capabilities for word processing, spreadsheets, and presentation applications.

Make sure whatever computer you buy can connect easily to the University network. That way you can do much of your work on your own machine; however, some CS classes require software that is available on CSE lab machines, but which is not readily available for home machines.

I need to learn about Unix (or Word or FoxPro, etc.). Are there any courses available at the U?

The Computer Science and Engineering Department does not offer courses in computer applications.

Non-credit courses on computer applications are offered through the University Office of Information Technology's Technology Training.

18.5. Special Opportunities

Where can I get information about graduate school?

See the Graduate School Information section for more information, or talk to a Graduate Advisor in the CS&E department. Talk to a faculty member about various graduate programs and emphases. Most good schools (including ours) have lots of information on faculty, courses, projects, etc. on-line. Look through Peterson's Guide.

What can I do to strengthen my graduate school application?

  • Plan a course of action at least a year before graduation.
  • Participate in a UROP or undergraduate RA or TA position.
  • Take the GRE seriously and prepare for this test for more than a weekend. Try one of the many study guides available at bookstores. You may want to take the test during your junior year so that you would have the option to retake the test before graduate school application deadlines. The GRE Computer Science Test was discontinued in April 2013.
  • Ask faculty members whom you know well to write letters of recommendation. Give them plenty of advance notice and include a copy of your resume with the recommendation form to remind them of all the great things you accomplished.

I've heard that there is a Computer Engineering program at the U. Where can I get more information?

Information about the Computer Engineering degree is online on the ECE Advising Site.

I'd like to get involved in research. How do I learn about undergraduate research possibilities?

There are many different CS-related undergraduate research opportunities, so there is no single way to learn about them. Here are some suggestions to try:

Sign up for the undergraduate mailing list.

Ask other students you know whether they're involved in any research opportunities and if so, how they learned about them. Word of mouth is often how people learn about undergraduate research opportunities.

If you have a class you really like or are doing really well in, ask the professor if they have any research opportunities or know of any.

Check faculty web pages and research area web pages. If someone is doing work you are really interested in, send them an email and see if they have any research opportunities available.

If you have a high GPA (> 3.5) consider joining the Honors Program. One possibility in that program is doing an honors thesis, which involves research.

19. Contact Information

Position/ProgramContactPhone NumberRoom Number
CS&E Department Office 625-4002Keller Hall 4-192
DUGSNick Hopper626-1284Keller Hall 4-211
CS AdvisorsKevin Allen & Kelly Thomas625-4002 (front desk)Keller Hall 4-192
PetitionsCS Advisor625-4002Keller Hall 4-192
Honors Faculty RepresentativeNick Hopper626-1284Keller Hall 4-211
ACM Student Group 626-1535Keller Hall 2-204

CSE Student Affairs

Position/ProgramContactPhone NumberRoom Number
CSE Advising 624-2890105 Lind Hall
Career Center for Science and Engineering 624-4090105 Lind Hall
CSE Collegiate Life 624-5091115 Lind Hall

CLA Student Affairs

Position/ProgramContactPhone NumberRoom Number
CLA Career Services 624-7577411 STSS
CLA Advising 625-202016 Johnston Hall

Other Important Numbers

Position/ProgramContactPhone NumberRoom Number
Admissions (Transfer) 625-6403105 Lind Hall
Admissions (Freshman) 625-0246200 Jones Hall
Student Services (Office of the Registrar) 624-1111333 STSS
Disability Resource Center 626-1333180 McNamara Ctr
Learning Abroad Center 626-9000230 Heller Hall
University Counseling and Consulting Services 624-3323340 Appleby Hall
CS&E Graduate Program625-4002Keller Hall 4-192
CS&E Systems Staff 625-0876Keller Hall 1-201
College of Continuing Education 624-4000200 Ruttan Hall
University Honors Program 624-5522Northrop Suite 390

20. Appendix

20.1. Old CLA B.A. (Curriculum Spring 2011 or Older)

  1. Math and Statistics: Math 1271 (or 1371), Math 1272 (or 1372), Math 2243 (or 2373), Stat 3021
  2. CS Lower Level: CSci 1901, CSci 1902, CSci 2011, CSci 2021
  3. CS Upper Level: CSci 3081W, CSci 4011, CSci 4041, CSci 4061
  4. 9 credits of approved CSci 4xxx/5xxx classes

20.2. Old CLA B.A. (Fall 2011-Spring 14 Curriculum)

  1. Math and Statistics: Math 1271 (or 1371), Math 1272 (or 1372), Stat 3021
  2. CS Lower Level: CS Lower Level: CSci 1901/1133, CSci 1902/1933, CSci 2011, CSci 2021, CSci 2033 (or 2031)
  3. CS Upper Level: CSci 3081W, CSci 4041, CSci 4061
  4. 12 credits of CSci 4xxx/5xxx classes

20.3. Current CLA B.A. (Fall 14-Present)

  1. Math and Statistics: Math 1271 (or 1371), Math 1272 (or 1372), Stat 3021
  2. CS Lower Level: CSci 1133, CSci 1933, CSci 2011, CSci 2021, CSci 2033, CSci 2041
  3. CS Upper Level: CSci 3081W, CSci 4041, CSci 4061
  4. 8 credits of CSci 4xxx/5xxx classes

20.4. Old CSE B.S. (Curriculum Spring 2010 or Older)

  1. Math, Science, and Statistics: Math 1271 (or 1371), Math 1272 (or 1372), Math 2243 (or 2373), math oriented requirement (see the  "Upper Division Math-oriented Requirement"  section above), Physics 1301, Phys 1302, Stat 3021
  2. CS Lower Level: CSci 1901, CSci 1902, CSci 2011, CSci 2021, CSci 2031
  3. CS Upper Level: CSci 3081W, CSci 4011, CSci 4041, CSci 4061
  4. CS Upper Division Emphasis: 17 credits of approved classes, of which at least 9 must be approved CSci 4xxx/5xxx classes

20.5. Old CSE B.S. (Fall 2010-Spring 13 Curriculum)

  1. Math, Science, and Statistics: Math 1271 (or 1371), Math 1272 (or 1372), math elective (see the  "Upper Division Math-oriented Requirement" section above), Physics 1301, Approved 2nd Science, Stat 3021
  2. CS Lower Level: CSci 1901/1133, CSci 1902/1933, CSci 2011, CSci 2021, CSci 2033 (or 2031)
  3. CS Upper Level: CSci 3081W, CSci 4041, CSci 4061
  4. CS Upper Division Track: 24 credits of approved classes. Each track has two required courses. Two more courses must be selected from a list for the selected track. Advisor approved courses must be completed to achieve a minimum total of 24 Upper Division elective credits.

20.6. Current CSE B.S. (Fall 13-Present)

  1. Math, Science, and Statistics: Math 1271 (or 1371), Math 1272 (or 1372), Physics 1301W, Second Science (Select from: Phys 1302W, Chem 1061/1065, Chem 1062/1066, ESci 2201, Psy 3011, or Gcd 3022), Stat 3021
  2. CS Lower Level: CSci 1133, CSci 1933, CSci 2011, CSci 2021, CSci 2033, CSci 2041
  3. CS Upper Level: CSci 3081W, CSci 4041, CSci 4061
  4. CS Upper Division Track: 23 credits minimum of approved CSci 4xxx/5xxx classes (see the  "Upper Division Track" above for details) including an upper division math oriented class (see the  "Upper Division Math-oriented Requirement"  section above)