Computer Science Advising Guide
This document is intended primarily as a resource for students
majoring or minoring in Computer Science, as well as those considering
such a major or minor. It should also be valuable to first year
advisors outside the department and as an adjunct to advisors within
the department. The first section gives a brief overview of the
discipline; the remaining sections describe the major, the honors
program, and the minor.
Contents
Computer science studies processes that manipulate symbolic
information, the procedures by which those processes are carried out,
the means by which the processes and procedures are designed, and
related phenomena, such as the social impact of information processing
and the use of information processing as a model for cognition.
Computer scientists are constantly constructing and using
abstractions - generalizations that capture the essence
of entire families of specific phenomena. In this regard, computer
scientists resemble mathematicians. However, computer science differs
in that abstraction is used as a technique for designing concrete
artifacts. In short, computer science is a discipline of concrete
abstractions.
Computer scientists do many things. Outsiders frequently think that
computer scientists write programs. They do, but they also:
- prove that programs perform correctly
- compare the efficiency of alternative strategies for solving a problem
- prove that certain problems are intrinsically hard, i.e. have no efficient strategy for their solution
- prove that other problems can't be solved at all
- design the organizational structure of computers
- devise ways to efficiently allocate and schedule computational resources
- develop design methodologies and notations that allow efficient and correct systems to be cost-effectively developed
- study how computer systems are actually used by humans and organizations
- apply computational models to other areas, such as cognition
Gustavus computer science graduates are prepared for both postgraduate
study and employment, and every year some choose each of these
options. Among those entering the workforce, the three largest
categories of employers are information systems consulting firms,
insurance companies, and software developers.
This section lists the requirements of the CS major, provides a
graphical illustration of the prerequisite structure of the major CS
courses, lists sample student plans, and describes the senior oral
which is an optional component of the major. Qualified majors may
additionally participate in the honors program, which is described in
the next section.
This diagram shows the prerequisites
structure of courses in the CS major. MCS-355 Numerical Analysis
(Spring odd years) or MCS-358 Mathematical Model Building (J-term even
years) can be taken in place of one of the two electives. Although
MCS-385 Artifical Intelligence is no longer offered, petitions to use
it in place of an elective will be accepted pro-forma.
A grade of C- or higher is necessary in all 12 courses used to satisfy
the requirements of the major, which are as follows:
- MCS-121 (or MCS-122), MCS-177, MCS-178, and MCS-236, with an average
grade point average of at least 2.3333 in these four courses.
- MCS-256, MCS-265, MCS-284, MCS-375, and MCS-287.
- MCS-270 or MCS-274.
- One of MCS-377, MCS-378, MCS-388, and MCS-394.
- Either a second course from the list in requirement 4 or one of
MCS-355 and MCS-358.
Each student should ideally lay out a schedule of their own showing
what courses they plan to take when. This schedule may not accurately
forecast the future, but it is helpful nonetheless. The sample plans
below are a useful starting point in developing such an individual
plan. You can select the sample plan that comes closest to fitting
your own situation and then tailor it as necessary. Note that these
sample plans show only courses within the Math and Computer Science
Department, but in some cases exceed the requirements of the major.
While the course plans don't include MCS-355 and MCS-358 (since they
require math prerequisites), the courses can be used
to fulfill the fifth requirement listed above.
| Typical student
|
|---|
| | Fall | Spring
|
|---|
| 1st year | 121 | 177
|
|---|
| 2nd year | 178 236 | 287 256
|
|---|
| 3rd year | 284 375 | 270 or 274 265
|
|---|
| 4th year | 377 or 378 | 388 or 394
|
|---|
| Early start, grad. school bound
|
|---|
| | Fall | Spring
|
|---|
| 1st year | 121 or 142 or 122 177 | 122 178
|
|---|
| 2nd year | 236 284 | 287 256
|
|---|
| 3rd year | 375 377 or 378 | 265 270 or 274
|
|---|
| 4th year | 377 or 378 | 388 394
|
|---|
| Start sophomore Fall
|
|---|
| | Fall | Spring
|
|---|
| 1st year | 121
|
|---|
| 2nd year | 177 236 | 178 256
|
|---|
| 3rd year | 284 375 | 265 287
|
|---|
| 4th year | 377 or 378 | 388 or 394 270 or 274
|
|---|
| Start sophomore Fall, late on 236
|
|---|
| | Fall | Spring
|
|---|
| 1st year | 121?
|
|---|
| 2nd year | 177 (and 121) | 178
|
|---|
| 3rd year | 284 236 | 265 256 287
|
|---|
| 4th year | 375 377 or 378 | 388 or 394 270 or 274
|
|---|
| Junior year abroad
|
|---|
| | Fall | Spring
|
|---|
| 1st year | 121 177 | 178
|
|---|
| 2nd year | 236 284 | 265 256 287
|
|---|
| 3rd year | abroad
|
|---|
| 4th year | 375 377 or 378 | 388 or 394 270 or 274
|
|---|
| Spring junior year abroad
|
|---|
| | Fall | Spring
|
|---|
| 1st year | 121 | 177
|
|---|
| 2nd year | 178 236 | 265 256 287
|
|---|
| 3rd year | 284 375 | abroad
|
|---|
| 4th year | 377 or 378 | 385 or 394 270 or 274
|
|---|
| Fall junior year abroad
|
|---|
| | Fall | Spring
|
|---|
| 1st year | 121 177 | 178
|
|---|
| 2nd year | 236 284 | 256 287
|
|---|
| 3rd year | abroad | 265 270 or 274
|
|---|
| 4th year | 375 377 or 378 | 388 or 394
|
|---|
In order to graduate with honors in computer science, a student must
complete an application for admission to the honors program, showing
that the student satisfies the admission requirements, and then must
satisfy the requirements of the program.
The requirements for admission to the honors program are as follows:
- Completion of MCS-121 (or MCS-122), MCS-177, MCS-178, MCS-236,
MCS-256, MCS-265, MCS-284, and MCS-287 with a quality point average
greater than pi.
- Approval by the Computer Science Honors Committee of a honors
thesis proposal. (See the honors
thesis guidelines below.)
The requirements of the honors program, after admission to the
program, are as follows:
- Attainment of a quality point average greater than pi in courses
used to satisfy the requirements of the major. If a student has taken
more courses than the major requires, that student may designate for
consideration any collection of courses satisfying the requirements of
the major.
- Approval of the honors thesis by the computer science honors
committee. The thesis should conform in general outline to the
previously approved proposal (or an approved substitute proposal),
should include approximately 160 hours of work, and should result in
an approved written document. Students completing this requirement
will receive credit for the course MCS-350, whether or not they
graduate with honors. (See the honors
thesis guidelines below.)
- Oral presentation of the thesis in a public forum, such as the
departmental seminar. This presentation will not be evaluated as a
criterion for thesis approval, but is required.
Computer science honors thesis proposals should be written in
consultation with the faculty member who will be supervising the
work. The proposal and thesis must each be approved by the Computer
Science Honors Committee. These guidelines are intended to help
students, faculty supervisors, and the committee judge what merits
approval.
The thesis should include creative work, and should not reproduce well
known results; however, it need not be entirely novel. It is
unreasonable for an undergraduate with limited time and library
resources to do a thorough search of the literature, such as would be
necessary to ensure complete novelty. Moreover, it would be rare for
any topic to be simultaneously novel, easy enough to think of, and
easy enough to do.
The thesis should include use of primary-source reference material. As
stated above, an exhaustive search of the research literature is
impractical. Nonetheless, the resources of inter-library loan, the
faculty supervisor's private holdings, etc. must be tapped if the
thesis work is to go beyond standard classroom/textbook work.
Many computer science theses include some system-building effort
(typically programming, though hardware construction is
possible). However, this kind of work is neither necessary nor
sufficient. There must be some more theoretical, conceptual, or
empirical side to the work. A typical thesis might involve the
practical application of a theoretical concept. Other theses, however,
are purely theoretical.
Occasionally, a thesis may be based on empirical, rather than
theoretical, foundations. For example, the quantitative performance of
a system might be measured. This kind of thesis should be approached
with caution, as empirical work has many pitfalls and can therefore be
difficult to complete on a tight time schedule.
The written thesis should sufficiently explain the project undertaken
and results achieved that someone generally knowledgeable about
computer science, but not about the specific topic, can understand
it. The quality of writing and care in citing sources should be
adequate for external distribution without embarrassment.
The thesis must contain a substantial computer science component,
though it can include other disciplines as well. If a single thesis
simultaneously satisfies the requirements of this program and some
other discipline's honors program, it can be used for both (subject to
the other program's restrictions). However, course credit will not be
awarded for work which is otherwise receiving course credit.
The Computer Science Honors Committee maintains a file of past
proposals and theses, which may be valuable in further clarifying what
constitutes a suitable thesis.
As with the major in computer science, a minimum grade of C- must be
attained in all courses used to satisfy the minor. The necessary
courses are
- MCS-121 (or MCS-122), MCS-177, MCS-178, and MCS-236, with a grade
point average of at least 2.333 in these four courses.
- One of MCS-265, MCS-284, MCS-287, and MCS-375.
- Either an additional course from the list in requirement 2 or one
of MCS-256, MCS-270, MCS-274, MCS-355, MCS-358, and MCS-394.
Last updated on June, 2003