CSC 443 Data Structures
Linear lists, stacks, queues, sequential and linked allocation of storage, circular lists, applications. Binary and ordered trees, traversing and threading trees, garbage collection, multilinked structures, dynamic storage allocation, data packing, hash coding. Computer projects.
Students should have an extensive background in programming, including an extensive knowledge of and object oriented programming in C++ as taught in CSC 441 Object- Oriented Programming (formerly CSC 345) or CSC 172 Computer Science II
Office Hours: will be held in Engineering 323, Tentative schedule:
Monday: 11:00 AM – 1:30 PM
Tuesday: 11:00-11:30 AM,
Wednesday: 11:30 AM – 1:30 PM
If I am not in, please check the computer lab across the hall.(E372)
Internet Usage: We will use the Blackboard software which is available at
http://knowledge.udmercy.edu/. Blackboard will be used communication (e-mails and announcements) and for distributing class handouts and examples, and grades
Please check that that your current e-mail address is registered in Blackboard. You may send me an e-mail from Blackboard; however you should make a note of the following address , in case Blackboard is down.
E-mail is the most efficient way to reach me. Please put a note in the subject line to indicate that it concerns the CSC 443.
Please send me an e-mail from the e-mail account that you plan to use. I will send you a confirmation. Let me know if you do not receive a confirmation from me, it probably means that spam-blocker stopped. Let me know an I will “white-list” you e-mail address. You should not need to do this if you use your students.udmercy.edu account.
Mark Weiss Data Structures and Algorithm Analysis using C++, 3nd Edition. Addison-Wesley, ISBN: 0-321-37531-9
There will also be supplementary lecture notes and handouts.
Texts used in pre-requisite courses may be valuable references.
The in-class examples and projects were originally developed for Microsoft Visual C++. As students registered in this course, you can obtain a copy of the current version 2010. If you have a copy of the previous version, you should be able to use it.
I will give you a header file Rmc2011-a.h which will detect which version you are using and include the proper header files and set the proper compiler settings. It also support pre-standard versions of MS C++
Upon completion of the course, students will
There be 2 Exams, a midterm and a final. The Midterm will count for 20% of the grade; the final will count for 40%. The remaining 40% will be based upon the programming assignments.
The current plan is for this exam to be open-book open notes, closed computer, and closed friends.
If the reasonably small, we can have a different grading system, whereby the computer assignments will count for 50% of the grade. The other 50% would be take home exams and homework assignments.
Students are expected to attend class on a regular basis and participate in the discussions. They are responsible for all the material presented therein. If it becomes necessary, I will take formal attendance and record participation levels.
The instructor will attempt to make reasonable accommodations for students who miss a class due to illness, death in the family, or other legitimate reasons. However students who are forced to miss several classes will have difficulty completing the course in a satisfactory manner.
Students may be asked to attend some fo the department colloquia when the subject is relevant to the course. In particular, there will be an insightful talk on Game Theory and the game NIM at one of them. Students should attend that; there will be some related homework problems.
Students are expected to conform to a high standard of honesty and integrity in this course. Copying the work of someone else and other forms of cheating are strictly prohibited. Permitting or tolerating such behavior is also prohibited. The minimum penalty for any offense is a 0 on that assignment. The culprits may be subject to additional sanctions, up to and including expulsion from school for serious offenses, as prescribed by the University Catalog and the Engineering Science Student Handbook.
For the group programming assignments, you obviously are free to cooperate with members of your own team. But the sharing of code between teams is explicitly forbidden.
Make Up exams will only be given to students who miss an exam for legitimate reason (as defined above under "Attendance") and who notify the instructor in advance.
Other Important Dates
You can also read the tentative academic calendar online. Look at AY 2010-2011 which now is the first column http://www.udmercy.edu/registrar/academic-calendar/1113calendar3yr.pdf. Some important dates to note are
January 14 Last Day to Add or Delete a Class
January 17 Martin Luther King, Jr. Holiday (No classes/Offices Closed)
March 1 Mid-term grades Due from Faculty
March 7 - 12 Mid-Winter/Spring Break (No classes/Offices Open)
March 31 April 1 Last Day to Withdraw from Class for Winter
March 27 Honors Convocation
April 22-24 Easter Recess - University Closed
April 25-30 Final Exam Week
April 30 Official End of Term II Winter 2011
May 2 Grades Due for Term II Winter 2011
May 14 Baccalaureate/Commencement 2011
Tuition Refund Policy
This is primarily of concern to part-time students. You can find the refund policy at http://www.udmercy.edu/weblink/registration/faqs/index.htm. Note that it falls off very fast. No refund is available after two weeks..
The University complies with the Americans
with Disabilities Act. Students who seek
an accommodation should contact the Director of UAS/Disability Support Services
in the Learning Center. More information
is available at http://www.udmercy.edu/uas/disability-support/index.htm
The header file will include tools that allow you to date/time-stamp your output. These are based upon the Microsoft Foundation Classes (MFC). You will need to adjust the Project Settings to include the MFC classes.
Unlike programs written in more self-documenting language like Pascal, CL programs tend to be cryptic and difficult to understand. Students should make judicious use of informative comments in their projects. Note that comments that merely repeat the meaning of an instruction are not informative. Comments should explain the purpose and functioning of code, not merely repeat it. (Some of the class handouts and text examples will have comments targeted at students learning the language for the first time. These comments would, of course, be inappropriate for other programs and for the homework assignments.)
Each program should certainly include a comment near the beginning giving the name of the project, the author, and his/her section number. Some explanation of each function is usually appropriate