Course Overview
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:
- abstraction: capturing common patterns, hiding information, making specifications (contracts);
- modularity: expressing programs as the composition of mix-and-match parts;
- problem solving strategies: divide-conquer-glue, recursion, iteration;
- models: ways to understand how programs are executed (in this course, you'll learn the Java Execution Model (JEM) for this purpose);
You will get hands-on experience with these ideas by reading, modifying, debugging, designing, writing, and testing Java programs. Example programs will involve various graphical microworlds, text manipulation, Java graphics, and animations.
CS111 students must register for and attend a weekly laboratory. Problem solving and programming are skills 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, 114, and 117. Consult Choosing an Introductory CS Course online at http://cs.wellesley.edu/~cs/Curriculum/curriculum.html.
Prerequisite: None. No prior computer science background is
expected.
Distribution: Mathematical Modeling. Does not
satisfy laboratory requirement.
Unit: 1.0
Instructors and Teaching Assistants
Instructor | Office | Office Hours | |
---|---|---|---|
Lecturer: Franklyn Turbak |
SCI-E126 | fturbak@wellesley.edu | Mondays 4-6pm in SCI 257 Wednesdays 5-7pm in SCI 257 Friday 4-6pm in SCI 257 |
Lecturer: Brian Tjaden |
SCI-E106 | btjaden@wellesley.edu |
Mondays 9:30-11:30am Tuesdays 2:45-4:15pm |
Lab Instructor: Sohie Lee |
SCI-E127 | slee@wellesley.edu |
Tuesdays 10:30am-12noon Thursdays 10:30am-12noon |
Lab Instructor: Jean Herbst |
SCI-E129 | jherbst@wellesley.edu |
Mondays 4:00pm-5:00pm Tuesdays 3:00pm - 4:00pm Wednesdays 6:15pm - 7:15pm Thursdays 3:00pm - 4:00pm and by appointment |
We have several top-notch teaching assistants who will hold drop-in hours, help out in lab, and grade problem sets. Tutors are: Simona Boyadzhiyska, Kelsey Tempel, Johanna L Okerlund, Ann L Martel, Jessica Laughlin , Hana L Glasser, Emily L Erdman, and Michelle Ferreirae.
Drop-in tutoring hours will start on Sunday, Feb 3rd, 2013
Special drop-in schedule for March 24-29 (after Spring break)
Sun March 24 | Mon March 25 | Tue March 26 |
---|---|---|
NO DROP INS | 7-9 Jess | 6-8 Kelsey/Ann | NO DROP INS | 8-10 Johanna | 7-9 Simona | NO DROP INS | 9-11 Hana | 8-10 Emily/Michelle |
The usual drop-in schedule
Day | Time | Place | Tutor |
---|---|---|---|
Sunday | 6:00-8:00pm | E101 | Kelsey/Ann |
Sunday | 7:00-9:00pm | E101 | Simona |
Sunday | 8:00-10:00pm | E101 | Emily/Michelle |
Monday | 7:00-9:00pm | E101 | Jessica |
Monday | 8:00-10:00pm | E101 | Johanna |
Monday | 9:00-11:00pm | E101 | Hana |
Feel free to come to any 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.
Class Meetings
There are two 70-minute lectures each week, which will introduce the main content of the course.
- CS111 01 (Brian Tjaden) TF 9:50--11am in SCI E211
- CS111 02 (Franklyn Turbak) TF 11:10am--12:20pm in SCI E111
Each week there is also a mandatory 2-hour laboratory session
- CS111 L01 (Sohie Lee) Wed 8:30--10:20am in SCI E101
- CS111 L02 (Sohie Lee) Wed 10:30am--12:20pm in SCI E101
- CS111 L03 (Sohie Lee) Wed 2:15pm--4:00pm in SCI E101
- CS111 L05 (Jean Herbst) Wed 4:15PM--6:00pm in SCI E101
- CS111 L04 (Sohie Lee) Thur 8:30am--10:20am in SCI E101
Course Text and Reference Materials
Materials for Computer Science 111 may be found on the course web site http://cs.wellesley.edu/~cs111. Notes and example programs for most lectures may be found in the course schedule. Review materials will be posted during the semester on the CS111 Notes Page.
There is an optional textbook for CS111. A few readings will be assigned from the textbook, but these readings will be made available through the CS111-E-Reserve, which is simply a set of documents posted to the cs111-spring13 Google group.
The optional text for the course is
Programming and Problem Solving with Java, Second Edition,
written by Nell Dale and Chip Weems, and published by
Jones and Bartlett Publishers.
Students may also benefit from other good references. There are many
on-line Java tutorials and references. The definitive source is
http://www.java.com
.
Other valuable references are the many introductory Java textbooks that are available on the bookshelves in SCI 257 and SCI E125 (see below).
SCI 257 Bookshelves: The CS department has purchased a collection of books relevant to CS111 that are kept on the bookshelves in SCI 257.
SCI E125 Library: The CS department maintains a large collection of computer science books (including lots of introductory Java books) in the hardware lab (room SCI E125). 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.
Grading
Your final grade will be based on a weighted average of the following components:
Problem Sets | 40% |
Exam 1 (in class) | 15% |
Exam 2 (take home) | 25% |
Final Exam | 20% |
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.
Exams
There will be three exams, all open book and open notes: one in-class midterm (70 minutes), one take-home midterm, and a final exam (2.5 hours) during the regular exam period. Check the course schedule for scheduling and mark the dates in your calendars, as exam dates are not flexible.
Laboratory
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.
Homework
Almost weekly problem sets will help you develop a working knowledge of the concepts presented in class. When assignments are due, 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. In extenuating circumstances (e.g., sickness, personal crisis, family problems, religious holidays), you may request an extension. We will often require that an extension request be made on your behalf by your dean.
If you have not completed an assignment, you should still turn in your work for partial credit. You will learn techniques in lab for developing a program in stages, gradually solving more and more of a problem. If there is something that you cannot get to work, do the best you can and comment out code that does not compile. Including a description of your strategy and what is going wrong in the comments can result in some partial credit.
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 schedule.
Software
We will be using the DrJava development environment to create and compile Java programs on the Macintosh and the PC. We are using the Java SE Development Kit (JDK) version 6.0 (bizarrely also numbered 1.6). 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 Library & Technology Services (LTS) group on campus. Specifically, you need to be comfortable with Google Apps, a file-transfer program (Fetch on Macs, WinSCP on PCs), and a web browser (e.g., Safari, Internet Explorer, Firefox, or Chrome). If you have any questions about these applications, see the software for Macs or software for Windows websites.
Google Groups
We have created a Google Group, CS111 Spring13, and have added all students enrolled for the class as members. If you have not received a confirmation email, please let us know, so that we can add you. You can send emails to this group at the email address: cs111-spring13@wellesley.edu.You are encouraged to post questions or comments that are of general 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 the CS111 Spring13 group 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). The CS111 Spring13 group is also the repository for the CS111-E-Reserve, a set of documents posted before the beginning of the semester that are intended to be read during the semester.
Finding Help
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 us: the lecturer, lab instructors, or a TA. That's what we're here for!
Simple questions can often be answered via the CS111 Spring13 group. 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 CS111 Spring13 group.
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).
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:
- Drop-in teaching assistants tend to get the most questions near the end of their time slot. Try to arrive early so that you can ask questions in the first part of their shift.
- Just like you, drop-in teaching assistants have lots of work and very tight schedules. It is not reasonable to expect them to help you after their official tutoring hours are over.
- Teaching assistants tend to see less traffic far in advance of the problem set due date. Start your work early so that you can take advantage of all the available drop-in hours.
- Please sign the log book every time you get help from a teaching assistant. The log book is a record of how much demand there is for teaching assistants, and affects how many teaching assistants we can have in future semesters.
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 (PLTC). 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
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.