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.
Prerequisites: Although there are no formal prerequisites, you should understand the material that is typically covered in high school algebra.
Course Webpage: The best source of information about this course is available at http://www.gac.edu/~mc27/2002S/ . There you will find a complete syllabus, course description, current homework and project assignments, and so on.
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 assignments, and formulating questions of your own.
Attendance, both physical and mental, is expected.
Homework: Homework will help you check your understanding of the reading and the classes. There is one assignment for each chapter, which will be due soon after we finish that chapter in class.
Homework solutions should be neatly written on notebook sized paper and handed in at the beginning of class on the day they are due. They will be graded for the accuracy of your solution and the quality of your explanations. Be sure to follow the homework guidelines we have provided.
We encourage you to work with other students on the homework provided that you do so in such a way that every one in your group learns the material. The most effective way to do this is to first discuss each problem as a group and then have each person work on the problem individually. When you're done (or stuck) compare your work and discuss it. Remember that doing the homework is how you learn the material and that you are not allowed to work cooperatively on tests.
If you do work with other students on the homework, we would like you to follow these guidelines:
There will be one or two projects that you will do in teams. Otherwise, we expect that you do your projects on your own.
The lab instructor will also be the one who grades the reports. When she grades the reports, she will evaluate the code for accuracy, efficiency, clarity, and style. Additionally, she will consider how well your report outlines the main problem of the lab, describes how your code fits together to solve this problem, and explains why your solution is a good one. Be sure to follow the Suggestions for clear reports in computer science courses we have provided.
Absences from class, late assignments, etc: Should you need to miss a class for any reason, 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 another student for the notes from that day, and make sure that you understand what was covered. It also means that if we had an assignment that we did in class that day, you will get a 0 for that assignment. If there is an assignment due that day, you should be sure to have someone hand it in or put it in your professor's departmental mailbox (in Olin 324). You do not need to explain why you missed a class unless there is a compelling reason to do so.
Late assignments: Chapter homework and project reports are due at the beginning of class on the day indicated. Late assignments will be penalized by one grade "notch" (such as A to A- or B+ to B) for each weekday late or fraction thereof. However, no late assignments will be accepted after graded assignments are handed back.
If you are too sick to complete an assignment on time, you will not be penalized. Simply write "late due to illness" at the top of the assignment, sign your name, and hand it in. Other circumstances will be evaluated on a case-by-case basis.
Tests: There will be two tests during the semester, both on evenings from 7:00-8:30 pm. The test dates are Tuesday, March 5 and Thursday, April 18. There will also be a final, the date of which will be announced when it has been scheduled by the registrar.
If you cannot take a test at the regularly scheduled time because you have some other academic obligation, please let your instructor know as soon as possible.
Honor: You are expected to work together in an honorable way in this course. This means that while you can discuss problems and their solutions, each of you should make a real effort to solve each problem by yourself, and you should give credit to any people or texts that helped you find solutions. Needless to say, you are expected to work completely by yourself on tests.
Cheating is not allowed in this course. If we find someone has cheated, we will take action ranging from flunking them on the assignment in question to flunking them on the entire course. We will also notify the Dean of Students.
Course grade:
| Projects | 30% |
| Chapter homework | 18% |
| Intra-term tests | 16% each |
| Final | 20% |
Accessibility: Please contact your professor during the first week of class if you have specific physical, psychiatric, or learning disabilities and require accommodations. We will do our best to facilitate the necessary arrangements. All discussions will remain confidential.