|Class Meetings||Lab Meetings|
|Tue/Thu @ 12:00 - 1:15 p.m. in SP 309||Mon @ 3:10 - 5:10 p.m. in SP 309|
The course covers the following topics:
To facilitate the writing and running of programs, this course employs
the drScheme software, which is installed on all of the lab computers
and (used to be) freely available from drscheme.org.
The newest version is called drRacket and is available from racket-lang.org.
The textbook for this course
is available online---for free.
People use computers to solve problems. To be effective, programmers
must thoroughly understand not only the problem to be solved, but also
the interesting relationship between the programmer, the program
and the computer. Investigating this relationship raises several
unexpected, but important issues. For example, what sort of
language do we want to use to "communicate" with a computer? What
sorts of problems can computers be expected to solve? What are the
basic elements of computation? What concepts or constructions can
facilitate the task of programming a computer? This course addresses
these and other important issues by having students directly interact
with computers from the very beginning. The lectures involve the
exploration of topics not only by discussing them, but also by
regularly putting ideas to the test in live computer sessions. (The
computer code seen during lecture is regularly posted on the course web
site.) The course includes weekly lab sessions in which students
get regular hands-on experience with the issues being addressed in the
lectures. These lab sessions also serve as a kind of warm-up for the
weekly programming assignments, in which students explore issues in
Nuts and Bolts
Prof. Jose Guerra, SC 016 (That's Sanders Classroom, not SP.) Prof. Guerra's Office Hours Coming Soon Text The textbook
for this course will be provided online---for free.
You may wish to print it out and put it into a loose-leaf
binder. This would also be good for holding lab and assignment
solutions if you want to print them out.
Lectures The lectures will augment
the material covered in the online textbook by
providing in-depth examples and analyses. The material
covered each week builds on what was covered in prior
weeks. As such, it is essential that you attend
every lecture---and keep up with the reading assignments.
Labs (and Quizzes)
This course has weekly lab sessions held in
SP 309. The lab computers use the Linux operating
system and have the drScheme/drRacket software that we will be using throughout
the semester. Even if you have the drScheme/drRacket software installed on
your own computer, you must do your lab work in the lab on one of the
lab computers during the lab time. Each lab session should be viewed
as a warm-up to prepare you for that week's forthcoming
assignment. You must do your own work; so asking one
of your classmates for assistance is not permitted. If you get stuck,
raise your hand to ask for help. When you
are finished a lab, simply ask the professor or one of the coaches to
verify that you have done the work and they will record your grade on
a scale from 0 (no work) to 3 (well done).
Each lab, after the first week or so, will begin with a short quiz that together will serve as warm-ups for the in-class exams.
Seating will be randomized for each quiz & lab.
Exams There will be two in-class exams: one
shortly before or after fall break, and another toward the end of
the semester. They will be paper-n-pencil exams. You may not use any
computers or calculators or other devices: just a pencil. You may
bring to each exam a single 8.5"-by-11" piece of paper with whatever
notes you want to write on it that you may consult during the exam.
(Font size no smaller than 8pt!)
No final exam for this course!
Assignments Starting the second week of classes
there will typically be one assignment
each week. Most assignments will be programming assignments. Unless explicitly authorized for a particular assignment,
NOT allowed on assignments. If you run into
difficulty with an assignment, you should contact one of the student
coaches during their office hours or
Prof. Guerra during his office hours. However,
there will typically be one or more problems on each assignment that will
be "help free" (i.e., no assistance by coaches or Prof. Guerra until
after the assignment has been turned in). All
programming assignments must be submitted electronically. As
you will find out, submitting assignments electronically is easy to
do from the Lab computers. If you want to do a programming
assignment on your own computer (see "Software" below), email yourself
of your assignment files, then use a Lab computer to read your email
and download the files, then submit as usual. More details will be
provided in the near future about how to submit an assignment
electronically. You must also turn in a paper printout of your
The final programming assignment will be a two-week project that will count the same as two ordinary assignments. It will be due towards the end of the study period.
Coaches' Office Hours Office Hours Software The computers in the lab are set up for
you to use the drScheme/drRacket software. If you'd like to set up drRacket on
your own computer, then go
to download the software.
Each student will be provided with a CS computer account that
is distinct from your Vassar computer account. The drScheme/drRacket
software that is used in this course is automatically available
on your CS computer account. More details will be provided during
your first programming lab.
Based on Labs (____), Quizzes (____), Assignments (____),
First Exam (____), Second Exam (____), and Final Exam (____).
Note: Although higher numerical scores will necessarily receive the same or higher letter grades, I do not feel bound to follow the frequently used 90/80/70/60 cut-offs.
Academic Integrity Don't cheat! Read
Going to the Source: A Guide to Academic Integrity and Attribution at Vassar College. The guidelines that apply to writing in general apply
equally well to the writing of computer programs. Copying someone
else's code without attribution amounts to plagiarism! School policy dictates that instructors must report all
suspected incidents of cheating to their department chair. Did
you read the preceding sentence?! Please don't put yourself or your
professor in that position. In this course, unless explicitly stated
otherwise, collaboration is not allowed on labs or assignments; and it
is never allowed on exams. Academic Accommodations
Academic accommodations are available for students registered with the
Office for Accessibility and Educational Opportunity (AEO) . Students
in need of disability (ADA/504) accommodations should schedule an
appointment with me early in the semester to discuss any
accommodations for this course that have been approved by the Office
for Accessibility and Educational Opportunity, as indicated in your
AEO accommodation letter.
Title 9 Note
Vassar College statement on providing a
safe learning environment.
Caution! This course starts out with basic
concepts, but each week the online course notes, lectures, labs and
assignments build new ideas on top of what was seen previously.
Therefore, it is extremely important that you attend all lectures,
keep up with the reading, and do all labs and assignments in a timely
fashion. Historically, those students who experienced difficulty with
CMPU-101 got into trouble by ignoring this advice. If you find
yourself having trouble, by all means, come to my office hours! I'm
more than happy to assist!
The following calendar of lecture topics will be filled out during
the course of the semester. Typical calendar entries will also
include links to the code we looked at in class that day, as well
as information about labs and assignments.
3:10 - 5:10 p.m.
12 - 1:15 p.m.
12 - 1:15 p.m.
Welcome and Introduction.
Chapters 1-3 in the Textbook.
Play Yahtzee online
The course covers the following topics:
To facilitate the writing and running of programs, this course employs the drScheme software, which is installed on all of the lab computers and (used to be) freely available from drscheme.org. The newest version is called drRacket and is available from racket-lang.org.
The textbook for this course is available online---for free.