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
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
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 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
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
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 email@example.com. 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.firstname.lastname@example.org
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
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