|| CS2704 | Class Info | Syllabus | Calendar | Assignments ||
Dr. Manuel A. Pérez-Quiñones
office: McBryde 621
office hours: Wed 9:30-11:00, Fri 9:30-10:30, or by appointment
office hours: Mon 10:00-11:00 Tue 9:00-10:00 Wed 9:00-10:00, or by appointment
The following are good reference books on UML, and C++ (in that order). They are not required for this course, just listed here as good supplements.
UML and C++: A Practical Guide to Object-Oriented Development, by Richard C. Lee, William M. Tepfenhart, 2nd Edition. 2001, Prentice Hall, ISBN 0-13-029040-8. Required
UML Distilled: Applying the standard object modeling language, by Martin Fowler with Kendall Scott. 1997, Addison-Wesley. ISBN 0-201-32563-2.
The C++ Programming Language by Bjarne Stroustrup, 3rd Edition. 1997, Addison-Wesley, ISBN0-201-88954-4.
Object-oriented programming concepts are studied and basic skills in software design are developed. Sound practices for design, construction, testing, and debugging of object-oriented software systems are emphasized. Object-oriented features of the C++ programming language are examined. The primary principles and language features studied are: objects, classes, inheritance, and polymorphism.
CS 1704 or ECpE 2574. Computer Science majors and minors must have completed the prerequisite with a final grade of C or better. ECpE majors must have completed the prerequisite with a final grade of C- or better. We will grant no exceptions to these requirements.
This page will be updated throughout the semester with information on deadlines, changes to the schedule, presentations, etc. The web page includes several dynamic features that should help you get the most out of this course. Some of these include: discussion board, grade lookup, semester calendar, and a very simple search engine over transparencies.
Attendance at class is necessary for successful completion of the course. Attendance is particularly important on specials days, such as homework-due days, exam days, etc. However absences will not count against your grade, but are discouraged unless special circumstances exist.
Programming Assignments due in class are due at the beginning of the class and will not accepted late. This includes handing in your work on your way out of class.NOTE that it is your responsibility to turn in the required work at the assigned due date, it is NOT the responsibility of the professor or the GTAs to pick it up or to remind you to turn it in.
There might be some participatory excercises done in class. If you are asked to participate in these, it is expected that you will do so.
Students are expected to read the assigned material prior to class, check the web page for the assigned readings and their dates. Some class time will be used for lectures, but attending lectures will not be sufficient for full understanding of the concepts from the readings.
Throughout the semester you will have several assignments of different kinds. Each might require different skills from you, and each will require different amount of effort. In general you can count on the following:
- Online Quizzes - There will be some online quizzes this semester, as well as some traditional quizzes (paper and pencil in class).
- Homeworks - there are shorter (still individual) assignments that are due anywhere from one class to three classes. Some of these are assigned ahead of time (check the calendar on the web), others might be assigned with just enough time to complete them.
- Programming Projects - these are individual programming assignments that will take anywhere from one to three weeks to complete. There will be just a few of these in the semester (see below).
- Others - there might be other excercises that will earn you credits towards your final grade. These vary from semester to semester, so attend class everyday so you find out about these "freebies".
In-class quizzes and online quizz will be used throughout the semester. These account for 5% of your grade and are required. There will be no make up of quizzes, not even with a medical excuse. There will be about 6 or 7 of these throughout the semester.
Quizzes are not going to be discussed in class and you might not get the quiz back other than finding your score and the key on the web.
There will be a number of homework assignments throughout the semester, accounting for 5% of your final grade. It is possible, but not guaranteed, that the lowest homework score will be dropped. Most homework assignments will be submitted electronically. No late homeworks will be accepted.
There will be several programming projects in the semester. Some are larger projects and some are smaller. All work is to be done individually.
The programming projects must be implemented in Standard C++. You may use any Standard conformant compiler you like, however all programming assignments submitted are required to compile under the GNU g++ compiler, version 3.x. This is installed on the Linux machines in McB 124 and it is free for you to download from the web. Programs will be tested under either Windows NT or Linux but for certain using g++. It is your responsibility to ensure that your programs execute correctly when compiled with that compiler.
Each project has a firm due date. This is the date by which you have to submit your project or risk losing points. Late programming projects can be submitted, but have a 10% penalty per day late. No projects will be accepted more than three days late. The 10% is deducted from your the score you obtain. For example, if you turn in a project late and the TAs grade it and determine that the score is 80 points. 10% for late penalty will mean that you will lose 8 points, and your score will be 72.IMPORTANT - You must turn in all programming projects in order to pass the course. If you do not turn one of them in, you will get an F in the course. This is to prevent students from being "satisfied" with a C and just not doing one of the projects. You have to do them all and turn them in by December 11 (last day of classes at the beginning of class).
All the programming projects will be submitted electronically, using the Curator System. See the Curator Project Guides Page (http://ei.cs.vt.edu/~eags/Curator.html) for more information. Be sure to download and read the Student Guide to the Curator - it contains the answers to most of the questions students have about the Curator 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.
Each of your 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, in addition to general principles discussed in class.
Before you start begging for extensions to programming project schedules, consider the following:
- The assigned time to do the projects is defined based on how hard the programming project is. So, three weeks for project does not mean you can ignore it for two weeks, it means it is a difficult piece of work that you must devote time right away.
- 40% of your grade comes from programming projects (see distribution below). If we "delay" a programming project because all students are late getting it done, that means that you will probably have one programming project less in the semester. The 40% won't change, but each project will be worth more points now. It is in your interest to get them done in time.
- With the Fall break so late in the semester, there is a chance that your last project will be due after the Thanksgiving break, but assigned before it. Plan AHEAD and do not expect to catch up while watching football and eating turkey during the break.
All of your scores will be used to calculate your grade, none will be dropped or eliminated. The test are done at class time and involve some amount of programming. You may use the class textbook but nothing else (no papers, no transparencies).
- No makeups of exams are given. If you miss the first exam, exam 2 will count as double (exam 2 is harder, so don't miss the first).
- If you take the first but miss the second exam, the final exam will count for 35% of your grade (15% for the 2nd and 20% for the final).
- If you miss both exams (1 and 2) you will get an F in the course.
No makeups are allowed in this course. Homeworks not turned in on time will not be accepted. Quizzes missed get a zero. Projects can be turned in late up to three days with the appropiate penalty. Exams missed can be "replaced" as explained above.
Nevertheless, sometimes people get sick so I will allow extra time to complete projects if you have the proper medical evidence that shows you were not able to complete it in the time allowed. In special circumstances, other excuses will be accepted, but you would still need proper evidence of them.
Consider the following observations:
- I will give extensions only for the amount of time that you lost due to sickness. So, if you have a bad case of the flu and you were down for a day, you will get an extra day to complete your work. Note that you still need to give me proper medical evidence that you were not able to do your work for that day.
- A slip from the Health Center only shows that you went to see the doctor (excusing you of maybe 1 hour time).
- Do not leave the programming projects for the last minute, you are putting yourself at risk of last minute bad luck (Murphy's law).
- If you run into the unfortunate situation that requires an extension, know how much time you need. Don't come to me saying "I need an extension" because I have not seen your program, so I do not know how much longer to give you. And I will not extend deadlines for weeks at a time. Most likely I will give you one more day, of course assuming you have the proper evidence.
- Finally, in case of the unfortunate situation that you have a trip out of town to go see the President of the United States because you are being honored at the White House (or some other activity of that magnitude), I can give you a makeup exam, but it must be ahead of time. Note, however, that these special time exams are different than the exams that the rest of the class take, are usually more discussion oriented and problem solving oriented and have no easy problems like multiple choice, fill-in the blanks, etc. So, just call the President and tell him to give you the award in the Spring, you will be better off that way.
- Oh, by the way, your machine crashing, getting attacked by a virus, updating your OS and in the process losing some data, and other technology-based excuses are not considered valid. I consider these as the new millenium version of "the dog ate my homework", so plan for these unfortunate situations that happen all the time. Make backups frequently, and keep a copy of your backup at a separate location (like you significant-other's dorm, or filebox.vt.edu).
Your grade will be based on the scores you obtain on your work. There will be no curve applied so your scores, so be sure to study and work hard for every single assignment and test. Your work will be weighted as follows:
Online and In-Class Quizzes
Homeworks, and other small assignments
Two exams (each 15%)
Final exam (cumulative), covers all the material in the course
Final grades will be set according to the usual 10-point scale using A, B, C, D and F. I reserve the right use the extended scale that VT has (A, A-, B+, etc.). I do not plan to use a curve, so do not count on getting 88 and waiting for the curve to pull you through. It won't. Study to get a 100. All the scores are rounded to one decimal place and the final score rounded to integers (i.e. 89.4 is a B and 89.5 is an A).
All work on assignments and exams is to be your own. You will be required to sign an honor code statement on all of your work. Students are encouraged to consult with one another about project design issues, as the sharing of ideas here will lead to better systems. However, sharing of code is not tolerated and furthermore it is easy to detect. Please avoid the awkward situation of being caught sharing code with other students. To sum up, plagiarism will not be tolerated.
What is plagiarism? Check the website, http://www.plagiarism.org/. I do not tolerate plagiarism, so avoid doing it and do not even try to justify it by giving excuses that begin as "I was not aware that ..."
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 programming projects in this course. By the way, it does not matter if the other student is not in your course. You cannot seek help from students registered in another section or students that had taken the course in the past.
- Discussing the programming 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. Privately hired tutors are not an exception to this requirement, nor are athletic or other tutors provided by the University.
Feel free to discuss the assignment and your program specifically with the instructor or graduate teaching assistant. The discussion of your individual program 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.
- 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 Curator 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.
If you have any special needs or circumstances (disability accommodations, religious holidays, etc.) please see the instructor during office hours.
|| CS2704 | Class Info | Syllabus | Calendar | Assignments ||