|
CS 1044 Intro to
Programming in C++ 2:00 3:15 TR (Index#
15078) Spring 2001 |
Dave Tucker McBryde 535 (231-3609) |
Purpose: To provide an introduction to
structured procedural programming using elementary features of the C++
language.
Prerequisites: None, although familiarity with basic computer operations equivalent
to CS 1004 Computer Literacy will be very helpful. It is required that you have a valid University PID and know your
password. If you do not have this
information, go the Newman Library Media Center.
Text: For general reference on the C++ language,
programming examples, etc: Programming in C++ by Dale, Weems and
Headington.
Office Hours: My office hours will be 10:30
12:00 MTWR and by appointment.
The Graduate Teaching Assistants for this course are listed
on the course Website. Their office
hours will be announced and posted on the course Website as soon as possible.
Course Website: (http://courses.cs.vt.edu/~cs1044/)
The course Website will include copies of the course syllabus (this document),
pertinent department policy statements, office hours, test dates, homework
assignments and programming project specifications as available, and timely
announcements. You are advised to
consult the Website on a regular basis.
The course Website also has links to other useful
information, including brief tutorial introductions to the Visual C++ editor
and debugger, example programs, koofers, the course notes (unprintable), and a
link to the homepage for the New Automated Grader.
Assignments: Your grade will be based on
homework assignments, two tests, a final exam, and six programming projects,
weighted as follows:
|
Item |
Weight |
Tentative Dates |
|
Homework/Quizzes |
5% |
Varied |
|
Project Testing and Software Engineering |
50% |
|
|
Test 1 |
10% |
|
|
Test 2 |
10% |
|
|
Final Exam |
25% |
May 8th 1:05 PM |
Homework Assignments: The homework assignments will usually consist of multiple-choice
questions that relate to the lectures, course notes, projects and reading. Since I will use the same format for the questions
on the tests and final exam, doing and understanding the homework assignments
will help you prepare for those tests.
Programming Projects: The programming projects must be implemented in ANSI C/C++, as
described in the course notes. You may use any ANSI conformant compiler you
like, however your programs will be compiled and tested using Visual C++ 6.0,
running on Windows NT.
The Visual C++ 6.0 compiler is the only one
supported for this course. That means
that neither I nor the GTAs will answer questions about the use of any other
compiler, including earlier versions of Visual C++. The Visual C++ compiler is
installed on a number of Windows PCs in various computer labs around
campus. A listing of those labs will be
posted on the course website. If you
are using another compiler it may be advisable to test each of your programming
projects in the lab prior to submission.
All the programming projects will be subjected to
runtime testing using the New Automated Grader. See the NAG homepage (http://ei.cs.vt.edu/~cs1044/Grader/Grader.html)
for details and further information, including the software you will need in
order to submit to NAG and instructions for using that software. Be sure to download and read the Student
Guide to Submitting it contains the answers to most of the questions students
have about the automated grading system.
The Student Guide also contains information about how the Honor Code
applies when using NAG; be sure to read and follow the guidelines given there.
A number of the programming projects will also be
graded for adherence to good software engineering principles, including
documentation, design, conformance to the stated specification, and programming
style. Each project specification will
include explicit guidelines that you will be expected to follow. The GTAs will grade your submission to NAG
that received the highest score, and e-mail you the results. If you do not make a submission for a
project, then you will receive a zero for software engineering for that
project.
Tests: Your score
on the final exam will replace the lower of your two test scores, if it is an
improvement. You must bring your Va
Tech ID card to the tests and final exam! Because the tests and final exam are multiple
choice and are scored via machine, also bring a number 2 pencil and a good
eraser.
Grading Policies: This course is largely
devoted to the development of skills in structured programming, as reflected in
the relatively heavy weight given to the programming assignments. You will be expected to produce programs
which are not only functionally correct, but also well-structured,
well-documented and readable. The Computer
Science Department Documentation Standards, described in Elements of Programming Style,
will be enforced on any programming assignments that are human-graded (a copy
is included with the course notes).
Backups: It
is your responsibility to maintain an up-to-date backup copy of each
programming project (that is in addition to the copy you submit). The hard drives of the lab machines are
recloned periodically, so don't try to leave a backup there! Keep a spare copy of all the relevant files
for each project on floppy disk in case your assignment is mislaid.
Late Work: Each programming
project and homework assignment will have a due date and time and will include
instructions for submission. Except in the very rare case that an extension is
granted, late submissions will incur a penalty of 20% per day, and will not be
given any credit if submitted after graded assignments or solutions have been
released. Any request for an extension
must be made at least 24 hours prior to the due date.
Plan your time carefully for the programming
projects, especially if you will be using computers in the campus labs you
may be competing with other students for scarce resources, so don't put things
off until the last minute. Note well: delays resulting from machine availability,
lab schedules, hardware failures or your failure to maintain a backup of your
work do not merit an extension.
Statute of Limitations: Any questions or complaints regarding the grading of an
assignment or test must be raised within one week after the score or the graded
assignment is made available (not when you pick it up). Dont rely on me getting & reading
important e-mails, it is best to see me in person about your grades.
Absences: If a
serious illness prevents you from taking any of the tests, send a friend with a
note describing your condition or notify me before the day of the test. Also, to establish a valid excuse for an
illness you must get a note from a physician or the University infirmary. Before missing a test for any reason, you
must make every effort to discuss the problem with me before the day of the
test. Excuses other than an illness
must be reported to your Dean's office so that they can send me a written
explanation of the absence. If you need
to be away for an official University event, this must be cleared with me in
advance. Without a valid excuse, no
makeup tests or exam will be given!
Grade Scale: Final
grades will be set according to the usual 10-point scale; i.e., 90% guarantees
at least an A-, 80% at least a B-, etc.
Honor Code: An exhaustive list of Honor
Code violations would be impossible to present here, but among other things,
each of the following is a flagrant violation of the Virginia Tech Honor Code,
and violations will be dealt with severely (Honor Court):
¨ Working with another student
to derive a common program or solution to a problem. There are no group projects in this course.
¨ Discussing the details
required to solve a programming assignment.
You may not share solutions.
¨ Copying source code
(programs) in whole or in part from someone else.
¨ Copying files from another
student's disk even though they might be unprotected.
¨ Editing (computer generated)
output to achieve apparently correct results.
¨ Taking another person's
printout from a lab printer, remote rprint printer, trash can, etc.
It is acceptable to discuss with
classmates a programming assignment in a general way, i.e., to discuss the nature
of the assignment. In other words, you
may discuss with your classmates what your program is required to
accomplish but not how to achieve that goal using C++. In no way should the individual statements
of a program or the steps leading to the solution of the problem be discussed
with or shown to anyone except those people cited in the following statement.
Feel free to discuss the
homework assignments and your program source code with the graduate teaching
assistants, the instructor, or the free tutors provided by ACM or UPE. The discussion of your program source code
must be limited to these people.
If you have any question as
to how the Honor Code applies to this class, remember that:
¨ Any work done in this class
must be done on an individual basis.
¨ Credit will be given only
for work done entirely on an individual basis.
¨ Do not make any assumptions
as to who can provide help on a programming assignment.
¨ All submitted work is
archived. All submitted programs will
be subjected to automated cheat analysis.
¨ Evidence indicating the
violation of the policy stated above will be turned in directly to the Honor
Court.
¨ It is much easier to explain
a poor grade to parents or a potential employer than to explain an Honor Court
conviction.
In addition, the Honor Code statement included in
the Student Guide to the New Automated Grader is in force for this class.
The Honor Code will be strictly enforced in
this course. All assignments submitted
shall be considered pledged graded work, unless otherwise noted. All aspects of
your work will be covered by the Honor System.
Honesty in your academic work will develop into professional integrity. The faculty and students of Virginia Tech
will not tolerate any form of academic dishonesty.