Program and Data Representation
Instructor: Professor Anita Jones, Olsson Hall 223,
Office Hours: Monday: 11:00am - 12:00pm, Tuesday: 1:00pm - 2:00pm (or By Appointment)
Lecturer:Clark Coleman, Olsson Hall 231, 982-2292.
Graduate TA: Jennifer Mifflin.
Office Hours: TBD Olsson 236 (CS library)
Arun Thomas (firstname.lastname@example.org)
TA Office Hours:
Sundays : TBD p.m. Olsson 236 (CS library: Rusty)
Tuesdays : TBD p.m. Olsson 236 (CS library: Arun)
Thursdays: TBD p.m. Olsson 236 (CS library: TBD)
Course Description: Introduction to programs and data representation at the machine level. Data structuring techniques and the representation of data structures during program execution. Operations and control structures and their representation during program execution. Representations of numbers, arithmetic operations, arrays, records, recursion, hashing, stacks, queues, trees, graphs, and related concepts.
Prerequisites: CS201 (Software Development Methods) and CS202 (Discrete Math) with grades of C- or above.
Course Text: Weiss, Mark Allen. Data Structures and Algorithm Analysis in C++. Addison Wesley: 1999, second edition.
Class Meetings: Monday and Wednesday: 10:00-10:50am in Olsson 009
Lab Meeting: Tuesday: 12:00 noon - 2:00pm in Olsson 001
Final Exam: Thursday, December 12th: 9:00 - 12:00 noon
Class Attendance: Class attendance is mandatory.
Class Web Page: http://www.cs.virginia.edu/~cs216/
Grading and Evaluation: Grades will be computed as follows:
Help and Pledge Policy:
We learn a lot from each other. This is good. The lab experience is structured so that you will typically work individually, although in some cases parts of your lab will be a team effort. When working as a team, you may consult and discuss freely with your team. Some of your pre-lab and post-lab work will be done in public PC labs in which classmates will be present, however. What, in such an environment, constitutes an honor violation?
Basically in this course, the honor code pledge asserts that work which you submit as being your own, whether a lab, program, or exam, really is your own. In the case of programs there is sometimes a grey area as to what constitutes "your own work." Clearly, taking someone else's code and permuting it by changing comments, procedure order, variable names, etc. is rampant plagiarism; it is not "your own work." Suppose instead that you talk with a friend about the algorithm, and then code up that algorithm, is that plagiarism? I would say no. The intellectual challenge of this course is to take abstract algorithms, data structures, or ideas and make them work. You may freely get help understanding the algorithm, data structure, or idea - but you must make it work. The line I draw is: "if you actually look at another person's code (or let someone look at yours) you are stepping over the line."
But, to catch simple syntax errors, I ask a friend to look at my code, surely that is not an honor violation. Possibly not, but it is perilously close. By now, you are experienced enough to debug most errors. For those really hard ones, take your code to a TA, not a friend. The general rule is: "do your own coding and keep it to yourself."
I expect a signed honor pledge to be written on all homework, lab work, and exams. Most importantly, I expect you to adhere to the intent of the pledge.
Course Outline: Word 97
CS216 Labs: Click Here
C++ Environment: Click Here