EECE.3220: Data Structures

Instructor: Dr. Michael Geiger

Spring 2020


Course Schedule THIS PAGE IS CURRENTLY UNDER CONSTRUCTION

This page contains a tentative schedule of topics we will cover throughout the term. As the semester progresses, I will update the schedule to show the actual dates on which we cover material, as well as provide links to the lecture slides. Note that most lectures are associated with some section(s) of the textbook, which I suggest you read prior to class. Additional reading material includes relevant tutorials from http://www.cplusplus.com. The reading assignments will be updated as the semester goes on.


Assignments: All assignments will be part of the textbook, a web-based text available through the zyBooks website. You will have short exercises to complete in each section of the text, with due dates to be posted as the semester goes on. You will also have several longer programming assignments to complete. To purchase the text, please follow the directions listed on the Blackboard site--you should access the text through Blackboard both for the initial purchase and to complete all assignments.


Exams: The first exam will be held Thursday, 10/3, from 2-4 PM in Ball 328.. The second exam will be held Thursday, 11/7, from 2-4 PM in Ball 328. The third exam will be held Tuesday, 12/17, from 8-11 AM in Olsen 407.

 

Lecture Recordings: Echo360 recordings are available from https://echo360.org/. Select "Log in via Institution," choose "University of Massachusetts-Lowell" from the drop-down list, then log in with your UML e-mail address and password. You will then be able to view lecture recordings from all courses in which you are enrolled, including this one. Recordings are also available on the course Blackboard site.

 

Week Date (Mon.) Lecture Topics Handouts Reading Assignments

1

9/2

 No Monday lecture--Labor Day

 1. Course introduction

 2. C to C++: input/output

 Syllabus

 Lec. 2 questions

 Manipulator examples (.cpp)

 F: 1.1-1.12, 2.1-2.24

    3.1-3.20, 4.1-4.13

2

9/9

 3. C to C++: functions

 Tuesday, 9/10: last day to add without permission number

 4. C to C++: strings (continue Lec. 3 slides)

 5. String examples (Lec. 3 slides); algorithmic complexity

 Lec. 3 & 4 questions

 M: 6.1-6.8

 W: Review 2.15, 3.12-3.15

 F: 18.1-18.6

 Ch. 1-4 exercises

 (due 9/16)


 Program 1 (Sec. 2.25, 3.21, 4.14, 6.19)

 (due 9/20)

3 9/16

 6. Algorithmic complexity (continued) (continue Lec. 5 slides)

 Tuesday, 9/17: last day to add/drop course

 7. Abstract data types

 8. Class basics (continue Lec. 7 slides)

 Lec. 5 & 6 questions

 Lec. 7-10 questions

 M: None

 W: 17.4-17.5

 F: 7.1-7.10

 Ch. 18 exercises

 (due 9/24)


 HW 1 (Solution)

 (due 9/30)

4 9/23

 9. Classes and composition (continue Lec. 7 slides)

 10. Initialization lists

 11. Dynamic allocation

 Lec. 11 questions

 Class examples:

 Point.h | Point.cpp

 Rectangle.h | Rectangle.cpp

 Main program

 M: None

 W: 7.11-7.12

 F: 8.1-8.3

5 9/30

 12. Vectors

 13. Exam 1 Preview

 EXAM 1: Thursday, 10/3, 2-4 PM, Ball 328

 No Friday lecture

 Vector examples (.cpp)

 M: 5.1-5.11

6 10/7

 14. Stacks

 15. Stacks (continued) (continue Lec. 14 slides)

 16. Exam 1 Review

 Array-based stack code:

 Stack.h | Stack.cpp

 Test program

 M: 20.12-20.13, 20.17

 W: None

 F: None

 Program 2 (Sec. 7.20, 7.21)

 (due 10/16)

7 10/14

 No Monday lecture--Columbus Day

 17. Linked stacks (Tuesday, 10/15)

 18. Linked stacks (continued) (continue Lec. 17 slides)

 19. Operator overloading

 Linked stack code:

 Node.h | Node.cpp

 Test program (Node only)

 Stack.h | Stack.cpp

 Test program (Stack class)

 M: None

 W: None

 F: 7.13-7.14

8 10/21

 20. Operator overloading (continued)

 21. Templates

 22. Queues

 Lec. 22 questions


 Stack template code (linked):

 Node.h | Stack.h

 Test program


 Queue template code (array-based):

 Queue.h

 M: None

 W: 13.1-13.3

 F: 20.14-20.16

 Ch. 20 exercises

 (due 11/1)

9 10/28

 23. Linked queues (continue Lec. 22 slides)

 24. Finish linked queues (continue Lec. 22 slides)

 25. Linked lists

 Lec. 25 questions


 Linked list code:

 LList.h | LList.cpp

 Test program

 M: None

 W: None

 F: 20.1-20.10

10 11/4

 26. Finish linked lists

 27. Exam 2 Preview

 Exam 2: Thursday, 11/7, 2-4 PM

 No Friday lecture

11 11/11

 No Monday lecture--Veterans Day

 28. Exam 2 Review

 Thursday, 11/14: Last day to withdraw

 29. Recursion

 Lec. 29-31 questions

 W: None

 F: 11.1-11.9

12 11/18

 30. Binary search trees

 31. Binary search tree operations

 32. Balanced BSTs: AVL and red-black trees

 Lec. 32-33 questions

 M: 22.1-22.3

 W: 22.4-22.10

 F: 23.1-23.4

 Ch. 11 exercises

 (due 11/25)


 Program 3 (Sec. 20.18)

 (due 12/9)

13 11/25

 33. Balanced BSTs: AVL and red-black trees (continue Lec. 32 slides)

 No Wednesday, Friday lecture--Thanksgiving Break

 M: 23.5-23.8

14 12/2

 No Monday lecture--university closed

 34. Heaps

 35. Priority queues and hash tables

 Lec. 34 questions

 Ch. 22 & 23 exercises

 (due 12/12)

15 12/9

 36. C++ standard containers

 37. Exam 3 Preview

 Classes end Thursday, 12/12

 Program 4 (Sec. 20.19)

 (due 12/18)

  12/17

 EXAM 3: Tuesday, 12/17, 8-11 AM in Olsen 407

 Course evaluation form--must be completed before exam

 


Last update01/21/2020 10:17 PM