Computer Science II:


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

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)

CMPU 101

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.
  • To learn to solve problems, using the object-oriented programming language Java, on a computer 8-).
  • To learn to enjoy the creative process of programming (it really is an art and it really is fun) :-P!
  • Since many high-level programming languages have similar features, what you learn in this class will make learning other computer languages easier.
  • Even if being a computer scientist is not your goal, what you learn about programming will most likely serve you well in whatever you do during and after your time at Vassar. We will see through examples how programming can be used in different disciplines and different problem domains.

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.

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.

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.

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.

  • 5% of the total score on assignments will be deducted for each day (including weekend days) an assignment is late unless your professor receives an official excuse* that covers every single day after the homework deadline until the time your homework is submitted. Extensions on assignment submissions will be granted only in the event of illness or other excused absence. *All excuses must come through the Dean of Studies office or through Baldwin Health Services. The Dean of Studies must also provide an excuse for assignments turned in late or labs missed due to athletic events. Having too much work due in other classes is NOT a valid excuse for late submissions! Also, just telling your professor you are or were sick, does not constitute a valid excuse. You must go to Baldwin and get an official excuse for health-related absences to receive full credit for any overdue assignments. Any points taken off will be restored retroactively once your professor receives an official excuse.

  • All assignments must be done individually. No collaboration of any kind is allowed. Any cases of inappropriate collaboration (cheating) have to be reported to the department chair, and will be dealt with promptly. Any sharing of code—even if it's just pointing out something on the screen that you've written—will be considered cheating.

  • Assignments will be submitted, graded, and returned electronically via Moodle. It is NOT OK for you to e-mail me an assignment or lab unless I give you permission to do so. If you are having trouble submitting your programs, print a copy of your program before the submission deadline and put the paper copy under my office door. You will have to submit your assignment electronically even if you have already turned in a paper copy.

  • Solutions to assignments will be posted shortly after the due date. No submissions will be accepted after solutions are posted.

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.

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 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.