Index
|
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 2010 or after.
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.
However, the two sets of requirements cannot be mixed. It is recommended that
students who enrolled at the University of Minnesota prior to Fall 2010 should
contact the Undergraduate Advisor when deciding which requirements to use.
5.1. CLA Students
All CLA students must complete 12 semester credits of 4xxx or 5xxx elective
courses, (i.e. other than the required courses) in the Computer Science and
Engineering Department. (The quarter class CSci 5113 and semester class
CSci 4921 cannot be used. Moreover, no more than 3 credits from CSCI 4970 or
59xx courses can be used as part of the 12 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 upper division track consists of courses in three 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.
-
Technical Elective Courses - advisor approved courses that provide
enough credits to bring the total track credits to 24. This will
usually be 12 credits. These courses give the student a great
deal of flexibility to tailor the track. Some of these credits
can be taken from an area other than computer science. However,
a maximum of 9 (of the 24 track credits) can be non-CSci courses.
All non-CSci courses must maintain coherence within the track.
The flexibility incorporated into the track structure will allow for a
great deal of individual customization of each track.
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.
Students must fill out an Upper Division Track form and get it approved by the Computer Science Advisor to ensure the track courses appear correctly on their APAS. The form may be obtained from the Computer Science Advising Office in room 4-196B Keller Hall.
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
Following are several Upper Division Track options. In addition to these tracks, a custom track can be developed in
close consultation with the Computer Science Advisor. A custom track will typically be interdisciplinary, but in all cases will differ substantially
from any existing track. In order to maintain coherence and depth, students cannot choose a custom track for the purpose of substituting courses that
appear as part of an existing track. Track approval will only be given for cohesive custom tracks that are not duplicated by an existing track.
-
Systems
-
Required:
-
CSCI 4211- Introduction to Computer Networks (3.0 cr)
-
CSCI 5103- Operating Systems (3.0 cr)
-
Take 2 or more course(s) from the following:
-
CSCI 5104- System Modeling and Performance Evaluation (3.0 cr)
-
CSCI 5105- Introduction to Distributed Systems (3.0 cr)
-
CSCI 4131- Internet Programming (3.0 cr)
-
CSCI 5143- Real-Time and Embedded Systems (3.0 cr)
-
CSCI 5161- Introduction to Compilers (3.0 cr)
-
CSCI 5221- Foundations of Advanced Networking (3.0 cr)
-
CSCI 5231- Wireless and Sensor Networks (3.0 cr)
-
CSCI 5271- Introduction to Computer Security (3.0 cr)
-
CSCI 5551- Introduction to Intelligent Robotic Systems (3.0 cr)
-
Theory
-
Required:
-
CSCI 4011- Formal Languages and Automata Theory (4.0 cr)
-
CSCI 5421- Advanced Algorithms and Data Structures (3.0 cr)
-
Take 2 or more course(s) from the following:
-
CSCI 5403- Computational Complexity (3.0 cr)
-
CSCI 5451- Introduction to Parallel Computing: Architectures, Algorithms, and Programming (3.0 cr)
-
CSCI 5471- Modern Cryptography (3.0 cr)
-
CSCI 5481- Computational Techniques for Genomics (3.0 cr)
-
CSCI 5525- Machine Learning (3.0 cr) (note: this course is
a graduate course; it will be available to undergraduates only with
special permission and only if there is extra room in the course)
-
MATH 5165- Mathematical Logic I (4.0 cr)
-
MATH 5166- Mathematical Logic II (4.0 cr)
-
MATH 5707- Graph Theory and Non-enumerative Combinatorics (4.0 cr)
-
MATH 5711- Linear Programming and Combinatorial Optimization (4.0 cr)
-
Artificial Intelligence/Robotics
-
Required:
-
CSCI 4511W- Introduction to Artificial Intelligence, WI (4.0 cr)
-
CSCI 5512- Artificial Intelligence II (3.0 cr)
-
Take 2 or more course(s) from the following:
-
CSCI 5521- Pattern Recognition (3.0 cr)
-
CSCI 5523- Introduction to Data Mining (3.0 cr)
-
CSCI 5525- Machine Learning (3.0 cr) (note: this course is
a graduate course; it will be available to undergraduates only with
special permission and only if there is extra room in the course)
-
CSCI 5551- Introduction to Intelligent Robotic Systems (3.0 cr)
-
CSCI 5552- Sensing and Estimation in Robotics (3.0 cr)
-
CSCI 5561- Computer Vision (3.0 cr)
-
Computational Science
-
Required:
-
CSCI 5302- Analysis of Numerical Algorithms (3.0 cr)
-
CSCI 5304- Computational Aspects of Matrix Theory (3.0 cr)
-
Take 2 or more course(s) from the following:
-
CSCI 5019- Visualization (3.0 cr)
-
CSCI 5451- Introduction to Parallel Computing: Architectures, Algorithms, and Programming (3.0 cr)
-
CSCI 5461- Functional Genomics, Systems Biology, and Bioinformatics (3.0 cr)
-
CSCI 5481- Computational Techniques for Genomics (3.0 cr)
-
CSCI 5523- Introduction to Data Mining (3.0 cr)
-
AST 4101- Computational Methods in the Physical Sciences (4.0 cr)
-
MATH 5075- Mathematics of Options, Futures, and Derivative Securities I (4.0 cr)
-
MATH 5467- Introduction to the Mathematics of Image and Data Analysis (4.0 cr)
-
MATH 5587- Elementary Partial Differential Equations I (4.0 cr)
-
MATH 5588- Elementary Partial Differential Equations II (4.0 cr)
-
MATH 5711- Linear Programming and Combinatorial Optimization (4.0 cr)
-
Software Engineering/Programming Languages
-
Required:
-
CSCI 5106- Programming Languages (3.0 cr)
-
CSCI 5801- Software Engineering I (3.0 cr)
-
Take 2 or more course(s) from the following:
-
CSCI 4011- Formal Languages and Automata Theory (4.0 cr)
-
CSCI 5161- Introduction to Compilers (3.0 cr)
-
CSCI 5802- Software Engineering II (3.0 cr)
-
MATH 5165- Mathematical Logic I (4.0 cr)
-
Software and Data Systems Development
-
Required:
-
CSCI 4707- Practice of Database Systems (3.0 cr)
-
CSCI 5801- Software Engineering I (3.0 cr)
-
Take 2 or more course(s) from the following:
-
CSCI 4131- Internet Programming (3.0 cr)
-
CSCI 4211- Introduction to Computer Networks (3.0 cr)
-
CSCI 5103- Operating Systems (3.0 cr)
-
CSCI 5106- Programming Languages (3.0 cr)
-
CSCI 5115- User Interface Design, Implementation, and Evaluation (3.0 cr)
-
CSCI 5161- Introduction to Compilers (3.0 cr)
-
CSCI 5271 - Introduction to Computer Security (3.0 cr)
-
CSCI 5708 - Architecture and Implementation of Database Management Systems (3.0 cr)
-
CSCI 5802- Software Engineering II (3.0 cr)
-
INET 4061 - Introduction to Data Warehousing (3.0 cr)
-
Architecture and Hardware Systems
-
Required:
-
CSCI 4203 - Computer Architecture (4.0 cr)
-
CSCI 5204 - Advanced Computer Architecture (3.0 cr)
-
Take 2 or more courses from the following:
-
CSCI 4211 - Introduction to Computer Networks (3.0 cr)
-
CSCI 5103 - Operating Systems (3.0 cr)
-
CSCI 5161 - Introduction to Compilers (3.0 cr)
-
CSCI 5451 - Introduction to Parallel Computing (3.0 cr)
-
EE 4341 - Embedded System Design (4.0 cr)
-
Bioinformatics and Computational Biology
-
Required:
-
CSCI 5461 - Functional Genomics, Systems Biology, and Bioinformatics (3.0 cr)
-
CSCI 5481 - Computational Techniques for Genomics (3.0 cr)
-
Take 2 or more courses from the following:
-
CSCI 4707/5707 - Practice of Database Systems (3.0 cr)
-
CSCI 5521 - Pattern Recognition (3.0 cr)
-
CSCI 5523 - Introduction to Data Mining (3.0 cr)
-
CSCI 5421 - Advanced Algorithms and Data Structures (3.0 cr)
-
Databases and Geographical Information Systems
-
Required:
-
CSCI 4707/5707 - Practice of Database Systems (3.0 cr)
-
CSCI 5708 - Architecture and Implementation of Database Management Systems (3.0 cr)
-
Take 2 or more courses from the following:
-
DATABASES
-
CSCI 4131 - Internet Programming (3.0 cr)
-
CSCI 4211 - Introduction to Computer Networks (3.0 cr)
-
CSCI 5103 - Operating Systems (3.0 cr)
-
CSCI 5421 - Advanced Algorithms and Data Structures (3.0 cr)
-
CSCI 4511W - Artificial Intelligence I (4.0 cr)
-
CSCI 5523 - Introduction to Data Mining (3.0 cr)
-
INET 4061 - Introduction to Data Warehousing (3.0 cr)
-
GIS
-
CSCI 4107/5107 - Introduction to Computer Graphics Programming (3.0 cr)
-
CE 4341 - Engineering Geostatistics (3.0 cr)
-
FR 5131 - Geographical Information Systems (GIS) for Natural Resources (4.0 cr)
-
FR 5262 - Remote Sensing of Natural Resources and Environment (3.0 cr)
-
FR 5412 - Digital Remote Sensing (3.0 cr)
-
Graphics and Visualization
-
Required:
-
CSCI 4107/5107 - Introduction to Computer Graphics Programming (3.0 cr)
-
CSCI 5108 - Fundamentals of Computer Graphics II (3.0 cr) OR 5109 Visualization (3.0 cr)
-
Take 2 or more courses from the following:
-
CSCI 5108 Computer Graphics II (if not taken as one of the required options) (3.0 cr)
-
CSCI 5109 Visualization (if not taken as one of the required options) (3.0 cr)
-
CSCI 5115 User Interface Design, Implementation and Evaluation (3.0 cr)
-
CSCI 5125 Collaborative and Social Computing (3.0 cr)
-
CSCI 5302 Analysis of Numerical Algorithms (3.0 cr)
-
CSCI 5523 Introduction to Data Mining (3.0 cr)
-
CSCI 5561 Computer Vision (3.0 cr)
-
Human Computer Interaction
-
Required:
-
CSCI 5115 - User Interface Design, Implementation, and Evaluation (3.0 cr)
-
CSCI 5125 - Collaborative and Social Computing (3.0 cr)
-
Take 2 or more courses from the following:
-
CSCI 5109 - Visualization (3.0 cr)
-
CSCI 5117 - Developing the Interactive Web (3.0 cr)
-
CSCI 5129 - e-Public Health: Online Intervention Design (3.0 cr)
-
PSY 5051W - Psychology of Human-Machine Interaction (3.0 cr)
-
KIN 5001 - Foundations of Human Factors/Ergonomics (3.0 cr)
-
Networks
-
Required:
-
CSCI 4211 - Intro. to Computer Networks (3.0 cr)
-
CSCI 5221 - Foundation of Advanced Networking (3.0 cr)
-
Take 2 or more courses from the following:
-
CSCI 5103 - Operating Systems (3.0 cr)
-
CSCI 5104 - System Modeling and Performance Evaluation (3.0 cr)
-
CSCI 5105 - Introduction to Distributed Systems (3.0 cr)
-
CSCI 5231 - Wireless and Sensor Networks (3.0 cr)
-
CSCI 5271 - Introduction to Computer Security (3.0 cr)
-
CSCI 5471 - Modern Cryptography (3.0 cr)
-
MATH 5251 - Error-Correcting Codes, Finite Fields, Algebraic Curves (4.0 cr)
-
INET 4011 - Network Administration (4.0 cr)
-
INET 4021 - Network Programming (4.0 cr)
-
INET 4041 - Emerging Network Technologies and Applications (3.0 cr)
-
EE 5505 - Wireless Communication (3.0 cr)
-
Security
-
Required:
-
CSCI 4211 - Intro. to Computer Networks (3.0 cr)
-
CSCI 5271 - Introduction to Computer Security (3.0 cr)
-
Take 2 or more courses from the following:
-
CSCI 5103 - Operating Systems (3.0 cr)
-
CSCI 5471 - Modern Cryptography (3.0 cr)
-
CSCI 5801 - Software Engineering I (3.0 cr)
-
MATH 5248 - Cryptology and Number Theory (4.0 cr)
-
INET 4011 - Network Administration (4.0 cr)
5.4. Things to remember
-
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.
-
In general 3xxx classes are not allowed as part of the upper division
track.
-
Required CS classes (3081W/4081W, 4041, 4061) cannot be used as part
of the upper division track.
-
In general, at most 3 credits of independent study/directed reading/directed research
etc. can be used as part of the upper division track. Students may be
able to take more than 3 credits of special topics courses (5980 only with advisor approval); however,
if a student includes more than 3 credits of 5980 courses, or includes both
5980 credits and independent student/directed reading/directed research etc.
credits in their upper division track they should check with a Computer
Science advisor to ensure they have enough "regular" CSci courses.
-
You cannot use the same class as a math elective and as part of the upper
division track.
-
The following classes cannot be used as part of the upper division
track: CSci 3921, INET 4031, INET 4707, INET 4081.
-
CSci 4921 can be used as part of the CSE upper division track, but only as
part of the "out-of-department" credits.
-
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.
-
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.
-
Out-of-department courses not listed in the track specifications above must be
approved by the Computer Science Advisor in advance.
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. If a math course is
selected it must have a sophomore-level course as a prerequisite and be 3 or 4 credits. Students declare the
course they intend to use to satisfy the advanced math oriented elective requirement when they fill out the upper division track form
(available in the CSci Advising Office, Keller 4-196B).
Students are advised to verify with the Undergraduate Advisor that a
math elective course will indeed fulfill the requirement.
Please note that not all Math courses with 4xxx/5xxx numbers will
satisfy the advanced math oriented elective requirement. Moreover,
the multivariable calculus and the sequences, sets and foundations courses
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.
The math-oriented requirement may not also be used as part of the upper division
track.
5.6. CSci 4xxx and 5xxx Electives
The computer graphics (CSci 4107/5107), 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. The two
exceptions to this are (i) undergraduates may take the 5107 graphics
course if they have a strong interest in graphics (particularly if
they plan to take the 5108 graphics II class). (ii) 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 Education Networking Courses
The College of Continuing Education 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), and INET 4061 (Introduction to Data Warehousing) may,
with advisor approval, be used for the "out-of-department" portion of
the of the upper division emphasis. Other INET courses may be taken as
free electives.
See the University Catalog
and Class Schedule
for more information.
|