Table of Contents

Computer Science II:

CMPU102: Data Structures and algorithms.


Spring 2016 Syllabus

This syllabus is subject to update throughout the semester.

Professor: Jenny Walter (link to my web page)
Office: SP 306
Office Hours: MW from noon to 2 pm
T from 1:30 to 3 pm
R from 1:30 to 3:30 pm

Please make appointments to meet me at other times
via e-mail (No appointments on Fridays or weekends)

Please allow at least a day's notice for meetings outside
of office hours
Office Phone: 437 7449
Email: jewalter at vassar dot edu
Section: 51
Lecture: MW 9-10:15 am, SP 309
Lab: M 4:35-5:50 pm SP 309

Textbooks/Readings:

Required:
Introduction to Programming Using Java, David J. Eck (http://math.hws.edu/javanotes.)

Recommended:
Algorithms, 4th Edition, Sedgewick and Wayne (available on-line: http://algs4.cs.princeton.edu)

Course Prerequisites

CMPU 101

Course Goals

By the end of the semester you should:

  1. be proficient using the Java programming language;
  2. be familiar with standard abstract data types, data structures, and the object-oriented paradigm;
  3. know when it is appropriate to use different data structures;
  4. know how to look up classes in the Java API;
  5. have a good understanding of well-known algorithms and the data structures that are used to implement them; and
  6. be proficient using commands, compiling, and running code at the Linux command line.

General Objectives

Advice on being successful in this class

Keep up with the reading and assignments. Topics build on one another. Please contact or visit me if you have any questions or concerns about the coursework, or if there is anything you would like to discuss. If you can't make it to my office hours, let me know and I can arrange to meet with you at other times.

Read your e-mail regularly because I will most often communicate with you by sending an e-mail to your Vassar e-mail address. E-mail is the best way to reach me. I will answer emails as quickly as possible. My e-mail address is given at the top of this page.

Out of consideration for your professor and the other students, please come to class and labs before the scheduled start time and avoid, as much as possible, wandering out and back into the classroom during lectures. The room is very full and such distractions are not encouraged.

Programming Style

Writing a program to solve a problem is in many ways analogous to writing an essay. You should strive to write elegant, non-repetitive, and well-documented code. Writing unorganized, hard-to-read code will earn you a similar grade to that which you might expect to get for writing unorganized, hard-to-read essays in an English class.

Do not wait until the last minute (or even the night before the assignment is due) to start a programming assignment! Read the last sentence again. Students who start working on programs early will be rewarded if their final grade is on the border between two grade categories. It is always possible to submit a program a couple of days early for me to critique and then submit it again with responses to my suggestions (before the deadline) if necessary. But do not expect to get critiques of your work on the day the assignment is due. Asking questions and coming to see me during office hours are good things and are highly encouraged. It is not possible to ask too many questions, although the coaches and I will let you know when you are asking questions whose answers help you too much in solving the problems (you actually learn much more if you develop a solution on your own).

Design of a program is every bit as important as the code and you will find that a good design leads to easily readable, error-free, and maintainable programs. Spend some time thinking about how to solve a problem before you actually start typing…it can save you lots of time and headaches.

Getting programming help from coaches (a.k.a. teaching assistants)

Our department hires students who have already taken this class to answer your questions in lab. The coaches are not supposed to help you write your programs; they are there only to answer questions about errors in your code. Your first resort for help with your code should be your professor.

Course Mechanics

Programming Tools

You will use an Integrated Developers' Environment (IDE) called DrJava to create and edit your programs. The benefits of using an IDE like DrJava will become apparent as you begin programming. You can download the DrJava IDE for free using the link on the left sidebar. For help with installation, bring your laptop to OLB and your professor or one of the coaches will help you install the software.

The DrJava IDE is also available on the computer science classroom and lab computers.

Lectures

The lectures will be used to present new material, with lecture notes posted on-line. Most lectures will use live programming sessions to analyze and test the concepts being presented. Program code from these sessions will typically be posted on the course web page just before lectures. The material covered each week will build on what was covered in prior weeks. Attendance is mandatory and unexcused absences will be noted and taken into serious consideration when calculating your final grade. Three unexcused absences will result in your grade for class participation being lowered one full grade. Further extensive absences could result in your failing the course.

You will have classes and labs in SP 309, which has been outfitted with lab computers. During lecture sessions, you are encouraged to log in to your computer science account on our classroom machines or on your own laptop to access the following: the course web page, links on the course web page, the terminal window, and DrJava. The use of computers in SP 309 to surf the web, use FaceBook, Twitter, or any other computer applications that are unrelated to course content during lecture or lab is strictly forbidden! This restriction is a matter of common courtesy because what is on your screen can distract the students sitting behind you and most certainly keeps you from paying close attention to lecture.

Turn off all cell phones while in SP 309.

Assignments

To reinforce the concepts you will be studying, you will construct programs to solve problems of increasing complexity and sophistication throughout the semester. Your solutions to the assigned problems will be used to assess your understanding of the topics presented. Assignments are graded carefully, amount to 25% of the course grade, and must be taken seriously. I will post grading criteria and I expect you to read the criteria for each assignment because the guidelines will change as the semester proceeds and as you become more experienced Java programmers.

Labs

This course has weekly lab sessions held in SP 309. The computers in all our labs run the Linux operating system and have the DrJava software that we will be using throughout the semester. Even if you have the DrJava software installed on your own computer, you must do your lab work in the lab on one of the lab computers during your scheduled lab time. When you are finished with each lab, you should ask the professor (or a lab coach) to verify that you have done the work and record your presence in lab. Make sure you are checked off before leaving the lab by a coach or your professor. Since printing hard copy doesn't fit with the “green” theme of this class, you should keep all lab and assignment programs in your computer science account so that the programs are backed up (our system administrator Jerome Bailie saves all the data on all our systems at regular intervals).

A typical lab session will involve you opening the lab instructions from the Labs link on the left side of this page. You will usually be asked to download a starter file into your account. Your professor and several coaches will be present during labs to answer questions and to help you write the lab programs. Collaboration with your classmates is allowed during lab, but only on the lab exercises.

Lab submissions will not be graded as completely as assignment submissions are. However, you will be expected to attend every lab and to be checked off as having completed the lab by a coach or your professor. You must have a valid excuse from the Dean of Studies or Baldwin Health Services for any missed labs or you will receive no credit for the lab. Solutions to lab problems will be posted a day or so after lab. No lab submissions will be accepted after the solutions are posted.

Exams

There will be one midterm and a final exam during the regularly scheduled final exam period. These exams will be paper-and-pencil style and closed notes.

If you are unable to take the exam on the date scheduled, it is your responsibility to notify me in advance to make other arrangements and all arrangements must be approved by the Dean of Studies.

Grading

You must complete all assignments, labs, and exams to pass this course. Your final grade for the course will be calculated roughly according to the following distribution of coursework:

20% Assignments (8 to 10)
25% Midterm exam I - TBA
25% Midterm exam II - TBA
25% Final Exam - During regular finals week
5%

Note: Although higher numerical scores will necessarily receive higher grades, I do not feel bound to follow the frequently used 90/80/70/60 cut-offs. Programming is as much an art as it is a logical process and superior performance will be rewarded. No extra credit work will be given. Pluses or minuses may be added at my discretion.

Academic Integrity

Don't cheat. Read Originality and Attribution: A guide for student writers at Vassar College. Copying someone else's code without attribution amounts to plagiarism. Likewise, give proper attribution for the help you receive. School policy dictates instructors must report all suspected incidents of cheating to their department chair. Please don't put yourself or me in that position. When in doubt, ask me before seeking any help from another source.

Academic Accommodations

Academic accommodations are available for students registered with the Office for Accessibility and Educational Opportunity. Students in need of 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.