-----------------------------------------------------------------

Colby CS 151: Structured Programming and Elementary Algorithms
Colby College , Fall 2002

Syllabus / Home Page

-----------------------------------------------------------------

This info on the Web: http://www.cs.colby.edu/courses/cs151

Lecture: MWF 11:00 - 11:50 a.m., Lovejoy 303
Lab Section A: W 1:00 - 2:30 p.m., Olin 323
Lab Section B: W 2:30 - 4:00 p.m., Olin 323

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...


-----------------------------------------------------------------

Links to other pages for this class:

-----------------------------------------------------------------

Course Content

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:

From the above list, it is hopefully apparent that the main point of this course is to teach you the analytical skills and programming conventions the will make you into capable computer programmers, and eventually competent computer scientists. Your day-to-day activities will focus on learning the Java programming language, but you should view that mostly as a tool that helps you learn generally how to make computers do what you want them to do.

I hope to cover, not necessarily in this order, most or all of the following general topics during the course:

Evaluation

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.

Grading

I will compute final grades for the course using the following proportions:

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.

Your daily duties

To prepare for each class, I expect you to do the following:

Show up

I expect you to attend every class. As a class member, your regular attendance is an individual and a collective obligation. In-class discussion and questions are an essential feature of this course that only you can provide. Your absence can disrupt the continuity of the class, my effectiveness in presenting the ideas I want to cover, and the group's responsiveness to those ideas. Therefore, unexcused absences will adversely affect your course grade. Excessive absenteeism will result in your failing the course (and it doesn't take much to count as excessive). See your college handbook for a definition of excused absences. You are responsible for knowing all the information presented in class, whether or not you are there.

Be prepared

Before each class, you must review the material from the previous lecture. You should write down and bring to class any questions you have on the material, as well as questions on the current laboratory assignment. We will devote a portion of each class to answering those questions. Also, before each class, you should read (but not necessarily completely understand) the portion of the textbook pertaining to that day's material. In addition to helping you learn the course subject matter, this should help you develop general skills for reading and understanding written materials. Discussion should be an important part of each class, and you will not be able to participate effectively if you have not prepared. During discussions, I do not expect you always to have the "right answers", but I do expect you to have thoughtful contributions, and to try to give reasonable justifications for your answers.

Be an active learner

This is the first of many times that I will ask you to come see your instructors any time you have questions. Whether you are aware of it or not, one of the reasons you came to Colby is because we have relatively small classes, and faculty who are willing to take the time to help you learn when you ask. It frustrates us when we miss opportunities to pull students out of confusion.

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.

More about Programming Assignments

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.

A Common Confusion

Students often have some confusion about what might or might not be considered "cheating" in a computer programming class. In general, we want you to take advantage of your instructors, teaching assistants, and fellow students in working out solutions to assignments. However, we also need to make sure that you are actually learning, and not simply using all of these resources as a crutch. As with writing a paper for an English class, there is a point at which working together becomes plagiarism. As a rule of thumb, if you find yourself turning in work that looks substantially like the work of someone else, you should seriously examine whether you have crossed the line. If you have any doubts, talk to your instructors before turning in the assignment.

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 Guidelines for CS151

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.

-----------------------------------------------------------------