2/15/05: Late policy for programming assignments: you will lose 15% per day for a late assignment. Assignments will not be accepted more than 4 days after the specified due date.
2/17/05: A sample solution to Programming Assignment 1 has been posted on the assignment description page.
Instructor: Dr. Dawn Lawrie
Office: Donnelly Science Center 125b
Work Phone: (410)617-2140
Office Hours: M 2-4, W 12-2, before and after class at the graduate campus as needed, or by appointment
e-mail: lawrie<at>cs<dot>loyola<dot>edu
Course Home Page: http://www.cs.loyola.edu/~lawrie/CS631/S05/index.html
Class Meeting: Lecture Tu 5:30-7:40PM
Prerequisite: CS 630: Computing Fundamentals I
Incoming students should have:
Required Text: Carrano, Frank, Data Abstraction and Problem Solving with C++:
Walls and Mirrors (4th
ed.), Addison-Wesley: Boston, MA, 2005.
Supplementary Text: Deitel, H. M. and P. J. Deitel, C++ How to Program
, Prentice Hall: Upper Saddle River, NJ, 2003. (Any edition is fine)
Recommended IDE: Microsoft Visual C++ 6.0 (available with Deitel and Deitel, 4th Edition).
If you do not have a development environment, you may be successful with JGRASP, which is the environment used in our undergraduate program. To install:
Course Description:
This course provides an intermediate level introduction to the fundamentals
of structured programming, object-oriented programming, and generic programming
in the C++ language. Key topics include recursion; pointers; dynamic memory allocation; file processing; simple time complexity analysis; and elementary data structures such as stacks, queues, linked lists, and binary trees.
Specific Educational Objectives of the Course:
Upon completion of the course, students will:
Conduct of the Course:
Lectures will be used to introduce, explain, and practice using new materials. Reading from the textbook will enhance your
understanding of those lectures. Weekly
homework assignments (not necessarily done at a computer) will reinforce the
concepts discussed in lecture. The computer portions of the assignment will be submitted to me via email and used to provide feedback on programming technique and style.
Homework assignments, programming projects, and exams will be used to ascertain your performance in the course. Unless prior arrangements are made, the homework and the programming projects must be submitted by their announced due-dates, or be subject to a grading penalty. All programming will be submitted using email. Two exams and a final exam will also be used to evaluate students' progress.
Academic Integrity:
Loyola College Honor Code Statement:
"The Honor Code states that all students of the Loyola Community have been equally entrusted by their peers to conduct themselves honestly on all academic assignments.
The students of this College understand that having collective and individual responsibility for the ethical welfare of their peers exemplifies a commitment to the community. Students who submit materials that are the products of their own minds demonstrate respect for themselves and the community in which they study.
All outside resources or information should be clearly acknowledged. If there is any doubt or question regarding the use and documentation of outside sources for academic assignments, your instructor should be consulted. Any violations of the Honor Code will be handled by the [Graduate Program Director]."
The Honor Code as is pertains to this class:
In general, any copying of an assignment, whether electronically or by hand is considered plagiarism. Students submitting non-trivial projects with identical structure will be considered to have acted dishonestly. Such students may be reported to the Graduate Program Director. At the very least, two or more students presenting assignments identical in all important aspects will share the points from a single grade.
Grading:
Final Grade Distribution:
Final letter grades will be
no worse that those in the following table.
|
A |
A- |
B+ |
B |
B- |
C+ |
C |
|
90% |
87% |
83% |
80% |
77% |
73% |
70% |
Course Outline of Class Lectures:
|
Week Number Date |
Topics | Text Reference | Material Due |
| 1 1/18 | Review of C++ Programming Concepts | Appendix 1 | |
| 2 1/25 | Programming Principles Software Engineering | Chap 1 | Hwk 1 |
| 3 2/1 | Recursion | Chap2 | Hwk 2 |
| 4 2/8 | Data Abstraction | Chap3 | Hwk 3 |
| 5 2/15 | Linked-Lists | Chap 4 | PA 1 |
| 6 2/22 | More Linked-Lists | Chap 4 | Exam 1 |
| 7 3/1 | More Recursion | Chap 5 | Hwk 4 |
| 8 3/15 | Stacks | Chap 6 | PA 2 |
| 9 3/22 | Stack Applications | Chap 6 | Hwk 5 |
| 10 3/29 | Queues | Chap 7 | PA 3 |
| 11 4/5 | Advanced C++ Topics | Chap 8 | Exam 2 |
| 12 4/12 | Binary Search Trees | Chap 10 | Hwk 6 |
| 13 4/19 | Algorithmic Efficiency and Sorting | Chap 9 | Hwk 7 |
| 14 4/25 | More Trees Review | Chap 10 | PA 4 |
| 15 5/2 | Final Exam | Final |