CS 1044: Syllabus

Instructor

Graduate Teaching Assistant

Course Information

Catalog description

Fundamental concepts underlying software solutions of many problems. Structured data, statement sequencing, logic control, input/output, and functions. The course will be taught using a structured approach to programming. (3H,3C).

Purpose

The purpose of this course is to teach the fundamentals of structured programming and problem solving in the C/C++ programming language.

Textbook

The following book is required:
Programming and Problem Solving with C++, 4th Edition, by Nell Dale, Chip Weems and Mark Headington, Jones and Bartlett, ISBN: 0763707988.

Course Notes

The course notes are available on-line at http://courses.cs.vt.edu/~cs1044/summer04/session2. In addition, they may be purchased at A-1 copies in the University Mall.

Grade distribution

Scores in this class will be on a 1000 point scale distributed as follows
Activity Points
Programming Asssignments 500
In-class quizzes 100
Exam 1 100
Exam 2 100
Final Exam 200

Programming projects - 500 pts

The majority of your grade will come from individual programming assignments. There will be five or six programming assignments. The number of points per assignment will be indicated on the assignment description.

Note: These projects will be quite challenging and will require extensive investment of your time and effort. Make sure that you start early on the assignments, understand the specifications and ask questions if you face any problems.

The programming projects must be implemented in ANSI C/C++, as described in the course notes. You many use any ANSI conformant compiler you wish. However, your programs will be compiled and tested using Microsoft Visual C++ .NET, running on Microsoft Windows NT/2000/XP.

The Microsoft Visual C++ .NET compiler is the only supported compiler for this courses. That means that neither the TAs nor I 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. If you are using another compiler, it is advisable to test each of your programming projects in the lab prior to submission.

All the programming projects are subject to runtime testing under the Curator system. See the Curator homepage (http://www.cs.vt.edu/curator/) for details, including the instructions you will need in order to submit assignments to the curator. Be sure to read the Student Guide to Submitting that is available off the curator website - it contains 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 the Curator; be sure to read and follow the guidelines given there.

A number of 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 TAs will grade your (first) submission to the Curator that received the hightest score, and email you the results. Note that if you make an incomplete submission (eg., omitting required documentation) and that receives a perfect score, then the TAs will evaluate that incomplete submission. There will be no exceptions to this policy. If you do not make a submission for a project, then you will receive a zero for software engineering for that project.

Quizzes - 100 pts

Short quizzes will be given during lecture sessions throughout the semester. Quizzes will mostly cover material from the previous lectures. There will be approximately 20 quizzes. There will be atleast one quiz per week. Some of these quizzes may be unannounced. Remember to keep a number 2 pencil with you for all lectures since most of the quizzes will have to be answered on opscan forms.

Exams - 400 pts

There will be three exams in this class. The first two exams will cover approximately two-thirds the course material and are tentatively scheduled in the middle of July and end of July, respectively. The final exam will be a comprehensive exam covering the entire course material and is scheduled for Friday, August 13, 10:30AM - 12:30PM.

Note 1: There will be no make-up of the midterm or final exams, unless there is a valid reason. If you have a valid excuse for not being able to take the exam in the scheduled time-slot, please inform the instructor atleast 24 hours in advance. The request has to be accompanied by a letter from the Dean's office.

Note 2: You must bring your VT ID card to all the exams! Because the exams are multiple-choice and are scored via machine, also bring a number 2 pencil and a good eraser.

Grading Policy

Upon receiving grades for attendance, quiz, homework, or project, you have exactly two weeks to question/contest your grade. After that, you will not be able to contest the grade which you received on an assignment, project, exam or quiz. This is to ensure that the grader remembers the grading criteria and is able to fairly consider any re-grading request.

Late Policy

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 do not put things off until the last minute.

Note: Delays resulting from machine availability, lab schedules, hardware failures or your failure to maintain a backup of your work do not merit an extension.

Class web site and listserv

The url for the class is http://courses.cs.vt.edu/~cs1044/summer04/session2/. Announcements regarding availability of assignments and grades will be posted to the class listserv. The listserv address is CS1044_70221@listserv.vt.edu. Every student who is registered by the first day of class is automatically subscribed to the class list. The listserv will be used primarily for announcements and clarifications.

The 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):

It is acceptable to discuss with classmates a homework assignment in a general way, i.e., to discuss the nature of the assignment. In other words, you may discuss with your classmates the goal of an assignment 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 the instructor/TAs. Please feel free to discuss the assignment and your program or solution specifically with the instructor/TAs. The discussion of your individual program or solution must be limited to the instructor/TAs.

Feel free to discuss the homework assignments and your program source code with the teaching assistants assigned to CS 1044, the instructor, or the free tutors provided by the UPE. The discussion of your program source code must be limited to these people. Note that this specifically excludes discussion of your program source code with other students (even if they are not enrolled in CS 1044), or with tutors except for those named above.

Privately hired tutors are not an exception to this requirement, nor are athletic or other tutors provided by the university.

Copies of all submitted work are retained indefinitely by the department. Submitted programs are subject to automated analysis for detection of copying.

If you have any question as to how the Honor Code applies to this class, remember that:

The Honor Code will be strictly enforced in this course. All assignments will 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.

Every assignment in this course in any form carries an implied signature on the following pledge:

On my honor:

- I have not discussed my program code with anyone other than my
  instructor or TAs assigned to this course.

- I have not used program code obtained from another student, or
  any other unauthorized source, either modified or unmodified.
  

- If any code or documentation used in my program submission
  was obtained from another source, such as a text book or course
  notes, that has been clearly noted with a proper citation in
  the comments of my program.

- I have not designed this program or submission in such a
  way as to defeat or interfere with the normal operation network
  services and / or the method by which assignments are fetched.

You can find the Computer Science departmental policy on koofers at 
http://www.cs.vt.edu/academics/ugrad/Handbook/koof.html.

Other notes


© Mir Farooq Ali 2004.