CS 1044: Introduction to Programming in C

Spring 1998

Instructor | Educational Objectives | Prerequisites | Text and Other Materials | Office Hours | Grades | Course Policies | Honor Code | Class Etiquette | Topics to be Covered | Reading

8:00 - 9:15 am TTh (Index #1358)
GTA: Val Ovechkin
vvo@vt.edu
GTA:Kent Swartz
kswartz@vt.edu
                       

Dr. Verna Schuetz
schuetzv@vt.edu
McB 660 (231-6932)

Course WWW site: http://ei.cs.vt.edu/~cs1044/spring.98

Educational Objective: To provide an introduction to structured programming using the C/C++ language. Note: Object-oriented design and programming will not be taught. That is covered in CS 2704, for which this course and CS 2574 are prerequisites.

Prerequisites: None. However, familiarity with basic desktop computer functions such as using a word processor, working with an operating system that uses a windowing environment, and understanding the concept of files will be helpful. All students should also know how to use e-mail and access documents on the World Wide Web. Those who need assistance should ask the undergraduate consultants who work in McB 116/118 in the evening.

Text and Other Materials:

Office Hours: 10:00 - 11:00 am WF and 1:30 - 2:30 pm MTTh. I can also be reached by e-mail and am available by appointment through the secretary at the above phone number. Except for emergencies or appointments, please observe the office hours listed for this class.

Grades:

Homework and Quizzes 10%
Programming Assignments (6) 35%
Test 1, Tu, February 26 15%
Test 2, Th, March 26 15%
Final Examination 25%
(Final may be commontime. Announcement later in semester.)

Quizzes: There will be regular pop quizzes. The three lowest quiz grades will be dropped. No make-up quizzes will be given. Quizzes missed for absences for job interviews, athletic team participation, illness, or other reasons are included in the three lowest grades to be dropped.

Tests: The dates for the two tests are listed above. If a serious illness prevents you from taking either of the tests, you should notify me (phone or e-mail) no later than 5 pm on the day before the test. Also, to establish a valid excuse for an illness, you must obtain a note from a physician or the University infirmary. Excuses other than an illness mut be reported to your Dean's office so the Dean 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. No make-up tests will be given. For students with valid test absences, the 15% of the grade dependent on the missed test will be added to the Final Examination, which will be comprehensive.

Course Policies:

Compiler Support: The programming projects must be implemented in ANSI C/C++. You may use any ANSI conformant compiler, but GTA and lab support will only be given for Microsoft Visual C++ 5.0. Your programs will be compiled and tested using Visual C++ 5.0, running under Windows NT. These compilers are available on the PCs in the McBryde 116/118 computer lab. If you use a different compiler, it is your responsibility to test each of your programming projects in the lab prior to submission. Projects that do not compile and run under Visual C++ 5.0 will be graded as non-working programs.
The programs you write in this class will be graded by the CS Department's automated grader. You will be able to submit each assignment up to four times; the submission with the highest grade will be counted. The grader's evaluation will be returned through you VT e-mail address.

Programming Standards: This course is largely devoted to the development of skills in structured programming. Therefore, in addition to producing programs which are functionally correct, i.e., run and produce correct output, you will be expected to submit well-structured, well-documented, readable programs. The Computer Science Department documentation standards, described in Elements of Programming Style (in the appendix of the course notes and on the course Web site), will be enforced by the GTA's. Several of the programming assignments will be selected at random to be graded for adherence to the style standards. Your last submission will be the one graded for documentation.

Backups: It is your responsibility to maintain until the end of the semester an up-to-date backup copy of each programming project. 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 hard drive fails or your assignment is lost through malfunction of the grader.

Late Policy: Programming projects are to be submitted to the automated grader by midnight on the due date. Except in the very rare case that an extension is granted, late submissions (projects 1 - 5 only) will incur a penalty of 20% per day (no prorating for portions of a day) for up to a maximum of three days, after which assignments will not be accepted. Note: Due to time constraints for grading, the last programming project (#6) of the semester will not be accepted late. Requests for extensions to projects 1 - 5 must be made by noon at least one day prior to the due date. They will be granted only for unusual documentable circumstances such as being in the hospital with a broken leg or absence from campus due to a death in the family.

Plan your time carefully for the programming projects, especially if you will be using computers in the McBryde 116/118 labs. You will 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: While the instructor establishes the grading standards, the GTA will do the actual grading of quizzes, homework assignments, and programming projects. Therefore, when you have questions about the grading of these items, please see the GTA first. See the instructor about the grading of the two tests. All questions regarding grading of quizzes, homework, programming projects, and tests must be resolved within one week of the return of the graded work or, in the case of tests, the posting of grades.

Be sure to pick up all graded work and keep it until the end of the semester. In case your grade is incorrectly recorded, you must produce the graded original in order for the recorded grade to be changed. Work not picked up within two weeks of its initial return date in class will be discarded.

Honor Code: All non-programming homework assignments, some programming projects, all quizzes, all tests, and the final examination are to be solely the work of each individual student and are fully governed by the Virginia Tech Honor Code and the statement on Koofers, Old Programs, and Cheating in the appendix of the class notes and on the Web site.

Cooperative work on designated programming projects. Several of the programming projects will carry the designation on the assignment sheet that they can be done and submitted jointly by teams of not more than two people. On the projects so designated, at most two people can work together as a team. One project will be jointly submitted bearing both names, and both team members will receive the same grade. It will be assumed that both team members contributed equally. The instructor will not assign different grades based on any disputes that may arise between partners. Students who choose to work alone instead of with a partner will not earn greater credit for having done all the work of the project alone.

Violations: 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 reported to the Honor Court:

** On programming projects where cooperative work in teams of two is allowed, the above prohibitions apply to discussions, copying, etc., between teams rather than between the two members of a single team.

It is acceptable to discuss with classmates a programming assignment in a general way. In particular, you may discuss 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 below under the heading "Legal Help" or your team partner on assignments where cooperative work within a team of two is allowed.

Feel free to discuss the assignments and your programs with the instructor or GTA or the undergraduate Computer Science lab consultants who work in the evenings (usually after 6 pm) in McB 116/118.

Class Etiquette: Please observe common courtesy toward your fellow classmates, all of whom are in this class to learn. To do your part in helping create a good learning environment, please:

Thank you!

Topics to be Covered:

  1. Computer components & their functions
  2. Problem Solving
  3. Program Design
  4. Fundamentals: Basic Program Elements
  5. Data Types
  6. Computer Arithmetic
  7. Booleans & Selection
  8. Iteration
  9. Functions
  10. Arrays
  11. Structures
  12. Searching & Sorting

Reading:

Programming and Problem Solving with C++, Chapters 1 - 14


Back to CS1044