![]() |
University of Denver Home Page | DU Department of Computer Science Home Page | Home Page for Faan Tone Liu |
Instructor:
Faan Tone Liu
(email |
Teaching Assistants:
Oscar Hasbun
(email
Jeff Edgington
(email |
In this course we continue our study of C++. We will cover recursive functions, const parameters and default parameters to functions, reference variables, arrays (including character arrays and multi-dimensional arrays), vectors, the string class, search and sort algorithms, pointers, classes and objects, dynamic memory allocation, memory management, recursive structures (such as linked lists), streams, and formatting I/O. In addition to mastering this material, you are expected to improve your design skills, programming skills, and debugging skills. You will also improve your communication skills, including documenting your programs, listening to and speaking about technical material, and reading texts to learn information independently.
This is a demanding course that requires significant time and energy. It provides a basis for further courses in the discipline, so the effort you apply now will serve you greatly in the future.
The lecture is held in JGH 316 at 11:00 on Mondays, Wednesdays and Fridays. The lab is held in JGH 318 at 11:00 on Tuesday (Section 1) or 11:00 Thursday (Section 2)
You will be evaluated based on your performance in the lab, on weekly homework assignments, on programming projects, on exams, and on a program-demonstration exercise.
Labs are held weekly (on Tuesdays or Thursdays, depending on your section), and will contribute approximately 10% towards your grade.
Homework will be assigned and due approximately weekly. Please try the homework as soon as it is assigned. You'll be given an opportunity in class to ask questions about it. Your grade on homework constitutes about 25% of your grade.
Programming projects will be given about 4 times during the quarter. These projects will constitute about 35% of your grade.
There will be two exams in this course. The midterm exam will be given on Monday, February 10 in class. The cumulative final exam will be given on Wednesday, March 19 at 10:30 a.m. in our regular classroom. This is the date determined by the registrar (see DU Winter 2003 Final Exam Schedule). Exams will be worth approximately 30% of your grade.
Once during the quarter, you will have the opportunity to demonstrate your program to me in my office. You will demonstrate execution of the program, and explain the construction of the program and any interesting or difficult issues you came across while designing, coding or debugging. The program-demo will count for a portion of your homework grade.
Your attendance and class participation will be taken into account only in borderline cases.
When you turn in work in this course, you are implicitly agreeing that you have followed the rules for collaboration set forth for that assignment. You should not view in any way another person's assignment, nor should you possess electronic copies or hard copies of another person's assignment before that assignment has been graded and returned. Copying another person's work on homework assignments, exams, lab exercises or projects constitutes plagiarism, a violation of the University of Denver Honor Code. This code forbids plagiarism, cheating, fabrication, and aid of academic dishonesty. Please note that "aid of academic dishonesty" includes allowing another person to copy your work. This and all other violations of the University's academic standards in this class will be treated with severity. Possible outcomes include (but are not limited to) a grade of 0 on the relevant assignment and a failing grade in the course. In addition, a letter describing the incident will be sent to the Office of Citizenship and Community Standards, which will address the situation at their discretion. This office determines additional consequences for violations to the DU Honor code. These consequences may include suspension or expulsion from the University.
Homework assignments are due at the beginning of the class period on the due date. Your papers should be neatly written and organized. If your handwriting is not easily legible, then they should be typed. In this class, you may collaborate with others in the class on homework except where explicitly noted otherwise. There are limits to this collaboration, however. First, collaboration must be bi-directional. If each person is not contributing significantly to the creative effort, then it is not collaborative work, it is copying. Secondly, the collaboration is allowed for solving problems, not for writing the solutions that you turn in. Solving problems includes discussing overall strategies and resolution of details. When you write up the solutions to the assignments, however, your work must be completely your own. Although the ideas may have been generated together, your explanation of them is your own creation. You may not write up homework assignments together and you should not be in the presence of your classmates or others when you write up homework assignments. You may not copy other's written work or share your own written work. In addition, you must document the collaboration by acknowledging your co-worker's contributions (both general and specific) to your final product. Please put this at the end of your assignment. If you have not worked with anyone else on the assignment, then please write that down as well.
In this course, programming projects are individual efforts. You may not collaborate with or receive aid from others in the class, and you may not collaborate with or recieve aid from anyone outside the class. The only exceptions to this are as follows. First, you may receive help from the course instructor or TA. Second, you may seek minor assistance from another person to assist you in finding syntax errors, in tracking down pernicious bugs, or in testing your finished program. The person aiding you should not write a single line of your code, should not help you in figuring out how to fix a bug they find (or you find), nor help you in designing or re-designing algorithms. Lastly, whenever you receive allowable assistance from another person, you must document it and turn that documentation in with your assignment. Write down who it was that helped you, exactly what they did to assist you, and how much time they spent assisting you.
Programming assignments are due at the beginning of the class period on the due date. Turn in a hard copy of the header files and source code files - your name should be in a comment at the beginning of each file. In addition, mail a copy of your source code to comp1672@cs.du.edu before the beginning of class.
Your program must work correctly to receive credit. A program which does not compile will receive little credit. A program which works partially will receive partial credit. Your score improves if you attach notes documenting the incompleteness or bugs (include details of the circumstances under which they occur), since this shows the degree to which you tested your code.
Your program should be formatted logically, and should be easy to read.Comment your code well - write comments that would be useful to someone who would have to debug, maintain or enhance your code. The quality of your comments is included in your grade.
The calendar below contains links to homework assignments, links to programming projects, as well as important dates for you to keep in mind.