Instructor: Brian Tjaden
Office: SCI E106
Email: btjaden -at- wellesley.edu
Office Hours: Mondays 1:00pm - 2:30pm; Thursdays 10:00am - 12:00pm
Lab Instructor: Sohie Lee
Office: SCI E127
Email: slee -at- wellesley.edu
Office Hours: Mondays 10:00-11:30am; Thursdays 12:30pm-2:30pm
Teaching Assistants: Cassie McLeod and Sha Lu
CS230 drop-in teaching assistants are available in the Microfocus on the following nights and times:
| Day | Time | Room | T.A. |
|---|---|---|---|
| Sunday | 8:00–10:00pm | Microfocus | Sha |
| Wednesday | 8:00–10:00pm | Microfocus | Cassie |
CS230 focuses on four "big ideas":
We will use Java as the language for describing implementations of these structures and their application.
The prerequisite for CS230 is CS111, Computer Programming and Problem Solving. Students with significant programming experience (including knowledge of Java) who have not taken CS111 may take the course with the permission of the instructor.
There are two 70-minute lectures each week that will introduce the main content of the course. Every student is also required to attend one 110-minute lab each week. Lab work will include exercises to review and reinforce the lecture material and to develop general programming, testing and debugging skills. The labs will also provide further opportunity to ask questions about course material and discuss homework assignments.
Lectures are held on Mondays and Thursdays at 2:50-4:00pm in SCI E111. Labs are held on Wednesdays at 10:30am-12:20pm and at 6:00pm-7:50pm in SCI S160A.
There will be weekly assignments in which you will write Java programs that emphasize concepts discussed in class. Many of the assignments will be challenging. Keep in mind that programming often consumes more time than you expect. Start your assignments early! This will give you time to think about the problems and ask questions if you hit an impasse.
All assignments are due in class on the advertised due date. You should turn in both a "hard" (paper) copy of your assignment and a "soft" (electronic) copy of any programs from the assignment. The assignments will provide instructions on how to drop off your electronic copy.
Lab exercises will be distributed in the Wednesday labs. Some or all of these exercises will be completed during the scheduled lab time.
During the last few weeks of the semester, you will work on an extended, individualized programming project that you will design and build from scratch. After choosing an interesting application or problem, you will first build a skeleton of the object classes, methods, abstract data types and user interface needed for your application, and then fill in the details to create a fully working implementation. Each student will give a short presentation of her final project during the last week of classes. Guidelines for the final project will be posted mid-semester.
Turning in assignments on time makes it easier to keep on track with the course and to turn in the next assignment on time. We will use the following policy:
An assignment due on a particular day will be accepted at the beginning of the class on that day. No late work will be accepted unless there are extenuating circumstances (e.g., sickness, personal crisis, family problems). In this case you may request an extension before the due date.The softcopy submission will be a dated file. If the formal solutions are distributed before you turn in a late assignment, you are bound by the Honor Code not to examine these solutions.
We believe that collaboration fosters a healthy and enjoyable educational environment. For this reason, we encourage you to talk with other students about the course material and to form study groups.
Because the programming assignments in this course are challenging, you will be allowed on any assignment to form a two-person "team" with a partner. The two team members must work closely together on the assignment and turn in a single hard- and soft-copy of the assignment for the team. The grade received on such a submission will be given to both team members.
Team efforts on assignments are subject to the following ground rules:
The fact that team members have to program together means that you need to carefully consider a potential partner's schedule before forming a team. You cannot be a team if you cannot find large chunks of time to spend at a computer together!
Unless otherwise instructed, teams are allowed to discuss problem sets with other teams and exchange ideas about how to solve them. However, there is a thin line between collaboration and plagiarizing the work of others. Therefore, we require that each (one-person or two-person) team must compose its own solutions to each assignment. In particular,
You must compose your own solution to each assignment and lab problem. You may discuss strategies for approaching the programming problems with your classmates and may receive general debugging advice from them, but you are required to write and debug all of your code. Furthermore, you should never look at another student's code.For example, it is OK to borrow code from a textbook, from materials discussed in class, and from other sources as long as you give proper credit. However it is unacceptable and constitutes a violation of the Honor Code (1) to write a program together (with someone not part of your team) and turn in two copies of the same program, (2) to copy code written by your classmates, (3) to read another student's or team's code or (4) to view assignments, exams and solutions from previous terms of CS230.
In keeping with the standards of the scientific community, you must give credit where credit is due. If you make use of an idea that was developed by (or jointly with) others, please reference them appropriately in your work. It is unacceptable for students to work together but not to acknowledge each other in their write-ups.
There will be one in-class closed-book exam and two in-term take-home exams that are both open book and open notes. There will be no final exam. The take-home exams will require the use of a computer. You are not allowed to collaborate with anyone else on the take-home exams. The dates of the exams are:
Exam 1 will take place in class on Monday, September 29.
Exam 2 will be distributed on Thursday, October 23 and due
on Thursday, October 30.
Exam 3 will be distributed on Thursday, November 13 and
due on Thursday, November 20.
Please mark these dates in your calendars as they are not flexible.
Your final grade for the course will be computed as a weighted average of several components. The relative weight of each component is shown below:
|
Assignments |
35% |
|
Final Project |
10% |
|
Exam 1 (in-class) |
15% |
|
Exam 2 (take-home) |
20% |
|
Exam 3 (take-home) |
20% |
|
Total |
100% |
All programming in CS230 will be done on the CS department's Linux workstations, described in the Linux document. These workstations can be accessed remotely through MACs and PCs. Each CS230 student will have a password-protected account on the CS fileserver, puma. You will have a limited amount of space on puma to store your course-related files. The Documentation page has pointers to documentation for all the software packages used in CS230.
The CS230 course directory is located at /home/cs230 on puma. This directory contains material relevant to the class, including course software, and online versions of assignments and programs. All of the course Java software will be placed in the download folder inside the /home/cs230 directory.
There is a CS230 conference on FirstClass named CS230-F08. This conference has several purposes. We will use it to make class announcements, such as corrections to assignments and clarifications of material discussed in class. We encourage you to post questions or comments that are of interest to students in the course. Please do not post significant amounts of Java code (i.e. more than one or two lines of code) in your messages on the FirstClass conference! The instructors will read messages posted in the conference folder on a regular basis and post answers to questions found there. If you know the answer to a classmate's question, feel free to post a reply yourself. The course conference is also a good place to find people to join a study group. You should plan on reading conference messages on a regular basis.
If you have any questions at all about the class (whether big or small, whether on assignments, lectures, reading, or whatever) please contact one of the instructors. Simple questions can often be answered via the FirstClass conference or e-mail. Questions of general interest (e.g. clarifying ambiguities in an assignment, wondering why posted programs do not work as expected) should be posted to the CS230 conference. Other questions can be emailed to your instructors.
If you have a complex question or need help in understanding the material, you are encouraged to see one of the instructors or the CS230 tutor. The best time to see an instructor is during our office hours. If these times are not convenient, we can schedule an appointment for another time. You can schedule an appointment in person or by e-mail.
Cassie McLeod and Sha Lu will be the CS230 tutors this semester and they will hold regular drop-in hours to help with your questions. The schedule of their drop-in hours will be made available early in the term. If you are having trouble with the course, you can request a one-on-one tutor from the Pforzheimer Learning and Teaching Center (PLTC). This service is confidential and free of charge; please take advantage of it if you need some extra help! Contact an instructor or the PLTC for more information about this service.
Finally, when looking for help, do not overlook other students. Get to know your classmates early in the term so that you can help each other out!
If you have any disabilities, including learning disabilities, you are encouraged to meet with an instructor to discuss accommodations that may be helpful to you.
CS230 counts for one Mathematical Modeling (MM) distribution credit.
Computer Science 230
Date Created: August 2005
Date Modified: August 2008