Concentration Effective: Fall 2005 | previous requirements

Computer Science

May be elected as a departmental concentration program; Accredited by the Accreditation Board for Engineering and Technology (ABET)

Pre-Concentration Requirements.

To enroll in the LS&A Computer Science (CS) program a student must first complete 5 pre-concentration courses. These are: MATH 115, MATH 116, MATH 215, EECS 203, and EECS 280. Performance in these classes is indicative of student aptitude for the Computer Science program, and students who do not perform well are discouraged from continuing. Students must achieve a 2.5 GPA over the 5 pre-concentration courses and have at least a C in each course. Students may repeat a pre-concentration course once, for a maximum of two attempts at each course, and only the final grade for the course will be used to compute the preconcentration GPA. Only courses with grades of C+ or below can be repeated for this purpose.

ABET (Accreditation Board for Engineering and Technology) Laboratory Science Requirement. In order to meet accreditation standards for CS degree programs, all students seeking a CS degree must complete a minimum of 12 credits of NS, and this must include a two-term course sequence with laboratories that is required in a science or engineering degree program. An example of such a sequence is PHYSICS 140, 141, 240, 241. Check with the department for an up-to-date list of course combinations that meet this requirement. Credits used to meet this requirement may be counted toward LS&A distribution requirements, but cannot be used toward Flexible Technical Electives in the concentration program. Meeting this requirement is mandatory for the CS degree.

Concentration Program. Grades of C or better must be achieved in all courses taken to satisfy the concentration requirements.

  1. Core Courses:
    1. Computer Science: EECS 281, 370, 376, 496.
    2. Probability and Statistics: STATS 412 or STATS 265/IOE 265.
    3. Major Design Experience (MDE): A course approved as satisfying the MDE requirement (check with the department for current list of approved MDE courses). This must be taken concurrently with EECS 496 and TCHNCLCM 497, and is normally one of the Upper-Level CS Technical Electives (see below).
  2. Technical Communications. Three credits, including TCHNCLCM 300 (1 credit) and TCHNCLCM 497 (2 credits). TCHNCLCM 300 may be taken at any time, but is a prerequisite to TCHNCLCM 497, which must be taken concurrently with EECS 496 and a Major Design Experience (MDE) elective.
  3. Technical Electives. A minimum of 21 additional credits of technical electives are required, selected as follows:
    1. At least 16 of the 21 credits must be in approved Upper Level CS Technical Electives . These are the CS courses listed in this Bulletin at the 300, 400, and 500 levels, excluding EECS 398, 498, 499, 598, and 599. Check with the department for an up-to-date list of approved Upper Level CS elective courses. All 21 elective credits can be Upper Level electives, and students are encouraged to take more than the minimum of 16.
    2. A maximum of 5 of the required 21 technical elective credits may be chosen from the approved Flexible Technical Electives . These are courses in engineering, mathematics, or science that are approved as appropriate for CS students. Check with the department for the current list of approved Flexible Technical Electives. EECS 499 (Directed Study) is accepted as a Flexible elective, but is limited to a maximum of 4 credits; any additional 499 credits count towards free electives.
    3. At least 18 of the 21 elective credits must be in CS courses listed in this Bulletin (or the department CS elective lists) at 200-level and above. This means that if the student takes the minimum number of Upper Level CS Technical Electives, at least 2 credits of the Flexible electives must be in CS courses.

Comprehensive and up-to-date information about the computer science program can be found on the web at:

http://www.eecs.umich.edu/eecs/undergraduate/ugcs/computer_science.html

Honors Concentration. Students wishing to complete an Honors degree in Computer Science must have earned a 3.2 or higher GPA in the five required pre-concentration courses (MATH 115, 116, 215, EECS 203 and 280). Student must also have earned an overall GPA of 3.4 or higher (as required by LSA for Honors), and must have a final concentration GPA in Computer Science of 3.5 or higher.

In addition, the required minimum of 18 credits of electives in Computer Science must be satisfied by Upper-Level CS electives; no Flexible electives can be used to meet this requirement.

