This course is an introduction to computer science with an emphasis on abstraction. We will study computational processes; you will learn how to describe a process by using a procedure and how to use general categories of data in terms of their operational properties.
In addition, we will develop critical thinking skills by analyzing procedures and the processes they generate. You will learn how the form of a procedure affects the computational process it generates, including the resource consumption of that process. Also, you will learn how to prove that a procedure has the desired effect, and why such proofs are not always possible.
Course webpage: The course webpage is
www.gac.edu/~mc27/2009F. There you will find a complete schedule,
homework assignments, suggestions on how to improve your grade, and so
on.
Prerequisites: Although there are no formal prerequisites, you should understand the material that is typically covered in high school algebra.
Text: Concrete Abstractions: An Introduction to Computer Science, by Max Hailperin, Barbara Kaiser, and Karl Knight.
Classes: Classes will be used for lectures, problem solving, discussions, and other fun activities. Labs will be used for working on projects. You should prepare for each of these by doing the reading, thinking about the problems in the text or project assignment, and formulating questions of your own. Attendance, both physical and mental, is required.
Labs: Lab sessions are your chance to work on the projects
and get expert help. You should be sure to read the lab
assignment before coming to lab. If you come prepared with
questions, you will be able to complete the projects without too
many late nights filled with frustration. Attendance in lab is
required; if you miss more than two labs for reasons other than
illness, I reserve
Homework: Chapter homework will help check your
understanding of the reading and the classes. Assignments are posted on
the course webpage and are due soon after the end of each
chapter.
Solutions to these problems should be neatly written on notebook-sized
paper and will be graded for the accuracy of your solution and
the quality of your explanations. Be sure to see the guidelines for writing up homework
assignments.
Projects: You will have seven programming projects
throughout the semester; for five of these, you will need to write a
report that presents your solution to the project's main problem.
Much, but not all, of the work for these projects can be done during
the
lab time. During this time, you will be able to ask the lab instructor
(San Skulrattanakulchai) for help or guidance.
The lab instructor will also be the person who grades the reports.
Late Assignments, Absences from class, etc: Should you need
to
miss a class because of an illness or a personal emergency, you are
still responsible for the material covered in that class. This means
that you will need to make sure that you understand the reading for
that
day, that you should ask a friend for the notes from that day, and make
sure that you understand what was covered. If there is an assignment
due
that day, you should be sure to have a friend hand it in or put it in
my
departmental mailbox (in Olin 324). You do not need to tell me why you
missed a class unless there is a compelling reason for me to
know. If you miss more than six classes/labs I may lower your grade by as much as one letter.
Chapter homework and project reports need to be handed in on the day they're due. Generally, you should hand them in at the beginning of class. Otherwise, you need to make sure I get them before I leave for the day. Under no circumstances should you send them to me through the POs (I'll throw them away with my lunch dishes), nor should you put them in the grey box outside my office door (I use that for leftover handouts). In case you are sick or have some sort of emergency, you may hand in two of the 15 assignments (10 homeworks + 5 projects) late without penalty, as long as they are no more than one week late and as long as I have not handed out solutions or returned the graded homeworks. Any more late assignments will be heavily penalized.
Tests: We will have two tests at 7:00 pm in the
evening. The test dates are will be announced soon, on the course
homepage. If you cannot take a test at the regularly scheduled time
because you have some other academic obligation, please let me know as
soon as possible.
Honor: In this course, you are expected to to adhere to the highest standards of academic honesty, to uphold the Gustavus Honor Code and to abide by the Academic Honesty Policy. Copies of these can be found in Academic Bulletin and in the Gustavus Guide.
On homework, you should make a real effort to solve each
problem
by yourself, although you can and should discuss problems
and their
solutions with your classmates after
you've made this effort. You should give credit to any people or
texts that
helped you find solutions. On tests, you are expected to
work completely by yourself.
You will be expected to sign the honor pledge on every homework,
project, and exam.
Course grade:
| Projects | 20% |
| Chapter homework | 20% |
| Tests | 60% |
Accessibility: Please contact me during the first week of class if you have specific physical, psychiatric, or learning disabilities and require accommodations. All discussions will remain confidential. You can provide documentation of your disability to the Advising Center (204 Johnson Student Union) or call Laurie Bickett (x7027).