Jeanne M. Douglas   Computer Science Department    University of Vermont

CS 26   Computer Programming II   (Java)        Syllabus          Spring 08

In rare instances it is necessary to make adjustments after the syllabus is posted. 
The instructor may modify this syllabus with announcement in lecture.

Course website on webCT (password required) 

2007-2008 Catalogue
Description

Intermediate programming concepts including common data structures, algorithms, style, design, documentation, testing and debugging techniques, and an introduction to object-oriented programming.  Prerequisites: 21. Three hours.

 

Goals

To begin the transition from "programming in the small" to "programming in the large".  To introduce concepts and techniques necessary to manage larger complex software systems typical of those in today's world.  These concepts generally transcend any particular programming language and apply to programming in general .

 

Course Topics

The following topics will be included but not in this sequence .  Some topics in the list are integrated throughout the course, whereas specific focus lectures are given on others.

abstraction:  procedural, data
program: specification/design/implementation/debugging/ testing /use
user interfaces and programmer interfaces
program development environments
elements of style
separately compiled source code files
recursion
objects,classes 
data types
data files
scope
data structures:  lists, binary trees, stacks, queues, possibly bags, others as time permits

Host Language

Java
Knowledge of the host language is important to keeping up with the hands-on work.   Prerequisites:  CS 21: Programming I in Java.

 

TAs

Teaching Assistants are available for questions and will do some grading. 
NoteAlthough TAs are available for help, full responsibility for *all* course requirements rests with the individual student. 
This includes debugging programs. 

It is important to have realistic expectations about the TA role in the course.  TAs often work for more than one course and are not responsible for knowing the specifications of programming assignments and administrative policies of the course.  TAs may not have actually done the specific programs of this semester's assignments, and are not attending the lectures for this specific semester. They are not expected to debug your programs or to make sure that you meet deadlines.  Be aware that to become familiar with your program may take t-i-m-e.  Quick fixes are not always forthcoming, particularly as programs become longer and more complicated.  (Welcome to the real world of programming!)  You can also expect that folks who wait until the night before the due date will probably wait in line for TA help.

The TA role is one of a peer advisor since they have done similar assignments and in most cases have taken more advanced courses than this one.  Thus they may have some insightful hints.  They should be used as a contact for advice on debugging techniques,  programming style, or error states to look for given the behavior of your program.  TAs can also explain general course concepts.  

The TA should be helping you to help yourself. 
You are encouraged to use TA assistance but be realistic about what they can and should be doing for you.  The end result is fully the student's responsibility.

 

CS 26 WebCT

Online site: http://www.uvm.edu/webct  (requires password)
Students must be familiar with all material on this site, consulting it regularly and often.

At the beginning of the semester the course calendar contains a schedule of the tests, quizzes (except pop quizzes), and reading assignments.   It should be consulted each day.  Make sure you click on the day NUMBER for complete info.

This is *not* an "online" course.  It is an "in-person" course.
All course materials and lectures will *not* be available online.

 

Email

Email is the preferred mode of communication outside of class.  Students are expected to *maintain* and *manage* their email as a reliable means of communication.  Email should be read daily when classes are in session. 

Most students have more than one computer account (eg. ZOO and CEMS).  Make sure that all email  is *electronically* forwarded to *one* account for easier management.  
  

 

Required Texts and Materials

Objects, Abstraction, Data Structures and Design Using Java 5.0, Elliot Koffman/Paul Wolfgang 
ISBN:0-471-69264-6

Instructor will discuss textbooks and software requirements at the beginning of the course.
Students should delay software acquisition until then.

Java (download from Sun), TextPad (download from TextPad.com fee about $30), JGrasp(download from JGrasp.org)

We will use some advanced parts of the CS 21 text:Introduction to Java Programming Core Version Fifth Edition (or 6th edition), Y. Daniel Liang

 

Grading

Written Tests         50% (equally weighted,  none dropped)    
Quizzes                25%  (equally weighted, 1 dropped) Assignments         25%  (8-15 equally weighted, none dropped) 

The *final* "Show and tell" must be delivered, and on time.  If not, the grade for the entire final assignment including the program will be a 0. 

No work is accepted for extra credit unless possible bonus options have been provided within the assignments given.

Course average and letter grade: 
90's A, 80's B,70's C, 60's D, <60 F

98-100 A+, 92-97 A, 90-91 A-
88-89   B+, 82-87 B, 80-81 B-, etc.

The instructor will average and post grades twice:  once at midsemester after test #2 (just prior to the withdraw date), and again at the end of the course. 
Students know where they stand at any given point in the course since one can crunch the above formula on the grades posted on webct.


The final course averages are not scaled.  If there is any scaling, it is done on the basis of a particular test or quiz and is applied when that particular assessment is posted.  There are no surprise grade endings through scaling!

Grade Appeals

