CS 151: Structured Programming and Elementary Algorithms Syllabus / Home Page
This info on the Web: http://www.cs.colby.edu/courses/cs151
Special note: This syllabus
is a living document, and subject to change as the semester progresses.
The online version will always be considered the official syllabus, but
more than that, the online version provides useful links
to other important class material, information, and resources.
| Professor: (lecture) |
Marc L. Smith
(
Marc's schedule
) |
| Office: |
416A Mudd Hall |
| Phone: |
(872-)3672 |
| Email: |
mlsmith@colby.edu
|
| Office Hours: |
MTWR 2:30-4:00 |
| Professor: (lab) |
Randolph M. Jones
(Randy's schedule) |
| Office: |
416B Mudd Hall |
| Phone: |
(872-)3831 |
| Email: |
rjones@colby.edu
|
| Office Hours: |
W 10-11; Th 10-11; or Drop by for short questions; or Make an appointment for longer questions |
We know, we know, Smith and Jones...
The intent of this course is to teach you how to program computers. As part of this course, you will learn a modern programming language, called Java. However, that will in some ways be incidental to the primary purpose of this course. By the time you finish this course, we hope you will have developed the skills to:
I hope to cover, not necessarily in this order, most or all of the following general topics during the course:
The course will include a variety of reading assignments, quizzes, exams, and programming assignments.
You will be asked to complete two types of programming assignments in the lab: laboratory programs and test programs. Laboratory programs count toward 15% of your final grade. There will be two test programs that comprise 40% of your final grade. Test programs are essentially take-home exams, with no assistance permitted. All programs assigned during the semester should be completed following the guidelines in the Academic Honesty Guidelines for CS151 .
There will be no laboratory programs accepted after the due date, but in computing your grade, the lowest score on submitted assignments will be dropped. In contrast, test programs will be accepted late, but for each day a test program is late, there will be a 10% penalty.
In-class quizzes and a midterm exam together comprise 20% of your final
grade. Quizzes will take only a portion of class time (perhaps 20 minutes),
while the midterm will take an entire class period. The final exam, taken
as scheduled during finals week, counts toward 25% of your final grade.
One aspect of your final grade transcends the adding up of percentages:
class participation. By extension, class participation requires both keeping
up with the reading assignments and your regular attendance. Participation
occurs during class discussions, to be sure, but this semester, we're introducing
another opportunity for participation: an online class discussion forum.
You are all members of the forum for this class (use your colby0 userid
and password), and can login
here
, from the links
section of this page, or from
Marc's home page
. I strongly encourage you to
take full advantage of this opportunity to communicate with your instructors
and fellow classmates on all topics related to this class.
Each score you receive will be normalized to a 100 point scale. These will not map directly to letter grades until everything is tallied at the end of the semester. However, as a rough guide, I generally consider 90 points or more to be ``A'' work, 80 points or more to be ``B'' work, 70 points or more to be ``C'' work, and 60 points or more to be ``D'' work. Pluses and minuses will be added at the lecture and lab instructors' mutual discretion.
In my grading policy, if I feel you are doing "just enought to get by,"
but still managing to meet the strict interpretation of the assigned requirements,
then you are doing roughly A- work. I reserve A's for people who impress
me by showing a thorough command of the subject material. You can demonstrate
this to me through your enthusiastic involvement in class, asking insightful
questions in and out of class, and by investing extra effort or coming up
with especially creative approaches to the assignments.
The lab instructor will set the grading policy for your laboratory projects.
This is particularly important in this course. All the concepts we will cover build on each other. If you find yourself stuck trying to understand something, it will only make catching up later that much worse. A former faculty member likened this class to a cruise ship. "If you stay on board, it can be quite pleasant. But if you fall overboard, you have to yell for help quickly, while we can still send back a lifeboat."
So take advantage of your instructors (and your fellow students and your
teaching assistants). Ask questions in and out of class. I'll try to
make the material as easy to digest as possible, but I'll need help identifying
the things that are confusing you. But also note that you also
won't know what you are confused about unless you keep up with the assigned
work.
In many ways, the projects and lab sessions are the most important parts of this course. It is very difficult to learn computer programming without lots of practice. Although the lectures, reading assignments, quizzes, and exams will allow you to build up background knowledge, you will ultimately learn the most from putting all this knowledge into action by solving problems and creating and debugging programs for the programming assignments.
Programming assignments will be handed out, collected, and returned during
your lab section. Generally, you will have one week to complete each
laboratory program and two or three weeks to complete each of the two
test programs. The lab instructor will set the specific policies regarding
late programming assignments.
In all cases, you must give credit to any source (like a written work or help from some individual) that you use to help complete an assignment. Again, this is similar to writing an English paper; if you use a quote or material from someone else, you have to give credit where credit is due. Otherwise you are inappropriately plagiarizing or borrowing ideas.
The lab instructor will set the specific policies regarding cheating on the laboratory assignments.
Academic Honesty as it applies to non-programming assignments is outlined in the Student Handbook .
For programming assignments in CS151, academic honesty is interpreted in very specific ways. When a program is assigned, your instructor will identify it as a "practice," "test," "laboratory," or "team" program. Academic Honesty applies differently to each with respect to collaboration or assistance from anyone other than the TAs or instructors:
Practice Programs. These are provided to help you gain an understanding of a topic, and are not graded. Guideline: Help on these programs is unrestricted.
Test Programs. Any assignment designated as a test program is to be treated exactly as a take-home, open-book test. You are allowed to read your textbook, class notes, and any other source approved by your instructor. You may not consult anyone other than your instructor. The instructor encourages the asking of questions, but reserves the right not to answer, just as you would expect during an exam. Guideline: Any work that is not your own is considered a violation of these guidelines.
Laboratory Programs. Laboratory programs are expected to be the work of the individual student, designed and coded by him or her alone. Help locating errors is allowed, but a student may only receive help in correcting errors of syntax; help in correcting errors of logic is strictly forbidden. Guideline: Assistance from anyone other than the TAs or instructors in the design or coding of program logic will be considered a violation of these guidelines.
Team Programs. Team programs are laboratory or test programs to be worked on in teams of two or more students. You are allowed to discuss team programs with your partners, but work with others is otherwise restricted by the appropriate rules above. Guideline: Any work that is not the work of your team is considered a violation of these guidelines.
If you do not understand how academic honesty applies to a particular assignment, consult your instructor.
Students should be aware of the Code of Ethics for Information Technology at Colby College . Violations (including uninvited access to private information and malicious tampering or theft of computer equipment or software) are subject to disciplinary action. Guideline: To protect your work dispose of printouts and diskettes carefully, and avoid leaving your programs on hard disks in labs and other public storage areas.
The Department of Computer Science takes academic honesty seriously. Violations are easy to identify and will be dealt with promptly.