![]()
CSCI 340 Data Structures and Algorithm Analysis Fall 2012
![]()
Professor Nathalie Japkowicz
Office: PM 559
Phone: (815) 753-3846
E-mail: nat@cs.niu.edu
Office Hours:
Tuesday/Thursdays 11am-12pm
TA
Geoffrey Miller
Office: PM 254
Phone: (815) 753-3935
E-mail: Z1644162@students.niu.edu
Office Hours :
Monday/Wednesday 9 :30am-12:30pm
·
Keep
on checking http://omega.onyuksel.net/courses/340/index.html for important
announcements (including assignments) as well as useful resources.
·
Assignments
must be submitted to the TA in two formats:
o
On-line,
by submission as described at http://omega.onyuksel.net/courses/340/index.html
o
On
paper, by submission to the TA (The paper and online submissions must be
identical. The TA will use the paper copy to record his comments)
Time: Tuesday/Thursday: 9:30am – 10:45am
Location: PM 203
Textbooks
·
Required: The C++ Standard Library: A Tutorial and Reference,
Nicolai M. Josuttis, Addison-Wesley, 1999
·
Recommended: Data Structures and Algorithm Analysis in C++, third edition, Mark
Allen Weiss, Addison Wesley, 2006 — The lecture slides will be mostly based on this book.
The slides presented in class will be available on Blackboard.
The
application of analysis and design techniques to nonnumeric algorithms on data
structures.
The utilization of algorithmic analysis and design criteria
in the selection of methods for data manipulation. PRQ: CSCI 241
Your final grade will be broken down as:
· 20% ……………………………. Assignments
· 25% ……………………………. Midterm 1
· 25% …………………….……… Midterm 2
· 30% …………………….……… Final exam
The grading scale used for this course is:
|
A: 90-100% |
B: 80-90% |
C: 70-80% |
D: 60-70% |
F: 0-60% |
There is no rounding up to the nearest letter grade.
There will be several computer assignments in
programming language C++. These assignments need to be coded, tested, run, and
debugged on the Computer Science Department’s Unix-based system.
You must
include the following information (in the form of a “Doc.-Box”) at the top of
each computer assignment that you turn in for grading:
a)
Your name,
b)
The assignment number, and
c)
The date the assignment is due.
The course
TA will grade all computer assignments. When your assignment is ready, submit
the source codes of your computer assignment to your TA for grading. If you
have any questions about the grading of one of your assignments, or if you do
not agree with the way that one of your assignment is graded, you must confer
with your TA first. If you’re still not satisfied with your grade, bring your
graded assignment to your instructor. On reviewing your assignment, your
instructor may assign a grade that differs from the one given by your TA. The
new grade may be higher or lower than the grade given by your TA.
The
maximum grade that you can receive for a late assignment will be reduced by 10%
of the maximum possible points for each day – includes weekends and university
holidays – that the assignment is late.
Computer
assignments will be graded using the following criteria:
a)
Program
output and compliance with the stated objectives and specification of the
assignment => 60%
b)
Structure and efficiency => 20%
c)
Documentation => 20%2
Any computer assignment that is submitted for grading that contains any
compile-time errors, will receive zero points.
Course Web Page and E-mails:
Hard
copies of handouts of computer assignments will not be available, but they will
be posted as PDF files on the course web page at http://omega.onyuksel.net/courses/340/index.html. Also, any additional
information for an assignment can be posted on the course web page or sent to
you by an e-mail, so you are responsible of checking the course web page and
your e-mails on a regular basis.
Attendance:
You’re
responsible for all material presented in class. If you miss a lecture, be sure
to obtain class notes from a classmate before the next class meeting.
Independent Work:
Everything
that you do in this course must reflect your own work. If you copy all or part
of another student’s work, no matter where or how you get it, it will be
considered as an act of cheating. This is not to discourage discussions among
classmates. However, discussions should not be as extensive and detailed as to
border on collaboration.
Cheating of any form cannot be tolerated. Any student caught on cheating will receive a grade of an F for the course with possible disciplinary action from the university.
Tentative
Schedule (The assignments will be announced in class and posted at http://omega.onyuksel.net/courses/340/index.html
|
Week |
Week of |
Topics |
Slide Set Numbers |
Exams |
|
1 |
Aug 27 |
Course Organisation; Algorithm Analysis, Overview
of the C++ Standard Template Library (STL) |
1, 2, 3,
4 |
|
|
2 |
Sept 3 |
Basic Data Structures: Arrays, Lists, Stacks, Queues STL Sequence Containers: String, Vector, Stack, Queue, Dequeue, List STL Iterators |
5, 6, 6-extra1, 6-extra2 |
|
|
3 |
Sept 10 |
STL Sequence Containers (cont’d): Stack, Queue, Dequeue, List STL Iterators, Functors
STL Associative Containers: Set, Multiset,
Map, Multimap |
6-extra3, 6-extra4, 6-extra5, 7, 7-extra1, 7-extra2
|
|
|
4 |
Sept 17 |
Beginning of Term Question Session (Homework,
Course Contents, Programming, etc.); Algorithms: Sorting STL Algorithms: Non-modifying Sequence Operations, Modifying
Sequence Operations, Sorting |
8 8-extra1 |
|
|
5 |
Sept 24 |
Binary Trees: Concepts, Binary Search Trees, Insertions,
Deletions, Traversals Binary Search Trees: Search, Insertion, Deletion |
9 10 |
|
|
6 |
Oct 1 |
Beginning of Term Question Session (Homework, Course Contents, Programming, etc.); Midterm 1 Review |
||
|
7 |
Oct 8 |
Midterm 1 Balancing a Tree: Overview, AVL Trees |
11 |
Midterm 1 |
|
8 |
Oct 15 |
Balancing a Tree (cont’d): B-Trees Heaps: Heaps as Priority Queues |
11 12 |
|
|
9 |
Oct 22 |
Heaps (cont’d): Organizing Arrays as Heaps Tree Applications |
12 13 |
|
|
10 |
Oct 29 |
Dictionnaries More Sorting |
14 15 |
|
|
11 |
Nov 5 |
Hashing |
16 |
|
|
12 |
Nov 12 |
Midterm 2 Review Midterm 2 |
Midterm
2 |
|
|
13 |
Nov 19 |
Hashing (cont’d) Thanksgiving Break |
16 |
|
|
14 |
Nov 26 |
Graphs: Representation, Traversals, Shortest Paths |
19 |
|
|
15 |
Dec 3 |
Graphs (cont’d): Spanning Trees, Topological Ordering,
Cycle Detection Final Review |
19 |
|
|
16 |
Dec 10 |
Finals
week |
Final |