Summary
An array of numbers is a simple and well-known data structure. In this course, we use C++ to create and use other data structures, such as binary trees, linked lists, and hash tables, to solve problems in science and engineering.
Along the way, we learn fundamentals of object-oriented programming, including data abstraction and polymorphism. We also learn to exploit generic programming. We learn to analyze algorithmic complexity, so that we can decide which data structure or algorithm is best for a given problem.
We learn these subjects best by writing programs, so much of your time will be spent doing just that. You will attend two one-hour lectures and one one-hour lab per week, and spend more time outside the classroom reading and programming in C++.
Section B
In Spring, 2006, MACS 262 is taught in two sections A and B.
Example programs for section B can be found on isengard in
/class/cs262b/common/examples/.
Time and place
Mondays and Wednesdays (lectures) and Fridays (labs): 9:00-9:50, CTLM 229
Text
Data Structures and Other Objects Using C++, by Main and Savitch. Available at the CSM bookstore.
Course web pages
For most information on this course, including lab assignments, tentative schedule, tutorials and other handouts, go to the course web pages. Those were developed by Dr. Cyndi Rader, the instructor for section A of MACS 262. (You are in section B.)
Some consistency with section A will be maintained throughout the course, because you are expected to learn the same material (and will take the same final exam), regardless of the section for which you have registered. However, during the semester, you should routinely check back here, where any material specific to section B will be highlighted above.
Grading
Your grade is based on
- 45%: labs and other homework
- 30%: midterm exams (two)
- 25%: final exam
Late work
Most labs require skills learned in previous labs. So try not to fall behind. Programming takes time, and you will find it difficult to catch up. However, because there may be occasions when you are unable to complete a lab assignment on time, and because it is better for you to learn the material and complete a lab late than not at all, you may submit late work for grading. The penalty for late labs is as follows:
- 1 day late (e.g., by midnight Tuesday for a lab due Monday), -1 point
- 2 days late, -2 points
- 3 days late, -4 points
- 4 days late, -6 points
Labs submitted more than 4 days late will not accepted except by prior arrangement with the instructor.
If you have not completed a lab assignment, then you should submit whatever work you have completed for partial credit. If you submit work more than once, then only your last submission will be graded. You do not need permission to submit an assignment late. Late points will simply be deducted for all late assignments. For example, you need not explain that you were really ill; simply complete and submit the lab as soon as possible.
Working with others
The following policy applies to all Computer Science courses at Mines:
- If the project is an individual effort, you are not allowed to give code you have developed to another student or use code provided by another student. If the project is a group effort, you are allowed to share code only with members of your group.
-
You are encouraged to discuss programming projects with other students in
the class, provided that:
- You view another student's code only for the purpose of offering debugging assistance. Other students give advice only on what problems to look for; they do not debug your code for you. You make all changes to your code.
- You follow the empty hands rule, which means that you leave the discussion without any (electronic, mechanical or other) record of it.
- Any materials from outside sources, such as books, projects, and, especially, the Web, should be properly referenced and should be used only if specifically allowed for the assignment.
- If you are aware of students violating this policy, you are encouraged to inform the course instructor. Violations of this policy will be treated as academic misconduct by all students involved. See the Undergraduate Bulletin for a description of the Student Honor Code.
For MACS 262, assume that all projects are individual efforts, unless explicitly stated otherwise. Furthermore, material from the Web is not acceptable for this course.