![]() |
CS111 Course Information |
CS111 is an introduction to the problem solving foundations of computer science. Computer science is the study of imperative (how to) knowledge, which is at the heart of any problem solving activity. Imperative knowledge is expressed via algorithms, which are descriptions of computational processes that can be encoded as programs written in a programming language. Programs communicate imperative knowledge between people; they can also be executed by computers.
In this course, you will learn big ideas about solving problems, developing algorithms, and organizing programs. These ideas include:
You will get hands-on experience with these ideas by reading, modifying, debugging, designing, writing, and testing programs. Example programs will involve graphics, user interfaces, and text manipulation.
CS111 students must register for and attend a weekly laboratory. Programming is skill best learned by doing.
The course uses the Java programming language to explore these ideas. Although you will learn a lot about Java along the way, our focus is on the big ideas. You will really be learning and practicing techniques for solving problems — techniques that apply to any programming language, and, indeed, to any discipline.
CS111 is required for students who wish to major or minor in computer science or elect more advanced courses in the field. Students can receive MM distribution credit for only one of 110, 111, 112, and 199. Consult "Choosing an Introductory CS Course" online at http://cs.wellesley.edu/~cs/Curriculum/whichCS1xx.html.
Prerequisite: None. No prior background in computers is expected.
Distribution: Mathematical Modeling. Does not satisfy laboratory
requirement.
Semester:Fall 2004
Unit: 1.0
|
|
|
|
|
Mark Sheldon |
|
|
|
T 2:30–4:00, Th 1:30–3, by appt. |
Franklyn Turbak |
|
|
|
M 3–5pm, W 4–6pm, F 3–5pm, by appt. (hours in red modified as of 9/08/06) |
Sohie Lee |
|
|
|
M 11:00am-12:20pm , Th 11:00am-12:20pm and by appt. (hours in red modified as of 12/01/06) |
There are four teaching assistants who will hold drop-in hours, help out in lab, and grade problem sets: Amy Dai, Zaza Kabayadondo, Ayla Solomon, Miranda Stumpf.
CS111 drop-in teaching assistants are available in E101 on the following nights and times:
Day |
Time |
Room |
Tutor |
Tuesday |
7:00–9:00 pm |
SCI E101 |
Ayla |
Wednesday |
7:00–9:00 pm |
SCI E101 |
Zaza |
Wednesday |
8:00–10:00 pm |
SCI E101 |
Amy |
Thursday |
8:00–10:00 pm |
SCI E101 |
Miranda |
Go to the lab page to see which TA is helping in which lab.
Feel free to come to either of us, or any of the TAs, for help. Faculty meetings and seminars sometimes conflict with scheduled office hours. We will keep you informed each week about any changes in our office hours.
There are two 70-minute lectures each week, which will introduce the main content of the course. Each week there is also a mandatory 2-hour laboratory session.
This semester, both lectures are being team taught by Franklyn Turbak and Mark Sheldon. Each of us will give half the lectures.
|
|
9:50am - 11:00am |
|
11:10am - 12:20pm |
|
(SCI E101) |
|
|
Wednesday 8:30am - 10:20am |
|
|
Wednesday 10:30am - 12:20pm |
|
|
Thursday 1:30pm - 3:20pm |
|
|
There is no textbook for this class. Materials for Computer Science 111 may be found on the course web site http://cs.wellesley.edu/~cs111. Transparencies and example programs for most lectures may be found in the course syllabus. Review materials will be posted during the semester on the CS111 Notes Page. You are also encouraged to consult the text from the Fall'01 version of CS111. Although some of the conventions, emphasis, and terminology are different between the Fall'01 course and this semester, most of the basic concepts are the same, and the Fall'01 text is a valuable reference. Other valuable references are the many introductory Java textbooks that are available on the bookshelves in SCI E101 and SCI 173 (see below).
E101 Library: The CS department has purchased a collection of books relevant to CS111 and CS110 that are kept in the bookshelves near the front door of E101.
173 Library: The CS department maintains a large collection of computer science books (including lots of introductory Java books) in the CS Lounge (Room SCI 173), whose windows look into the mini-focus. It's a good idea to become familiar with this room and the book collection early on.
Science Center Library: Many Java programming books can be borrowed from the Science Center library.
Problem Sets |
40%
|
Exam 1 (in class) |
10%
|
Exam 2 (take home) |
25%
|
Final Exam (self-scheduled) |
20%
|
Participation |
5%
|
At the end of the semester, we will compute a weighted average for each student and assign letter grades. In general, the mapping from numerical score to letter grades looks like this: >= 93.33 is an A, >= 90.00 is an A-, >= 86.67 is a B+, >= 83.33 is a B, >= 80.00 is a B-. >= 76.67 is a C+, >= 73.33 is a C, >= 70.00 is a C-, >= 60.00 is a D and < 60.00 is an F.
Depending on the overall performance of the class, we may adjust this mapping.
The above information is intended to tell you how we grade.
It is not intended to instill in you a preoccupation with point accumulation.
We encourage you to treat points in this class as you would
Monopoly money. If you focus on learning the material,
the grade will normally take care of itself.
There will be three exams, all open book and open notes:
one in-class midterm (70 minutes), one take-home midterm
(11 days, spanning two full weekends),
and a self-scheduled final exam (2.5 hours) during the
regular exam period. Check the course syllabus
for scheduling and mark the dates in your calendars. If you have any
conflicts regarding the exam dates, please contact your instructor
as soon as possible. The mandatory, weekly, 2-hour laboratory sessions consist of
additional instruction and both written and online problem-solving
exercises. The exercises provide hands-on practice with new material
and with problems similar to the weekly homework assignments. In lab,
students work at their own pace and can get help from the lab
instructor and a teaching assistant. Although lab problems are
similar to homework problem, lab is
not a place to work on homework.
Almost weekly problem sets will help you develop a working
knowledge of the concepts presented in class. Assigments are due at
the start of class on their due date. By that
time, you should submit both (1) a hardcopy of your assignment and (2)
a softcopy (i.e., electronic copy) of all your code to the appropriate
drop folder. More detailed instructions for submitting assignments
are included in each assignment. Instructions for turning in each assignment will be included with
the assignment. We ask you to keep track of the time you spend on each
problem to help us design problem sets for future semesters. Each
problem set will come with a header sheet on which you can report the
times you spent on the problems.
The amount of time required to complete each assignment varies
from student to student and from assignment to assignment.
For many students, most assignments take roughly 10 hours.
In order for us to grade and return assignments promptly, we cannot
accept late assignments. If you have not
completed an assignment, you should still turn in whatever you have
for partial credit. In extenuating circumstances (e.g., sickness,
personal crisis, family problems, religious holidays), you may
request an extension. Many of the assignments will be challenging.
Keep in mind that programming often consumes more time than you think
it will. Start your problem sets early so that you have time to think
about the problems and ask questions if you hit an impasse. Waiting
until the last minute is a recipe for disaster. Also, keep in mind that computers do break down and that, outside
of laboratory hours, you may have to compete with other students for a
computer. Plan accordingly (and back up your work often)! Assignments are listed on the course syllabus. We will be using the DrJava development
environment to create and compile Java programs on
the Macintosh and the PC. To run applets, we will use
the Safari web browser on the Macintosh and the
Firefox web browser on the PC. (We have had trouble
running our applets on Internet explorer.)
We are using the Java SE Development Kit (JDK)
version 5.0 (bizarrely also numbered 1.5).
This software is installed on most public computers on campus.
If you would like to program in this environment on your own computer,
we have some helpful information
available about computing at
home. Coursework for this class will require you to use
computing resources provided by the Information Services (IS) group on
campus. Specifically, you need to be comfortable with FirstClass,
a file-transfer program (Fetch on Macs, WinSCP on PCs),
and a web browser (e.g., Safari or Internet Explorer on the Mac,
Firefox or Internet Explorer on PCs).
If you have any questions about these applications, see
the
User Services web pages.
Exams
Laboratory
Homework
Software
The class conference on FirstClass is "Wellesley Conferences/Courses/CS/CS111-F06". There are 2 folders of interest in the conference: Announcements and Q&A. You should read both of these regularly.
Announcements
In this folder,
the course staff will post important course annoucements about topics
ranging from help with homework problems to time-changes of exams and
office hours.
Q&A
You are encouraged to
post questions or comments in the Q&A folder that are of
genearl interest to people in the course. Also, you are encouraged to
respond to questions posted by other students. In addition, the
instructors and TAs will read this folder on a regular basis and post
answers to questions found here. This is a good place to find people
to join a study group or ask questions about the course or about
homework (please do not post any Java code here — all homework
discussions should be at a high-level English description).
If you have any questions at all about the class (whether big or small, whether on labs, problem sets, lectures, reading, or whatever) please contact one of the lecturers, lab instructors or TAs. That's what we're here for!
Simple questions can often be answered via the FirstClass conference Q&A folder or via email to an instructor. Questions of general interest (e.g. clarifying ambiguities in an assignment, wondering why posted programs don't work as expected) should be posted to the Q&A folder.
If you have a complex question or need help in understanding the material, you are encouraged to see the instructors or a CS111 teaching assistant. The best time to see us in person is during our scheduled office hours and drop-in hours (listed at the top of this document). If these times are not convenient, we can schedule an appointment for some other time. You can schedule an appointment in person, via phone, or via email.
Drop-in teaching assistants are available to answer your questions during certain hours. The names and schedules of the drop-in teaching assistants are given above.
Some hints on working with teaching assistants:
If you need more personalized attention than a drop-in teaching assistant can provide, you can get a one-on-one tutor from the Pforzheimer Learning and Teaching Center (LTC). This service is confidential, free of charge, and no stigma is attached to it. It is a wonderful way to get additional help --- please take advantage of this program if you think you might need it!
Finally, when looking for help, don't overlook other students. Get to know your classmates early in the term so that you can help each other out!
Students with disabilities who are taking this class and who need disability-related accomodations are encouraged to work with Barbara Boger, Director of Programs, the Learning and Teaching Center (for learning or attention disabilities), or Jim Wice, Director of Disability Services (for physical disabilities), to arrange accomodations. Their offices are in Clapp Library.