CS 1044: Syllabus
Mir Farooq Ali
miali AT cs DOT vt DOT edu
MWF 10:15 - 11:15 AM
Grad. Teaching Assistants
Name: Gayathri M.
Office: McB 116/118
Office hours: TBA
Name: Bing Liu
Office: McB 116/118
Office hours: TBA
Undergrad. Teaching Assistant
Name: Francisco Rojas
Office: McB 118/116
Office hours: TBA
Introduction to Programming in C
MWF 9:05 - 9:55 AM
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
The purpose of this course is to teach the fundamentals of
structured programming and problem solving in the C/C++ programming language.
The following book is required:
Programming and Problem Solving with C++,
3rd Edition, by Nell Dale, Chip Weems and Mark Headington, Jones and
Bartlett, ISBN: 0-7637-2103-4, 2002.
Scores in this class will be on a 1000 point scale
distributed as follows
Programming projects - 500 pts
The majority of your grade will come from individual programming assignments.
There will be seven or eight programming assignments. The number of points per
assignment will be indicated on the assignment description.
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.
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
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
Exams - 400 pts
There will be two exams in this class. The midterm exam will cover
approximately half the course material and is tentatively scheduled in the
middle of March. The final exam will be a comprehensive exam covering the
entire course material and is scheduled for May 8, 1:05 - 3:05 PM.
There will be no make-up of the midterm or final exam, 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.
You must bring your VT ID card to the midterm and final exam! Because the
midterm and final exam are multiple-choice and are scored via machine, also
bring a number 2 pencil and a good eraser.
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.
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.
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, listserv and forum
The url for the class is
. Announcements regarding
availability of assignments and grades will be posted to the class listserv.
The listserv address is CS1044_11463@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.
A discussion forum for the class is available at
. The forum should be used for discussion about
the projects rather than the class listserv. Questions (and answers) of
relevance to the entire class will be posted to the class listserv by the
instructor and/or the GTAs.
Posting of solutions to the listserv or forum is NOT
permitted. The Honor Code applies to both the listserv and forum too.
Web forum policy
Be aware that a message posted to the CS 1044 Web Discussion Board can be read
by everyone in the class. The board should be used for class questions, help
requests, course/assignment discussions and related messages. Source code must
NOT be posted to the list. (Students posting source code to the list will face
Honor Court Violations.)
The discussion board is unmoderated. Anyone may post any message they wish to
the list. The list will remain unmoderated as long as no one abuses their
privileges. If abuse does occur then all messages posted to the list by the
offending party will be deleted.
Compiler error messages and the ONE line of source code to which they reference
may be posted, but no other source code is to be posted.
Flame Wars, (i.e. arguments), will NOT be tolerated. All students engaging in a
flame war will be removed from the discussion board!
Attachments of any type are NOT to be posted.
Students using off-campus email accounts and forwarding their VT email may be
The instructor and the TAs reserve the right, at their sole discretion, to
remove students from the discussion board for inappropriate behavior.
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
Working with another student or other students 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 project. You may not
Copying source code (programs) in whole or in part from someone else.
Copying or reading files from another student's disk or account 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 printer, trash can,
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
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,
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
Homework assignments are subject to scrutiny by a system (or systems) that
measure(s) software similarity (cheating validation).
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.
No grade is worth your integrity.
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
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
If any student needs special accommodations because of a disability, please
contact the instructor during the first week of classes.
There are no make-ups on the homeworks, programs, or tests except under special
circumstances as explained above.
Keep all returned assignments until the end of the semester.
Keep a personal backup copy of each assignment/program you are to turn in. This
is particularly important for programming assignments. Make sure that you save
your assignments on a different machine and/or disk.
Students are responsible for making backup copies of all their work in this
course. Loss of work due to hard drive failure is NOT an acceptable excuse.
Backup copies of files on the same hard drive are not backup copies. Backup
copies of files on second hard drives are also risky. Backup copies should be
maintained on two separate distinct storage mediums, (eg. hard drives, CD-ROMs,
Zip drives and floppies ).
Backup copies should be maintained until after the end of the term and students
have received their course grade.
© Mir Farooq Ali 2004.