CPSC 250A: Data Structures and Algorithms

Fall 2012

TTh: 10:10-11:40am in Trexler 363 (class)
T: 6-8pm in Trexler 263 (lab)

Dr. Anil M. Shende

Trexler 365B

Email: shende at roanoke dot edu

Tel: 540-375-2341

Office Hours: MTF 9-10am; Th 3-5pm;

and by appointment.

Course Description

In this course we will study advanced data structures, algorithms associated with, and that use, these data structures, the impact that various implementations of these data structures have on algorithms, and learn to implement these data structures and algorithms in C++.

Text

Data Structures & their Algorithms, by Harry R. Lewis and Larry Denenberg, Addison Wesley.

Prerequisites

CPSC 170, or permission of the instructor. Familiarity with Unix is assumed.

Intended Learning Outcomes

At the end of this course successful students will be able to:

  1. design, implement, and test algorithms, using the C++ programming language, on non-linear data structures,
  2. analyze the efficiency of various data structures and algorithms,
  3. informally prove the correctness and efficiency of various data structures and algorithms, and
  4. evaluate the practical implications of different implementations of data structures and algorithms.
Class Attendance

Regular attendance in class and the lab sessions is highly recommended. Regardless of attendance, students are responsible for all material covered or assigned in class.

 
 

Mechanics

The course will meet in class for 3 hours during the week, and there will be a 2 hour laboratory period. The concepts studied in class will be complemented by several programming and laboratory assignments. There will be three tests (on September 20, October 11, and November 15) in class during the semester. The final exam is scheduled for Thursday, December 13, 2012 from 8:30 - 11:30am.

Make-up tests will be available by pre-arrangement only in case of scheduling conflicts. After the test, make-ups will be available only in case of documented medical emergencies.

Besides the exams, there will be quizzes in class, regular homework assignments, short programming projects, and a co-curricular requirement.

Quizzes: Quizzes will be in class and will be announced one class period before the quiz.

Programming projects: There will be several short programming projects assigned during the semester. Programs will be graded on correctness, style and documentation. Programs are due by midnight on the assigned date. No late programs will be accepted. All programs are to be turned in by email; instructions for submission will be given in the assignment handout.

Co-curricular Requirement: The Mathematics, Computer Science and Physics department offers a series of discussions that appeal to a broad range of interests related to these fields of study. These co-curricular sessions will engage the community to think about ongoing research, novel applications and other issues that face these disciplines. Each student is required to attend at least three of these sessions, and turn in a short paper describing the contents of the session, and his/her critical reflections about the topic and content. These papers are due in class within a week of the session. A paper submitted beyond a week from the event being discussed in the paper will not be accepted.

Grading

The final grade will be computed based on the grades in the tests, the final exam, home works and programming projects according to the following weights.

Component Weight
Co-curricular4%
Home works10%
Quizzes10%
Programming Assignments26%
Tests (3)30% (10% each)
Final Exam20%

The final course grade will be calculated as follows:

< 60 60-62 63-65 66-69 70-72 73-75 76-79 80-82 83-85 86-89 90-92 > 92
F D- D D+ C- C C+ B- B B+ A- A

Academic Integrity

Students are expected to adhere to the Academic Integrity policies of Roanoke College. All work submitted for a grade is to be strictly the work of the student unless otherwise specified by the instructor. The policies as outlined in the Academic Integrity handbook will be enforced in the course.

Graded programs are subject to the Roanoke College Academic Integrity policies. Copying a program or a portion of a program (even a single line) or reading another person's program to obtain ideas for solving a problem is plagiarism. Other examples of integrity violation include writing code for some else, using code written by someone else, telling someone else how to solve a problem or having someone tell you how to solve a problem (and using their method). These cases apply to any work that is handed in for a grade under the instructor's assumption that the work is your own. Unless specified otherwise by the instructor, discussion among students should be limited to general discussion of concepts and language details, not specific aspects of a solution to the assigned problem.