Course:                      CS‑285 FUNDAMENTALS OF DATA STRUCTURES  (Section 3)

 

Lecture:           M, F:    4:00pm – 4:50pm  (CC-49)

Lab:                 Wed:     3:00pm – 4:50pm  (CC-49)

 

Instructor:       Dr. Jeff Blessing

Email:              blessing@msoe.edu

Office:             CC‑27a

Hours:             M, W, Th, F: 2:00pm – 2:50pm and by appointment

Phone:             277‑7194

Text:                Data Structures in C++ Using the Standard Template Library

by Timothy Budd, Addison-Wesley, 1998.

 

Objective:        This course introduces fundamental concepts in Data Structures and Algorithm Design.  Emphasis in this course will be placed on learning the C++ Standard Template Library (STL).  Time complexity and analysis of algorithms will also be covered, along with temporal and spacial analysis of data storage techniques.  It is assumed that the student is already familiar with the C++ language and has successfully completed at least one Algebra course.  (Prerequisite: CS-182, CS-183)

 

Grading:          Weekly Quizzes                        40%

                                    Programming Assignments         30%

                                    Final   (week 11)                       30%

          

No incomplete grades or makeup exams will be given (without very extenuating circumstances)

 

Attendance:     Although not reflected in the grading for this course, attendance is strongly encouraged.  If chronic absenteeism is a problem, attendance will be taken.  Exam material will come from both the text and class discussions.  Students will NOT be automatically dropped from the roster if 3 successive classes are missed.

 

Late Policy:     Assignments are due at the beginning of the class period that was designated as their due date.  A 10% penalty will be assessed for each day an assignment is late.

 

Topics:             Abstract Data Types (C++ review)

                        Time Complexity of Programs

                        Recursive Procedures & Functions

                        Strings, Lists, Stacks, Queues

                        Sorting Algorithms (Heapsort, Quicksort, Mergesort)

                        Lower Bounds on Sorting

                        Trees & Binary Trees

                        Hashing

                        Sets & Multi-sets

                        Maps & Multi-maps

                        Graph Algorithms:  (if time)

                                    Graph Representation

                                    Shortest Path Problems

                                    Spanning Trees

                                    Circuits & Cycles

                                    Directed & Undirected Graphs