csc1052 - Algorithms and Data Structures II

Instructor: Dr. Henry Carter (henry.carter 'at' villanova.edu)
Meeting Times: MW 13:30 - 14:45, W 15:00 - 15:50
Location: Mendel G87
Credits: 4
Prerequisites: CSC 1051
Office: Mendel 162 A, (610)519-5412
Office Hours: M 15:00-16:00, Tu 13:00-14:00, W 11:00-12:00, or by appointment
Webpage: http://www.csc.villanova.edu/~carterh/Courses/csc1052/sp18/index.html
Schedule: click here
TA: Andrew Keenan (akeena03 'at' villanova.edu)
TA office hours: F 12:00-14:00, Mendel 292

Overview

Topics covered include object-oriented design: inheritance, interfaces, polymorphism; problem analysis; recursion; abstract data types; dynamically linked structures; data structures: stacks, queues, collections, lists, trees.

The course objectives are:

  • Establish an understanding of interfaces, inheritance, and polymorphism.
  • Establish an understanding of recursion and recursive programming.
  • Establish an understanding of the following data structures, including the specification, implementation, and use of each: stacks, queues, collections, lists, and trees.
  • Establish an understanding of basic algorithm analysis issues, including time/space tradeoffs and algorithm growth rates.

Most of the course readings will come from the following book, with possible additional papers assigned for readings and as reference material. All sample code referenced in the text is available as a free download in the "Sample Materials" tab at the following link.

  • Object-Oriented Data Structures using Java, Fourth Edition by Dale, Joyce, and Weems, (JB Learning)

A detailed list of lectures, readings, assignments, due dates (subject to change as the semester evolves) is available on the course schedule.

Grading

Students will be evaluated based on the following breakdown:

  • 20% Quizzes Exercises Projects
  • 15% Labs
  • 40% Exams
  • 20% Final
  • 5% Class Participation

Scale: 70 ≤ C < 77 ≤ C+ < 80 ≤ B- < 84 ≤ B < 88 ≤ B+ < 90 ≤ A- < 94 ≤ A

Exam

The course will include two midterms and one final exam. Students will be responsible for material covered both in the readings AND lectures. Attendance is therefore recommended as not all class discussions will be covered in the text.

Quizzes

Quizzes may given at the beginning of class and will cover topics from preceding lectures and readings. It is strongly suggested that students do the reading prior to class, as a good percentage of their grade will depend on them. Quizzes missed because of absences can not be made up unless arrangements are made with the instructor prior to the course meeting.

Projects

Many programming projects will be assigned throughout the semester designed to exercise various problem solving techniques and the use of certain programming language constructs. While there is usually not a single "right answer" to these problems, there are definitely approaches that are better than others. Solving the problem as stated is a major part of each project, and establishing the best solutions will be stressed as well. Note that high marks may sometimes require more than just completion of the work. The work must also be of a high quality, neat, submitted on time, and when appropriate, show a certain amount of initiative and creativity.

Unless otherwise specified, all assignments are due at the beginning of class on the due date (or at the scheduled class start time if there is no class held on the due date). Assignments and project milestones are assessed a 15% per-day late penalty, with a maximum of 3 days, after which the assignment will be given a zero. Unless the problem is apocalyptic, don't give me excuses. Students with legitimate reasons who contact the professor before the deadline may apply for an extension.

Attendance and Class Participation

Since this course is oriented towards first-year students, the attendance policy follows the University attendance policy for first-year students (but applies to all students). Class attendance is mandatory. For first-year students, any more than four unexcused absences will result in a failing grade for the semester. For students beyond their first year, any more than four unexcused absences will result in a full letter grade deduction from your final grade (with continuing deductions for every four unexcused absences after that). If you are unable to attend class for any reason, please alert the professor as soon as possible. For more information see the university attendance policy here.

To do well in this course, students must take active and regular roles in discussion and demonstrate comprehension of the reading and lecture themes. Students are required to do the assigned reading before class. This will be closely monitored by the professor, thereby making a student's ability to demonstrate their comprehension of material essential to a receiving a passing grade.

Disabilities and Learning Support

It is the policy of Villanova to make reasonable academic accommodations for qualified individuals with disabilities. You must present verification and register with the Learning Support Office by contacting 610-519-5176 or at learning.support.services@villanova.edu. Accommodations cannot be made until verification is delivered to the professor, and cannot be enacted retroactively. For physical access or temporary disabling conditions, please contact the Office of Disability Services at 610-519-4095 or email Stephen.mcwilliams@villanova.edu Registration is needed in order to receive accommodations.

Academic Integrity Policy

All students are expected to uphold Villanova's Academic Integrity Policy and Code. Any incident of academic dishonesty will be reported to the Dean of the College of Liberal Arts and Sciences for disciplinary action. For the College's statement on Academic Integrity, you should consult the Enchiridion. You may view the university's Academic Integrity Policy and Code, as well as other useful information related to writing papers, at the Academic Integrity Gateway web site