The
Computer Science major requires an "applications
programming" course as part of your
graduation requirements. The purpose of
this requirement is for you to gain experience
using your computer science skills for an
"application" outside the realm
of "traditional" computer science
courses. Note, however, that this requirement
cannot be satisfied just by showing you
have used your computer programming skills
for an interesting application. The use
of methods and strategies from computer
science per se are an integral part
of this requirement.
The
most common route to satisfying this requirement
is to take Math 300, Math Modeling. Several
other routes are available, all of which
involve you designing an appropriate "project"
which meets your personal interests or career
goals, but which also satisfies the department
as to the significance of the computer science
involved. Such projects can be internships
or field terms with various companies, projects
involving work with other departments at
Beloit College, or even volunteer projects
for charitable or non-profit organizations
(locally or nationally). While we encourage
you to think broadly of ways you can meet
this requirement, we suggest the following
six "normal" routes to satisfying
this requirement. Other routes should involve
comparable effort, supervision, and computer
science skills.
The
Applications Programming requirement can
be met by:
- Math
300. The Mathematical Modeling course
is the traditional route used to satisfy
this requirement. In this course you will
construct mathematical models of various
"real-world" problems, often
converting those models into computer
representations, and solving the problem
via computer programs. You work in teams,
prepare reports on the work you've done,
give oral presentations of that work,
and in other ways analyze the strengths
and weaknesses of the model. It is the
responsibility of the course instructor
to verify that the quality of the programs
you've written meets the standards for
the applications programming requirement.
This course is usually offered in the
Fall of odd-numbered years.
- CS
116 + Application: CS 116, normally offered
in the Spring of odd-numbered years, concentrates
on programming techniques for interfacing
instruments with computers. The applications
programming requirement can be satisfied
by this course combined with a special
project of at least 0.5 units that applies
the techniques of CS 116 to a particular
project. The project can be in any department
or program, must have a sponsoring faculty
member in that department (who supervises
the special project course), and must
also be supervised by a member of the
Math/CS department.
- CS
305 + Programming Internship. A programming
internship taken for credit is acceptable
to satisfy this requirement, but we require
that you take Software Engineering prior
to the internship. (Software Engineering
is usually offered in the spring of even-numbered
years.) Since such internships happen
without active faculty involvement, we
require that you submit the documents
for your project as they would be used
in the Software Engineering process. These
documents must be submitted to your CS
internship supervisor, at appropriate
intervals during the internship, to document
the presumption that you are using good
CS strategies for your programming project.
You must also submit a reflective essay
after the internship. This essay may be
customized to a particular internship,
but generally includes at least the following
points:
- Which
of the various life-cycle models of
Software Engineering most closely
approximates the program development
used at your internship location?
- How
did your computer science skills (esp.
those other than just programming
skills) aid you in your internship?
- What
did you learn from your internship
that would have been the most valuable
to your Software Engineering classmates?
- What
do you think would have been the most
useful things for your fellow employees
at your internship to learn from a
Software Engineering class that they,
apparently, did not know?
- Interdisciplinary
Special Project. If you have interests
and skills in another discipline at Beloit
College, you may be able to design a special
project that applies your Computer Science
skills towards building an application
of use to someone in that discipline.
The requirements for such a project are:
- It
must use a substantial depth of computer
programming or computer science skills
(thus, for example, building Web pages
would be insufficient, unless there
were significant Java or cgi programming
behind those pages);
- It
must build an application to be used
by someone in the other discipline.
This might be a tool for doing research,
data analysis, or some common task
they need to do. It could be a strict
teaching tool, such as an application
that allows a computer visualization
of a concept they talk about in one
of their classes. However, the requirement
that this be something they would
use is critical, and part of the course
evaluation should be the usefulness
of the product after you've left.
- The
course, which is normally numbered
390 in the sponsoring department,
must be graded by a faculty member
in the discipline to which the product
belongs.
- The
writing, code and documentation, must
be evaluated by a member of the CS
faculty, who will provide feedback
on the quality of that writing to
the faculty member principally in
charge of the course. You must either
(a) Have taken CS 305 and submit
the appropriate documents at appropriate
intervals (as with a programming internship);
or (b) Meet with the CS faculty
sponsor for the project at least bi-weekly
to evaluate the process of the building
and documenting of your project.
- Interdisciplinary
Undergraduate Research. This route to
satisfying the applications programming
requirement is quite similar to the Interdisciplinary
Special Project except that the
second requirement above is replaced by
a requirement that the project produce
research in the other discipline at a
level appropriate to present at the Beloit
College Spring Symposium. Thus the external
faculty member need not certify that this
is an application that they would continue
using after you've left Beloit, but they
must certify that the application (at
least as designed) would be able to produce
undergraduate research in their discipline
at the appropriate level.
- Scientific
Computation. This course applies skills
of computer science to solving problems
in the sciences. This course is not currently
scheduled to be taught, but if you are
particularly interested in it, you should
talk to your major advisor about it. In
some cases it may be possible to do a
special project involving scientific computation.
In
evaluating whether a project satisfies the
"one unit or credit" for the applications
programming requirement, the department
uses the FACS rules for units, whether we
are evaluating an internship, a special
project, or a research project. Specifically,
you need to perform at least 180 hours of
work for 1 unit, and 90 hours of work for
0.5 units of credit. In addition, the programming
effort involved in the project should be
at least 90 hours for 1 unit and at least
60 hours for 0.5 units. If, at the conclusion
of an applications project, the department
determines that the work involved, or programming
work involved, justifies only 1/2 unit of
the applications programming requirement,
you will need to take an additional 0.5
units in another Computer Science course,
which can be a special project. This would
be above and beyond the other major requirements.
Note that generally, a special project CS
390 cannot count towards the major requirements,
but this particular situation is an exception
to that rule.
|