Everyone needs to understand the ideas behind computing technology, and many people can use programming and
other computer science knowledge to advance their work in science, business, the humanities, and the arts.
Whether you want a one-course experience or a computer science minor, we have a set of courses
that will suit your needs.
(Most sets of courses below include CSCI 235, Programming I.
If you have prior programming experience, you may be able to place out of CSCI 235, in which
case each n-course experience becomes an (n-1)-course experience.)
Do you want to learn some programming or computer science but can commit the time only
for one course?
Here are your options.
(Don't let the 200-level designations intimidate you.
These are all for beginners. That's how we do things in the science division.)
CSCI 215. Web Design and Programming. This is a two-hour introduction to
putting together web pages, which will teach you a little programming along the way.
Note that this is not part of the computer science major---it's designed for the general public.
CSCI 231. Introduction to Computer Science Concepts. This is a non-programming
course that introduces the big ideas in the field of computer science.
It also is for non-majors, and it is a gen ed course.
CSCI 235. Programming I: Problem Solving.
This is our main introduction to programming.
It assumes no prior programming experience.
If the skill of programming is what you're interested in, this is the place to start.
CSCI 243. Discrete Mathematics and Functional Programming.
This course is specially geared to the mathematically minded---though you don't so much
need to love numbers but rather formal reasoning.
This course also teaches programming without any assumption of prior experience,
specifically by showing the mathematical foundation of programming.
In the past we have experimented in introductory programming courses
specialized for science majors or engineering majors.
We could bring these back with sufficient demand.
Inquire if interested.
If you are interested in attaining a basic competence in programming and retaining it to put it towards
practical ends, then the two-course sequence
CSCI 235 and 245 (Programming I and II) is the right way to go.
Programming II completes the core set of programming topics, gives students crucial programming
and design experience, and abridges many of the ideas in the mid-level computer science
Other appropriate pairings include:
The gentle programming combo: CSCI 215 and CSCI 235.
This isn't as robust as taking Programming II, but it will provide a semester and a half
of basic programming experience and equip you to make simple interactive websites.
The theory combo: CSCI 231 (Intro to CSCI Concepts) and CSCI 243 (Discrete Math
and Functional Programming).
This two-pack is not as heavy on the programming but is big on ideas.
Any set of three computer science courses should include the introductory programming
sequence, CSCI 235 and 245 (Programming I and II).
Then you should consider what the best third course would be for you.
If you are mathematically inclined, then CSCI 243 (Discrete Math and Functional Programming) would provide
the formal foundations for computer science (and an alternate look at programming).
If you like thinking about lower-level aspects of computer systems, then
you would enjoy CSCI 351 (Intro to Computer Systems).
Do you want to put your programming skills toward a big project? Then
CSCI 335 (Software Development) is what you're looking for.
(Technically this has CSCI 243 as a prerequisite, but in some circumstances that can be waived for
CSCI 345 (Data Structures and Algorithms) is a central course in the computer science program,
but there are three courses a student must take to be ready for it.
Accordingly, the best four-course CSCI sequence is
CSCI 235 (Programming I), CSCI 243 (Discrete Math and Functional Programming),
CSCI 245 (Programming II), and CSCI 345 (Data Structures and Algorithms).
Five courses make 20 hours, which is an "official" minor in CSCI.
A well-planned minor will include the four-course experience above.
There are several options for a fifth course, but many students will find one of these three appropriate:
CSCI 445. Analysis of Algorithms.
Highly recommended for math majors and econ majors who are minoring in CSCI.
CSCI 335. Software Development.
Highly recommended for business majors who are minoring in CSCI.
Note that some students who have completed a CSCI minor including this course have gone on to
programming or software development careers.
CSCI 384. Computational Linguistics.
Highly recommended for majors from the humanities.
If you want to study CSCI further but are already committed to another major, talk to a
CSCI faculty member about planning a second major in computer science.