Students are responsible for checking their grades via webct.  Appeals for a review for a possible grade change must be made within one week(5 days where UVM classes are in general session) of the date that the grade is posted through webct.  See the grader (generally the TA for assignments and the instructor for tests and quizzes) at his/her office hours or send email for an appointment.  Grade adjustments will *not* be made after this window of time.

Last Day to Withdraw

See calendar.  This date is very important as the last day to withdraw from a course and have no grade entered into your GPA.

Academic Integrity

The Computer Science Department rigorously enforces the Academic Honesty Policy as outlined in the Code of Academic Integrity and University Policies.   At the first suspicion of violation of this policy, the  case will be immediately forwarded to the Center for Student Ethics and Standards  .  See the link from the webct course main menu. 

Plagiarism is not acceptable from any source including the internet.  Sophisticated electronic scanning software may be used to detect similarities in assignments.   If any portions of your individual assignments have been significantly influenced by someone else, you must prominently credit them.

All students must sign a copy of the academic pledge below before any work will be accepted. 

***************************************************************************
Academic Pledge

I understand that I am bound by the academic integrity policy for this course as provided on the syllabus and links in webCT.


1.  On  Homework that is turned in for grading , the ONLY APPROVED references are: the required course text, the course webCT site, the course instructor, and official TAs for this course, all for the current semester.  These references may be used without citation. 
Information from any other source *must* be cited, and must also be explicitly approved by the instructor in writing as an allowable source to avoid possible loss of points.  

I must develop solutions myself, individually .  
I am *not* to work as a partner with other students.  I am *not* to have anyone (friend, tutor, former student, former TA, anyone outside the approved references) lead me through the solution.

Collaboration with others may be expected at times, and will be defined in writing by the *specific* assignment.

2.  On  Tests and Quizzes , there are NO references unless explicitly stated in writing on the specific test or quiz.

3.  I am responsible for maintaining the *privacy* of my work that is to be graded, and I am accountable if another student gains access to my work.  I am *not* to show my solution to another student.

I understand and pledge that all of my work submitted for grading in this course with instructor Jeanne Douglas is in compliance with this policy.


signature:__________________________________date:__________________

****************************************************************************

 

Special Accommodations

You must email and meet in person with the instructor *during office hours* within the first week of the course to discuss and plan accommodations for disability, religious observance, work travel, medical matters, etc. 

If specific disability accommodation info is not yet available but is in progress, alert the instructor of this fact by sending an email within this time period.

Students should notify the appropriate Dean's Office as well as the instructor in the case that illness or emergency could affect academic performance.

Course Format

