162: Introduction to Algorithmic Design II
(as of August 21, 2017)
McElfresh (pronounced mac' - el- fresh)
(checked more frequently) or mcelfreshsa @ longwood.edu
- Th 12:30-1:30pm
- or when I am in my office with the door open
- or by appointment
Other times may be announced in class or on the website.
Course Web Page:
of the handouts in this course will be available through this World
Wide Web address.
Canvas will be used for
submission of some assignments and recording of grades on individual
assessments. You may wish to set up Canvas to send you an
grades and/or feedback is entered. NOTE: Canvas
does not always
calculate course grades correctly. The relative weights are
in this syllabus.
From the catalog:
"A continuation of CMSC 160. Topics include algorithmic
design, complexity analysis, abstract data types, and encapsulation and
basic data structures. Advanced topics using a modern high-level
programming language such as inheritance, overloading, and use of
objects. Prerequisite: Grade of C- or better in CMSC 160. 4 credits."
At the end of the course, a successful student will be able to:
- explain, implement, and use a set of standard data
including linked lists, trees, and tables.
- identify appropriate implementations of data types such as
- compare and contrast standard algorithms via multiple
- apply object-based principles to creating solutions to
Textbooks: There is one textbook
required for this course.
Technology: It is
assumed that you have a laptop that you can bring to class and can
install software on if necessary. The software to be
used is free. It is assumed that you can access the
LancerNet wireless network (the LancerNet Visitor will not suffice).
- C++ Plus Data Structures,
edition., by Dale, Weems, and Richards (should be
be available in
- Used copies are fine. We will not be using
their online system.
Pictures, Audio, and
should not take audio or video recordings in the classroom without
prior permission. Still pictures of the board may
be taken as a
supplement to note-taking. However, these should
not be posted
online or elsewhere such that they might be shared with someone not
enrolled in the class.
The exercises in thiscourse will include readings, program
program/script creation, or other work.
come from three scenarios:
Some class days will be "lab days" where there will be an
exercise to be completed in class. Some of these will be
individual assignments while others will be group or paired work.
Labs will be due at the end of the class period.
You will need to have your laptops on these days.
Late submissions due to absence will require permission and
incur a 50% penalty. Note: These days will most
be held on Thursdays, but there may be other days as well.
non-Thursdays will be announced ahead
These will be assignments to be completed outside
class. Some of these may be due the very next class period
others may have a longer handin horizon,
depending on the nature of the
Late submission will require permission and may incur a 50%
There will be assignments that contain a portion
to be done in class
and a portion to be done outside of class. Late
require permission and may incur a 50%
Feedback: Some assignments will be drill exercises
with minimal feedback (it works or it doesn't) while others
receive more feedback on things like style and partial correctness.
This should be clear on each exercise.
the varying nature and horizon of assignments, some assignments will be
worth more than others. The overall exericses grade will e
determined by adding up the number of points received on
exercises, and dividing that number by the total number of points that
was possible to recieve on exercises.
There will be quizzes
throughout the semester. These will typically take
the form of
short (5-15 minutes) sets of questions. There will be no
given. If more than 5 quizzes are given,
two quiz scores for each student will not be calculated into the course
There will be two in-class exams. They
will be given on the following dates:
#1) Friday, September 29
#2) Wednesday, November 8
There will be no makeup exams given without proper medical
be a comprehensive
written exam. More details on this will be
announced as the time
- Monday, December 4, 11:30am-2pm
SPECIAL NOTE: Exercises that
are not handed in, or quizzes and exams not taken will count as a 0.
Canvas does not always calculate these accurately.
relative weight of each item in determining
your course grade will be as follows:
||Course Grades will be assigned as
+'s will be assigned in the top 2 percentange points of the range.
|90 - 100
|80 - 89.9
|B-, B, B+
|70 - 79.9
|C-, C, C+
|60 - 69.9
|D-, D, D+
| 0 -
-'s will be assigned in the bottom 3 percentange points of the
Unless otherwise specified, all work is assumed to be your
are encouraged to discuss the exercises with other students, but you
write up your own solutions. Some guidelines:
be made in class to describe these issues. If you have any
as to what is appropriate and what is not, please ask me about it.
- When you
with other students, you must indicate this on your submission - by
a note at the top or bottom indicating with whom you consulted and a
of the level of consultation.
- When using a calculator or
you are expected to type everything in yourself.
- You should never be using "Save As" for another person's
computer files or emailing your work to another student for them to
modify and hand in.
exercises may explicitly allow (or even require) pair or group-work.
In these cases, it is assumed that each person contributed
the work being submitted.
- When doing
computer programming, you will often be utilizing someone else's ideas
or code and modifying them to be your own. In this case, you
fully document this in the program comments as well as any other
documentation. For some guidelines, see the Academic
Honesty in Computer Programming handout.
Longwood University is an academic community that
subscribes to an honor system.
By accepting membership in this community, we all assume the obligation
to be trustworthy in all pursuits. Violations may receive
grade penalties in the course and be referred
the Honor Board, which may impose additional penalties.
Tentative Topic outline:
|| Aug 21 - 25
|| Review; Intro to Separate Compilation; Testing
|| Aug 28 - Sept 1
|| References; Classes; Objects
|| Sept 4 - 8
|| Objects; List structures
|| Sept 11 - 15
|| Sept 18 - 22
|| Runtime Analaysis
|| Sept 25 - 29
|| Recursion with data structures
|| Oct 2 - 6
|| Algorithms and analysis
|| Oct 9 - 13
|| Stacks and queues
|| Oct 16 - 20
|| Dynamic Memory Management
|| Oct 23 - 27
|| Linked Lists
|| Oct 30 - Nov 3
|| Linked Lists ;Bucketing; Hashing
|| Nov 6 - 10
|| Threaded lists
|| Nov 13 - 17
|| Binary Search Trees
|| Nov 20 - 24
|| Nov 27 - Dec 1
|| Dec 4
|| Final Exam
A detailed day by day calendar will be kept up-to-date on the course