CMSC
495: Special Topics: Algorithms
(Fall 2017)
(as of August 20, 2017)
Instructor: 
Scott
McElfresh (pronounced mac'  el fresh) 
Office:

Ruffner 346
Phone: x2249 
Email:

ProfScottMcElfresh
@ gmail.com
(checked more frequently) or mcelfreshsa @ longwood.edu 
Office
Hours:

 MWF
33:45pm
 Th 12:301: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:
http://cs.longwood.edu/~scottmce/Fall2017/CMSC495Algorithms
Most
of the handouts in this course will be available through this World
Wide Web address.
Canvas:
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
email when
grades and/or feedback is entered. NOTE: Canvas
does not always
calculate course grades correctly. The relative weights are
in this syllabus.
Course Description: A
survey of fundamental algorithms and algorithmic techniques, including
divideandconquer algorithms, backtracking, lower bounds, dynamic
programming,
greedy and approximation algorithms, amortized analysis, and graph
algorithms. Prereq: CMSC 262 with a grade of C or
better.
Course objectives:
At the end of the course, a successful student will be able to:
 convert moderately complicated algorithms into working
implementations
 utilize backtracking and approximation algorithms
 utilize recurrences to analyse divide and conquer algorithms
 recognize when greedy algorithms are appropriate
problemsolving techniques
 use dynamic programming techniques to solve appropriate
problems
 describe space and time complexities of algorithms
Textbooks:
There is no required
textbook for this course. Instead, there will be books in the
departmental student lounge area, online
readings, videos, and other resources.
Technology:
It is
assumed that you have a laptop that you can bring to class and can
install software on if necessary.
Pictures,
Audio, and Video:
Students
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 notetaking. However, these should
not be posted
online or elsewhere such that they might be shared with someone not
enrolled in the class.
Class Participation
and Preparedness:
A portion of the
grade is allocated to your participation in class and your preparedness
for the class period. Preparedness involves having done
assigned
readings and made effort on assigned problems.
Participation includes attendance, participation in group discussions,
and presenting your efforts and ideas to your peers.
Exercises:
This class will have a variety of
graded assignments,
including reading assignments, written exercises, and programming
exercises. Due to the varying nature, some graded work will
be
worth more than other work. Each assignment will
indicate
the weight on the assignment. Note that some
assignments
will not be "graded" but will be "checked". See
section
above on Class Participation and Preparedness.
Lateness:
Each exercise will give not only a due date, but a due time.
Some exercises may be gone over in class, so you will need permission
to hand in asisgnments late. If I agree to accept an
assignment late, there may be a 50% penalty.
Collaboration:
Unless otherwise specified, all work is assumed to be your
own. You
are encouraged to discuss the exercises with other students, but you
must
write up your own solutions. When using a calculator or
computer,
you are expected to type everything in yourself. When you
consult
with other students, you must indicate this on your submission  by
including
a note at the top or bottom indicating with whom you consulted and a
description
of the level of consultation.
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
must
fully document this in the program comments as well as any other
documentation. For some guidelines, see the Academic
Honesty in Computer Programming handout.
Quizzes:
There will be quizzes
throughout the semester. These will typically take
the form of
short (515 minutes) sets of questions. There will be no
makeup quizzes
given. If more than 5 quizzes are given,
the lowest
two quiz scores for each student will not be calculated into the course
grade.
Midterm Exam:
There will be an exam at approximately the middle of the term.
It will come in two parts:
 a takehome portion assigned Thursday, October 5 and due
the beginning of class on Thursday, October 12.
 an inclass portion on Thursday, October 12
Final Exam:
There will
be a comprehensive exam. It will be
handed out on Thursday, November 30 and will be due at 2pm on Thursday,
December 7. More details will be
announced as the time
approaches.
Grading:
The
relative weight of each item in determining
your course grade will be as follows:

Prep and Participation: 
15% 

Exercises: 
35% 

Quizzes: 
15% 

Midterm Exam: 
15% 

Final Exam: 
20% 

Course Grades will be assigned as
follows:
Course
percentage 

Course
Grade 
90  100 

A, A 
80  89.9 

B, B, B+

70  79.9 

C, C, C+ 
60  69.9 

D, D, D+ 
0 
59.9 

F 
+'s will be assigned in the top 2 percentange points of the range.
's will be assigned in the bottom 3 percentange points of the
range.

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.
Collaboration:
Unless otherwise specified, all work is assumed to be your
own. You
are encouraged to discuss the exercises with other students, but you
must
write up your own solutions. Some guidelines:
 When you
consult
with other students, you must indicate this on your submission  by
including
a note at the top or bottom indicating with whom you consulted and a
description
of the level of consultation.
 When using a calculator or
computer,
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.
 Some
exercises will explicitly allow (or even require) pair or groupwork.
In these cases, it is assumed that each person contributed
to
the work being submitted.
Efforts will
be made in class to describe these issues. If you have any
questions
as to what is appropriate and what is not, please ask me about it.
Academic
Honesty:
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
to
the Honor Board, which may impose additional penalties.
Tentative Topic outline:
Week 

Dates 

Topics 
1 

Aug 21  25 

Basic Algorithmic ideas 
2 

Aug 28  Sept 1 

Analysis intuition and proofs 
3 

Sept 4  8 

Divide and Conquer; Recurrences 
4 

Sept 11  15 

Dynamic Programming 
5 

Sept 18  22 

Dynamic Programming 
6 

Sept 25  29 

Greedy Algorithms 
7 

Oct 2  6 

Approximation Algorithms 
8 

Oct 9  13 

Probabilistic Algorithms 
9 

Oct 16  20 

Graph Algorithms 
10 

Oct 23  27 

Graph Algorithms 
11 

Oct 30  Nov 3 

NPcompleteness 
12 

Nov 6  10 

Backtracking 
13 

Nov 13  17 

Pruning 
14 

Nov 20  24 

TBA 
15 

Nov 27  Dec 1 

TBA 


Dec 7 

Final Exam due 
A detailed day by day calendar will be kept uptodate on the course
website.