|
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
|
C++
Knowledge of the host language is important to keeping up with the hands-on
work. Prerequisites: CS 21: Programming I in C++.
|
|
TAs |
Teaching Assistants are available for questions
and will do some grading.
Note: Although 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 C++, Elliot Koffman/Paul Wolfgang
ISBN:0-471-46755-3
Instructor will discuss textbooks and software requirements at the
beginning of the course.
Software: Microsoft Visual C++ 2008
Express Edition (freely downloadable)
We may use some
advanced parts of the CS 21 text:
Starting Out with C++ Fifth Edition, Tony
Gaddis
|
|
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 may 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:
1. Assignment 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 .exe 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 :
-
.cpp, .h source file(s)
-
.exe file created from compiling
the source file(s)
-
*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 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.)
|