At least two technical electives for the BS in Computer Science program must come from this list of courses.
The remaining three technical electives for the BS in Computer Science program may come from this list of courses. But, a student also has the option of using these three electives to form a concentration or minor in some technical area outside CS, e. g., mechanical engineering or physics. Although there is some flexibility in the selection of courses in a concentration area, normally they are courses required for majors in the area.
Concentration areas for Computer Science Majors
Computer Science (CS) majors can use their electives to form concentrations in areas related to CS. The BS/CS program has 5 technical electives and 4 open electives and the BA/CS program has many more electives which gives the student considerable flexibility. This document lists a number of possible concentration areas together with courses in each area. Some of these courses are required for CS majors because they need at least some background in many of the listed areas. Taking additional courses in an area will give them additional background in the area. Normally a student will not take all of the courses listed for an area, but rather only those courses which best meet his/her educational objectives. Thus, this document is intended to help CS majors formulate programs of study that will meet their education objectives, recognizing that these objectives may change as students progress though the programs.
Bachelor of Arts Program
The Bachelor of Arts program in Computer Science is a combination of a liberal arts program and a computing major. It is a professional program in the sense that graduates can be employed as computer professionals, but it is much less technical than the Bachelor of Science program in Computer Science. It is particularly suitable for students with a wide variety of interests. For example, students can major in another discipline in addition to computer science and routinely complete all of the requirements for the double major in a 4 year period. This is possible because over a third of the courses in the program are open electives. Furthermore, if a student is majoring in computer science and a second technical field such as mathematics or physics many of the technical electives will be accepted for both majors. Another example of the utility of this program is that it routinely allows students to major in computer science and take all of the pre-med courses in a 4 year period.
Minor in Computer Science (Bachelor of Science)
For students pursuing a B.S. or B.S.E. degree, the following three courses are required for a minor in computer science:
- EECS 233 Introduction to Data Structures
- EECS 338 Introduction to Operating Systems
- EECS 340 Algorithms and Data Structures
A student must take an additional four credit hours of computing courses with the exclusion of ENGR 131 or EECS 132. EECS 302 (Discrete Mathematics) may be used in place of three of these credit hours because it is a prerequisite for EECS 340.
Minor in Computer Science (Bachelor of Arts)
For students pursuing B.A. degrees, the following courses are required for a minor in computer science:
- ENGR 131 Elementary Computer Programming (EECS 132 starting Fall 2011)
Two additional computing courses are also required for this minor.
Minor in Artificial Intelligence
The program in artificial intelligence offers an undergraduate minor. The core of the minor introduces students to the techniques of artificial intelligence programming and the basic theoretical concepts of artificial intelligence, knowledge representation, and automated reasoning. Within the minor, a student may choose a track pertaining to science and engineering or a track pertaining to artificial intelligence and cognition. Students who take the science and engineering track will have the opportunity to build significant intelligent systems. They will acquire a solid understanding of methods for knowledge representation and automated reasoning. The science and engineering track provides an opportunity for a student to acquire knowledge that is useful in areas such as management and engineering.
The artificial intelligence and cognition track will give students the opportunity to explore the relationships between computational processes and the study of mind and language. Studies of the relationships between these areas have led to developments in robotics, mathematical neuroscience, visual processing systems, parallel processing systems, mathematical and experimental psychology, and linguistics.
A minor consists of five courses. Every student who takes the minor in artificial intelligence must take the two courses, ENGR 131 (Elementary Computer Programming) and EECS 391 (Introduction to Artificial Intelligence). Students who take the artificial intelligence minor must also take one of two minor tracks:
The Technology Track requires 3 of the following courses:
- BIOL 373 Introduction to Neurobiology
- BIOL 374 Neurobiology of Behavior
- BIOL 477 Dynamics of Adaptive Behavior (cross listed as EECS 477)
- BIOL 478 Computational Neuroscience (cross listed as EECS 478)
- BIOL 479 Seminar in Computational Neuroscience (cross listed as EECS 479)
- EECS 350 Industrial and Production Systems Engineering
- EECS 352 Engineering Economics and Decision Analysis
- EECS 360 Manufacturing, Operations and Automated Systems
- EECS 375 Autonomous Robotics (cross listed as BIOL 375)
- EECS 411 Logic Programming
- EECS 475 Autonomous Robotics (cross listed as BIOL 475)
- EECS 484 Computational Intelligence I: Basic Principles
- EECS 487 Computational Intelligence II: Applications
- EECS 491 Intelligent Systems I
- EECS 531 Computer Vision for Industrial Applications
- EECS 591 Intelligent Systems II
- PHIL 201 Introduction to Logic
- PHIL 306 Mathematical Logic
The Cognitive Science Track requires 3 of the following courses:
- ENGL 301 Linguistic Analysis of Modern English
- PSCL 101 General Psychology I
- PSCL 352 Physiological Psychology
- PSCL 353 Psychology of Learning
- PSCL 355 Sensation and Perception
- PSCL 357 Cognitive Psychology
- PSCL 370 Human Intelligence
- PSCL 402 Cognition and Information
Processing 400- and 500-level courses require the approval of the minor advisor.
Minor in Computer Gaming
Minor (based on the SAGES Engineering Core) Hours: 16
- EECS 324 System Simulation
- EECS 366 Computer Graphics
- EECS 390 Advanced Game Project
- EECS 391Artificial Intelligence
The open elective in the spring of the first-year is strongly recommended to be EECS 290.
In addition, it is recommended that one additional open elective be a “content creation” course taken from the following areas: Art, English, or Music.