How to Major in Computer Science

The following is general advice we often give our students, but we encourage you to meet with a Computer Science advisor at any time to discuss your plans and progress.

  1. Pay careful attention to the rules stated in the concentration requirements. Our program has a very full schedule. Thus mistakes in understanding the requirements can cost you additional academic terms. In case of doubt, please come in for advice at the EECS Undergraduate Advising office, or check the current program requirements on the Departmental web site:
  2. The C grade rule for concentration program courses is very important. Required courses with grades of C– or below must be retaken; concentration electives with grades of C– or below must either be retaken or replaced with a different acceptable elective.
  3. If you are a transfer student, please contact a CS advisor immediately. We make case-by-case decisions on transferred coursework to make sure you get started in our program at the right place. To avoid possibly costly delays, you need to start this process immediately.
  4. Your first goal is to meet the pre-concentration requirements. Taking EECS 203 (Discrete Structures) and EECS 280 (Programming) simultaneously often works well, and these are the two prerequisites for the “gateway” course, EECS 281 (Data Structures and Algorithms). Try to have the Math courses done by the time you complete EECS 203 and 280. If you are having trouble meeting the pre-concentration GPA requirement, it is vital to meet with a CS advisor without delay.
  5. Take EECS 281 as soon as you can, and declare the Computer Science concentration during that academic term. Because the Upper Level CS Electives are open only to declared CS concentrators, declaring at this time will allow you to register for the Upper Level Electives the next academic term, which will help you get the choices you want as you finish the program.
  6. The Laboratory Science requirement is required to get the CS degree, and must be completed by graduation. But you can take these courses at any convenient time; none of them are prerequisites for any required CS courses or Upper Level CS electives.
  7. If you are interested in Operating Systems and Networks, taking EECS 370 (Computer Organization) at the same time as EECS 281 will enable you to register the next academic term for EECS 482 (Operating Systems) which is the prerequisite for EECS 489 (Networks).
  8. We often advise students to avoid taking more than two courses at the same time that involve a lot of programming work. The advisors can help you make the best selection. Saving some of your LSA requirements for later academic terms can help spread out the workload.
  9. It is a good idea to save some of the Flexible Technical Elective credits for doing an EECS 499 (Directed Study) course in which you work with a professor on a project of mutual interest. A 499 is especially valuable if you are interested in graduate school. If one of your professors is doing work that is interesting to you, approach him or her to discuss this possibility. It is usually most valuable to do an EECS 499 relatively late in your program, when you have acquired knowledge and skills that contribute to the work, and have a clearer picture of what areas you are most interested in.
  10. All of our Upper Level Electives are challenging and substantial courses, and cover a wide variety of topics in computing. The best way to choose your electives is have an idea about the kind of work or career path you want to pursue after getting your degree, and then choose the electives that will help you do it. EECS faculty in your area of interest are an excellent source of advice. We encourage you to discuss your elective choices with them, or the CS advisors.
  11. The best time to take the Major Design Experience package is as late as possible, no earlier than Fall of your final year. This will take the most advantage of the technical knowledge you have gained in your other courses. To prepare for this, take TCHNCLCM 300 your sophomore or junior year, and then be sure to take TCHNCLCM 497 and EECS 496 in the same term as you take your Major Design Experience elective. TCHNCLCM 497 is supposed to coordinate with the MDE course to give you the most realistic preparation for real-world design and development work, in which communicating your ideas is critical to success. Similarly, EECS 496 will be most useful if taken at the same time as the MDE course.
  12. Caution: There are many EECS courses that are not approved as Computer Science Technical Electives. If a course of interest is not listed in this Bulletin as a CS course, check with the department for the up-to-date list. If a course is not listed as an approved CS elective, it will not be accepted unless an exception is granted by the Chief Program Advisor.
  13. The CS program advisors based in the EECS department do not provide any advice or guidance on meeting LSA requirements. Please review these periodically with an LSA advisor. We recommend that you direct all questions about the CS program requirements to the CS advisors whenever possible.