Lectures: T-Th  (classroom and time listed on registrar's site)

The university uses the term "lecture" to denote in-person class meeting times for the registrar's scheduling.  It does *not* necessarily mean that the instructor will always be "lecturing".  In this course there will be a variety of activities during the class meeting time on T and Th.  It is very important that students attend class sessions because the activities are not always of a nature that written notes can describe easily.

Students are expected to attend class and participate fully in class activities, and to be responsible for all material presented.
  It is strongly advised that at the beginning of the semester students arrange with another student to get notes/info/handouts in case of absence from lecture for any reason. 

Students should arrive on time and should not be coming and going from the room during the session.

Electronic devices (including laptops) are not to be used during class "lecture" time without explicit permission of the instructor.

Labs:
There is no formal lab for this class. Students are expected to complete assignments on their own machines, or to use Votey lab machines when they are available.  It is advised that students do some work in the lab when TAs are on duty for office hours. 

 

Tests

Tests are "pencil/paper" and possibly open book (no computers). If there is an open book portion, students are responsible for bringing the course text(s) and no other references are allowed.

Tests are meant to be assessment tools, not learning tools.  They may or may not be returned to students and solutions may or may not be provided.  Final tests will not be returned to students, nor are solutions provided. 

Each test will focus on material covered since the last test, however, material is inherently cumulative.  See course calendar for test schedule. 

Makeup tests are very rarely given and will be at the discretion of the instructor.  Contact instructor *prior* to the test if possible.  Documentation of illness or other emergency may be required. 

Test dates are ON THE COURSE CALENDAR at the start of the semester.
(The FINAL test is during final exam time but may *not* follow the university exam schedule, so MARK YOUR PERSONAL CALENDAR).

Quizzes

Quizzes are closed book.  All quizzes (scheduled and pop) have the same weight.  One (lowest) quiz grade is dropped.  This is not meant to compensate for a low quiz average, but to account for possible excused absence.  No make-ups.

Scheduled quizzes:
Some quiz dates are posted on the COURSE CALENDAR at the start of the semester.  These are scheduled quizzes which emphasize the most recent material covered in either lecture or labs or assignments.  They are given at the *end* of the class period (about 20 minutes).

POP quizzes:
POP quizzes will be given.  A pop quiz is short (typically 10 minutes allowed) and may be presented at *anytime* during a class lecture session.  If a quiz is given at the start time and you are late to class, you will *not* be given extra time!  Pop quizzes may contain any material covered in class or reading assignments whether covered in class or not.  

Programming Assignments

Programming assignments require significant effort and t-i-m-e.  Solutions to assignments are not provided.  Some assignments may build upon previous assignments. 

IMPORTANT NOTES about programming assignments: 

1Assignment Specifications.
Program directions must be followed very carefully or you may lose points.
These assignments are *different* from Programming I assignments in that they are more complex.  In fact, true to "real world"  programming problems, all the specifications may *not* be provided in a homework description file.  Indeed, understanding the problem is a huge part of the programming process.  Often details are provided in class when questions are asked.  It is the student's responsibility to ask!

Problem descriptions may be interpreted differently by various people (students, TAs, etc.).  To avoid confusion, the instructor is the *only* appropriate source of this information. So, consider the instructor to be your "client".  
  

2.
Assignment Grades and Deliverables .
Generally, about half the points are for functionality and half  for style/design of source code.
Programs that do not compile and at least build a .class  file earn 0 points.
Points may be deducted if the specifications are not met (do not do more).
Points may be deducted if the submission directions are not followed.
Programs must declare/use local variables appropriately or earn 0 points unless specifically stated otherwise in the assignment specification.

Deliverables:  Incremental development of programs is essential both as a software development strategy and for partial credit.  Code must execute and clearly show specific functionality to be eligible for partial credit.  In fact, unexpectedly an assignment may be called in early for a grading of partial deliverables.  So always begin as soon as the assignment is made. 

See Late Assigments and Early Birds below.

3 Assignment Naming Conventions
For easier management we will use a uniform file naming convention.  You *must* use the names provided in the assignment. 
Eg.  program name = Tax1 .  Your files for this program should be named:     Tax1.java

Naming will get more complicated, and further instructions will be given as the course progresses.

4.For *each program*, upload and submit the following files :

  • .java   source file(s)  (TAs will compile and get the .class files)
  • *If* the program creates output files, the assignment will indicate which of these must be turned in.  All output files must be in their original version as created by the program. (Output files are *not* to be edited with a word processor after the program has created it).
  • You may "zip" files, *but* student is responsible for zipping *all* necessary files.
  • Do not "jar" files unless instructed to do so. 
  • DO NOT include any other project-related files from a development environment.
  • DO NOT include any files already provided in the assignment (such as data files).

 5.  Students are responsible for making backup copies of submitted homework files on another machine and/or on CD.  Work in progress should also be backed up frequently in case of a dreaded "system meltdown".

************************************************************
6.  WebCT Dropboxes:  
Assignments *must* be electronically submitted through a webct dropbox.  (Emailed work is not accepted.)   Deadlines are strict.  Your assignment is graded based on when it is fully submitted via webct, not based on when the programs were "done".      Assignments may have multiple programs.  You may *not* submit part of the assignment on time and part late.  The entire assignment is one unit.  

Download and save all the files in the assignment for future reference since you will not have access once the dropbox closes.

Submitting your files to a dropbox:
There are two separate steps to turn in an assignment in a dropbox:
- uploading the files, and
- clicking the submit button which sends the files for grading and time stamps the submission.

Except for the final assignment, the dropbox will remain open for some time past the due date shown, but will be marked "Late".   See LATE submissions below. 

ONTIME submissions:
You must submit to WebCT *prior* to the deadline shown in the dropbox. 
 
Note:  WebCT counts it *late* if the submission comes in *exactly* at the dropbox time, so it must be at least 1 second *before* the dropbox time. You may retrieve the submission, delete files, upload new files, andre- submit as many times as you wish *prior* to the due date/time shown. 

LATE submissions:
If your WebCT submission is marked "Late" (even for one second late), your assignment grade will be reduced by 30% .  The dropbox closes exactly 4 days from the due date/time.  Work that does not make it before the dropbox closes will be graded 0. 
Note:  WebCT will *not* allow retreives and resubmissions if the box is marked "Late".  You may submit only once. 

NO late assignments are accepted on the final assignment.
"Show and Tell" parts of assignments *must* be delivered on time and have no extensions or late periods.

CAUTION :  A late submission will require extra makeup efforts to get back on track with the work.  If you're late getting an assignment done, the next one will not get started on time.  (Note that some assignments are built on top of others, and it wwould be a disadvantage to have not completed the prior assignment.)
Don't get caught in the "snow-ball" effect! 


There are no extensions except for very extenuating circumstances.  The instructor reserves the right to work out a special plan with an individual student.  However, the student must be prepared to inform the respective Dean's office of his/her circumstances that have made it impossible to get the work in on time.  Hopefully a major life issue will not befall anyone during the semester, but in the case of a more severe problem, appropriate action will be determined in conjunction with university officials, typically academic deans, faculty advisors, etc.  


EARLY BIRD submissions:
*If* you have a late penalty that you would like to "erase", you may submit a subsequent assignment time stamped at least 48 hours *early*.   (Make sure your grader notices the time stamp since webCT will not mark it "early"!)  Even if you do *not* have any late penalties yet, you can bank *one* penalty eraser just in case you need it later!  (Cannot be used on the final assignment.)