Computer science is the study of software (programming), hardware, and theoretical aspects of high-speed computing devices, as well as the application of these devices to a broad spectrum of scientific, technological, and business problems.
Both the College of Liberal Arts (CLA) and the College of Science and Engineering (CSE) offer a bachelor's degree in computer science. These degrees not only provide a basic understanding of the field, but also include an upper division emphasis in a student-chosen subarea of computer science. This flexibility allows for concentrations within computer science, or in interdisciplinary areas involving computer applications. This should prepare students for a variety of industrial, governmental, and business positions involving computer use, or for graduate work in the field.
The four-year CLA program leads to the degree of Bachelor of Arts, B.A., with a major sequence in Computer Science. The four-year CSE program leads to the degree of Bachelor of Science, B.S., in Computer Science. A minor sequence in Computer Science, available to all students, is offered through CLA.
The remainder of this guide is organized into sections. Where the information in a section differs for CLA and CSE students, subsections contain specific information for each type of major. The material in this document pertains only to the departmental requirements. Each college may have other requirements not covered here.
Additional information about the computer science Department and the computer science undergraduate program may also be obtained via the following links:
These websites contain some application forms, announcements, advising information, and other useful links.
Advising information for lower division students is available at the following locations:
Students interested in studying computer science have the option of obtaining the Bachelor of Science (B.S.) degree through the College of Science & Engineering or the Bachelor of Arts (B.A.) degree through the College of Liberal Arts.
Requirements for all computer science degrees
For both degrees, students must complete the following requirements:
- Liberal education requirement: These university-wide requirements ensure a student has a broad education covering a number of different areas.
- Required computer science classes: These classes provide a solid foundation in the theory and practice of computer science. Since the field changes so quickly, it is important for students to have a foundation in computer science basics so they can continue to learn as the field evolves.
- Upper division major electives: The upper division major electives consist of computer science electives. Students interested in interdisciplinary work may be able to take some of these classes from related areas as well. The purpose is to allow students to get greater depth in a computer science area of their choice.
- Free electives: These allow students to study other topics which interest them, to get a minor, to do interdisciplinary work, or to take additional computer science courses to attain greater depth or breadth.
For both the B.S. and B.A., all required courses must be taken A-F and passed with a grade of C- or better.
Differences in requirements between B.A. and B.S. degrees
Though the B.S. and B.A. degree programs share many requirements, they differ in the following ways:
- The B.S. requires two 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 23 credits of upper division elective courses (sometimes referred to as “tracks”). These 23 credits include the upper division math-oriented required course, and ask that 11 out of the 23 total credits come from upper division CSCI courses. The other 12 can also be CSCI courses, but could also come from non-CSCI approved track electives. Conversely, the B.A. requires 8 credits of upper division (4XXX-5XXX) computer science courses.
- The B.A. requires an additional 18 upper division credits outside of CSCI to meet the CLA requirements. STAT 3021 counts for 3 of these 18 credits.
- The B.A. requires four semesters of second language coursework or demonstrated proficiency. (More information on this requirement can be obtained from the CLA advising office.)
The degree requirements listed here apply to all students who began their education at the University of Minnesota during the Fall of 2013 or after for CSE students and Fall 2014 or after for CLA students. Previous degree requirements can be found in the appendix. Degree requirements between the current program and previous programs cannot be mixed. It is recommended that students who enrolled at the University of Minnesota prior to Fall 2013 contact an undergraduate advisor when planning their degree completion.
When working with colleagues in the CSE and CLA Career Centers and with many U.S.-based employers, we are routinely told that employers do not know or care about the difference between graduates with a B.A. in computer science and graduates with a B.S. in computer science. Students earning a bachelor’s degree in computer science are qualified for an extremely wide range of jobs across many sectors and industries; B.A. and B.S. students take the same required core courses and departmental opportunities such as student groups, research opportunities, and studying abroad are available to students in either degree program.
That said, here are things advisors encourage students to consider:
- The B.S. upper division “track” credits can allow for students the opportunity to focus on a particular area of computer science. 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. asks for 8 credits of upper division CSCI coursework and 18 credits of upper division non-CSCI electives. These could include courses in statistics, mathematics, electrical engineering, psychology, or any other 3xxx-level or higher UMN courses. B.A. students may choose to explore another area of study that intersects with computer science, such as psychology, communications, or economics. For applications and future career goals that involve the liberal arts (human-centered computing, big data, and data privacy/public policy, etc.), this broader background may be more appropriate. The B.A. may also be a more efficient option for students pursuing a double major or a large minor.
New student transfers
Students transferring to the University of Minnesota from another school and wishing to select computer science as their major should first consult with the appropriate admissions counselor:
- College of Science and Engineering (CSE) for the B.S. program
- College of Liberal Arts (CLA) for the B.A. program
Based on the transfer coursework completed at the time of admission to the University, students will either be admitted as a major or pre-major student.
- Transfer students admitted as pre-majors will still need to apply to the major. The applications are posted online for CLA (B.A.) and CSE (B.S.).
- Students admitted as major students do not need to take any additional steps to apply to the major.
All transfer students will meet either a college advisor (pre-major students) or a departmental advisor (major students) during their orientation day organized by either CSE or CLA.
Transferring between CLA and CSE
Students wishing to transfer either from CLA to CSE to obtain a B.S. degree or from CSE to CLA to obtain a B.A. degree must file a Change of College Form online. Please pay particular attention to the application deadlines. Students transferring to CSE should refer to this website for admission criteria and information sessions.
Minor options in the department
Computer science minor
The computer science minor is a great option for students who want to include a basic core of computer science coursework to enhance or supplement their major program.
Information technology minor
This interdisciplinary minor provides opportunities for students from non-technical disciplines to supplement their major with a practical set of courses focused on information technology.
Minor options for computer science majors
Many students find that pursuing minor degree programs can be a strategic way to explore other interests and gain skills that are helpful for future career goals.
Students must complete all classes required by their degree program (B.A. or B.S.) with a grade of C- or better.
This includes all classes specifically required for the degree (e.g., STAT 3021, CSCI 2011) as well as classes used for the CSCI electives (B.A.) and CSCI track requirements (B.S.). 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).
Recommendation for approval from the Director of Undergraduate Studies is required for the Academic Policy Petition prior to submitting it to the college office.
Liberal education and other college or university requirements must be passed with a 'D' or an 'S' EXCEPT for the second language requirement in CLA which must be passed with a 'C-' or an 'S'. If you have questions about the second language requirement, please talk to your CLA College Advisor.
The following are approved substitutions for certain computer science requirements. Keep in mind that while these substitutions are approved, they are not necessarily recommended. We advise against students without other upper division math or statistics coursework taking 4xxx/5xxx level math and statistics courses in place of CSCI 2033 and Stat 3021.
CSCI 2011 - Discrete Structures of Computer Science substitution (CSCI majors only)
If a student has credit for or wants to take MATH 2283 or MATH 3238W instead of CSCI 2011:
- Computer science minor students cannot use non-CSCI courses in their minor. If credit for MATH 2283 or MATH 3283W is already earned, then minor students should consider taking a different course. Minor students can decide to stay in CSCI 2011 and use it for their minor, but parts will likely be redundant.
- Computer science B.S. students can use MATH 2283 or MATH 3283W in place of CSCI 2011 if they take MATH 4707 (Introduction to Combinatorics and Graph Theory) 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 2283 or MATH 3283W to sub for CSCI 2011 if students don't take MATH 4707.
- Computer science B.A. students can use MATH 2283 or MATH 3283W in place of CSCI 2011 if they take MATH 4707 (Introduction to Combinatorics and Graph Theory), 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 2283 or MATH 3283W to sub for CSCI 2011 if students don't take MATH 4707.
- Computer science/math double majors or math minors should take MATH 2283 or MATH 3283W over CSCI 2011 and then take MATH 4707 later to meet one of their other major requirements for the math major or for their math minor electives.
- CSCI 2041, which has CSCI 2011 listed as a prerequisite, can be pursued as long as a passing grade is earned in MATH 2283 or MATH 3283W.
- Students are advised against taking CSCI 4041 or 4011 until they have completed MATH 2283 or MATH 3283W and MATH 4707 to ensure a student has had exposure to counting/combinatorics material. Generally, the overlap of content covered in MATH 2283 or MATH 3283W compared to CSCI 2011 is around 60-70%, with another 20-30% of the material covered in MATH 4707.
- Application to the major process for students using this substitution: The department will allow a student to apply to the major using MATH 2283 or MATH 3283W in place of CSCI 2011. Students will still need to take MATH 4707 in order to complete the two for two substitution, but MATH 4707 can be completed after admission to the major.
- Students who have completed the full UMTYMP sequence (MATH 1471-1473 and 2471-2473) or the Honors Mathematics sequence (MATH 3952H-3953H) with a passing grade may also use these classes in place of MATH 2283 or MATH 3283W with the same conditions.
CSCI 2021 - Machine Architecture and Organization substitution (CSCI & DSCI majors only)
- We generally only allow EE 2361 to substitute for CSCI 2021 for electrical engineering or computer engineering double majors. EE 2361 can't be substituted if a student is only pursuing the computer science minor.
CSCI 2033 - Elementary Computation Linear Algebra substitution (CSCI & DSCI 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 cannot 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 B.S. 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. B.S. students may use MATH 3592H and 3593H combined in place of CSCI 2033.
- Data science B.S. students can use MATH 2243/2373/2471/2574H in place of CSCI 2033 if they take MATH 4242 (applied linear algebra) for an upper division technical elective in the program. 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 B.A. 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. B.A. 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 with transfer credit for MATH 2142 have completed the linear algebra requirement and do not need to take CSCI 2033 or MATH 4242.
STAT 3021 - Introduction to Probability and Statistics substitution (CSCI majors only)
We offer the following substitutes for our required STAT 3021 requirement in the computer science B.S. and B.A. 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 also count towards a student's computer science track credits for the B.S. program unless a student has also completed STAT 3011)
- MATH 4653 or MATH 5651 (these courses can't also count towards a student's computer science track credits or the upper division math oriented requirement for the B.S. program unless a student has also completed STAT 3011)
- IE 3521 (For Computer Science and Industrial Systems and Engineering double majors)
- EE 3025 (For Computer Science and Electrical Engineering or Computer Engineering double majors)
PHYS 1301W - Introduction to Physics and second science requirement substitutions:(CSCI B.S. & DSCI B.S. majors only)
Students may use PHYS 1221 and 1222 in place of PHYS 1301W and the second science requirement in the computer science B.S. program as long as they meet one of the following requirements:
- The student must have a bio-oriented major (not a pre-major) or minor listed officially on their record.
- The student has completed either CSCI 5461 or 5481 with a C- or better letter grade as part of their bioinformatics track focus in the B.S. curriculum. This approval will not be added to a student's APAS report until one of these two courses are completed.
- The student was previously admitted to the College of Biological Sciences (CBS) and completed the courses and have successfully transferred to CSE and have been admitted to the computer science B.S. program.
Substitution approvals will not be given to students who do not meet one of the criteria above.
EE 1301 - Introduction to Computing Systems substitution (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 (B.A. and B.S.). 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 CSCI requirement rather than having to take CSCI 1103, CSCI 1113, or CSCI 1133.
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 B.S. declared majors, CSCI B.A. declared majors, CSCI M.S. students, CSCI Ph.D. students
- CSCI 4061 will only be allowing the following students access: CSCI B.S. declared majors, CSCI B.A. declared majors, CSCI M.S. students, CSCI Ph.D. students, data science M.S. students, computer engineering declared majors, electrical engineering declared majors, electrical engineering M.S. students, electrical engineering Ph.D. students, information technology infrastructure declared majors
Pre-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 CSCI minors, other declared majors, and prospective graduate students if there is proof that they need these courses for their program of study. Students in this situation should fill out this form the week before the start of the term.
The internet programming (4131/5131), data communication and networks (4211/5211), AI I (4511W/5511), and databases (4707/5707) classes have a 4xxx and 5xxx version. The purpose of this is to allow tailoring of the course to the primary audiences (undergraduate students for the 4xxx version, graduate students for the 5xxx). There is enough overlap between the two versions that students will not be able to get credit for both.
Who should take which version of the courses?
- Computer science and computer engineering graduate students should take the 5xxx version; they will not receive graduate credit for the 4xxx versions.
- Graduate students from other programs should check with their programs and see which version will be acceptable.
- Most undergraduates should take the 4xxx version. 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.
Students may pursue admission to the Computer Science major in the College of Liberal Arts after completing and enrolling in certain courses in our program. Admission to the major is competitive and is based on an unbracketed technical GPA from University of Minnesota – Twin Cities courses.
We encourage all interested students to apply to the computer science major program of their choice as soon as they have met the eligibility requirements (in other words, do not delay applying to a major).
Students should be careful to follow the steps and deadlines listed on the B.A. program application page.
The sample graduation plan for the major includes all required courses in the order strongly recommended by advisors. While graduation is not guaranteed in four years, these sample plans are an example of how students could finish degree requirements in that amount of time.
This plan is for students admitted as of fall 2014 and for future admitted students.
Students who are pursuing a B.A. degree and were admitted to the major prior to fall 2014 may use the previous graduation plans:
Admission to a major in the College of Science and Engineering is a competitive process based on the successful completion of specific technical courses and a grade point average (GPA) based on technical courses (the technical GPA).
Students who have completed the necessary technical courses and have a 3.2 or above technical GPA at the end of fall semester will be guaranteed admission to that major. All other students who have completed the necessary technical coursework for their intended major (as identified by each department) will be considered for admission to that major on a space-available basis.
The College of Science and Engineering website has more information on applying to your major as a CSE student.
Students should be careful to follow the steps and deadlines listed on the B.S. program application page.
Students in the B.S. program need 23 credits of upper-division elective coursework, including at least one course that satisfies the upper division math-oriented requirement. The Department of Computer Science & Engineering has a wide variety of upper-division elective courses that have been grouped into areas of study, commonly referred to as our tracks.
Rather than focusing on “choosing” a track, students are encouraged to view track elective courses as a way to go deeper into one or more specialties within computer science and use those courses as a way to further develop computer science knowledge and skills. A track is not meant to limit your course options; indeed, students are able to mix and match elective courses across tracks if they want to explore more than one area of study. Additionally, students are reminded that tracks are neither declared nor approved, and they do not appear on your transcript or diploma.
Note: The track areas were changed in the summer of 2020. If needed, you can still view the previous groupings.
Students working towards a B.S. in Computer Science are required to take an upper division math-oriented course as part of their 23 total credits of upper division elective coursework.
Of the 23 total upper division elective credits needed for the B.S. degree, a minimum of 11 out of 23 must come from 4xxx-5xxx level CSCI courses. The other 12 credits can come from non-CSCI approved track electives listed below.
The sample graduation plan for the major includes all required courses in the order strongly recommended by advisors. While graduation is not guaranteed in four years, these sample plans are an example of how students could finish degree requirements in that amount of time.
This plan is for students admitted as of fall 2013 and for future admitted students.
Students who are pursuing a B.S. degree and were admitted to the major prior to fall 2013 may use the previous sample graduation plans:
We strongly encourage students to involve themselves in opportunities beyond the classroom. From on- and off-campus internships and work experiences to studying abroad to student groups, there are many ways to meet people, practice leadership, and learn new skills (or polish existing ones!)
Jobs & internships
Like engagement opportunities, there are many resources and tools available to you to support you academically, as well as policies to know and understand. Below are some of the most common - if you don’t see something you’re curious about, please ask your advisor!
Resources for academic success
Graduation and beyond
Academic integrity policies
- 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.
See the Upper Division Track webpage 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.
See the upper division math oriented requirement webpage 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.
Connect with advisors. You can fill out a petition in order to graduate in some cases.
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:
Computer science 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 B.S. and CLA B.A. respectively.
Most of our students are working part time, many in computer science 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.
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.
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.
Use your college's career center.
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.
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.
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.
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.
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.
Waitlist for the course if that is an option for the course. If there is no waitlist or if the waitlist is full, then contact the listed instructor and attend the first day of class.
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.
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.
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.
The Computer Science & 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.
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.
- 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.
Information about the Computer Engineering degree is online on the ECE Advising Site.
There are many different CS-related undergraduate research opportunities, so there is no single way to learn about them.
View the undergraduate research webpage to see the latest information about how to get involved in research.