You are on page 1of 3

CSE 30331 - Data Structures Syllabus - Fall Session 2013

Time and Location: Tues & Thurs 9:30-10:45am 356 Fitzpatrick Hall Course Description: The student who completes this course will have a sound understanding of many of the fundamental data structures that lie at the heart of computer science. Students will learn and implement fundamental techniques in the design and analysis of data structures as abstract data types (ADTs). Example fundamental data structures include: lists, stacks, queues, strings, vectors; and more advanced structures such as dequeues, priority queues, hash tables, graphs, and trees. For selected ADTs sorting, searching, and string processing algorithms will be discussed with respect to their asymptotic complexity and functionality. Program specification, design, and testing will be emphasized using an object oriented approach. The C++ Standard Template Library (STL) will be referenced and used throughout. The course will conclude with introduction of applied topics in data, specifically databases, data mining, and data visualization. Goals of Course: 1. Learn the fundamentals of the generic vector, list, stack, queue, and priority queue containers supplied by the Standard Template Library. Learn select advanced data structures as implemented in the BOOST C++ libraries. 2. Understand and use ADTs and APIs. 3. Develop object-oriented software engineering skills including user specifications, software design methods, implementation, and testing. 4. Develop problem solving skills with a focus on appropriate selection of data structures based on desired functionality and computational complexity. 5. Understand basic concepts in databases, data mining, and data visualization. Textbook: Data Structures and Other Objects Using C++, 4th Edition; Michael Main and Walter Savitch, Addison-Wesley 2011 Instructor: Paul R. Brenner, PhD, P.E. paul.r.brenner@nd.edu

Optional References: Introduction to Algorithms, 3rd Edition: Cormen, Leiserson, Rivest, & Stein, MIT Press The C++ Standard Library; N. Josuttis, Addison-Wesley 1999 Online Resources: http://sakai.nd.edu

Expectations: Students are expected to finish assigned readings prior to class. Students will be responsible for both the material in the text and the material covered in class. Students will show mutual respect for each other and the instructor at all times. Disruptive, dishonest, or inappropriate behavior will not be tolerated. All absences should be discussed with the instructor ahead of time. Students are welcome and encouraged to discuss all course relevant concerns with the professor. Notre Dame and CSE Policies: This course will be taught according to all ND and CSE policies (Honor Code, Students with Disabilities, Sexual Harassment, etc). The graded work you do in this class must be your own. In the case where you collaborate with other students make sure to fairly attribute their contribution to your project. Contact the instructor with any questions or concerns. Evaluation Standards: Participation, Homework, Programming Assignments, Project, Exams Evaluation Metrics (%): A (100-95), A- (94-90), B+ (89-87), B (86-84), B- (83-80), C+ (79-77), C (76-74), C- (73-70), D (69-60), F below 60

Grading Components and Evaluations: Participation Homework Programming 5% 20% 20% Midterm Exam Final Exam Final Project 20% 25% 10%

Late Assignments and Make-up Exams: All submissions will be via electronic dropbox which will be closed at 9am on the due date. Late assignments will receive a 25% penalty and no assignments will be accepted more than one day late. Make-up exams will be given ONLY if prior arrangements have been made with the instructor or an official notice is received from the University (medical, etc) Office Hours: Instructor Paul Brenner, PhD
pbrenne1@nd.edu

Graduate TA Tom Shen


fshen1@nd.edu

TTh 3-5pm, 111 Information Technology Ctr Exam Schedule (approximate): Midterm October 17th Final Exam Per Registrar

MWF 3-5pm 213 Cushing

Graduate TA Richard Molina rmolina1@nd.edu MW 5-7pm 213 Cushing

Course Schedule (approximate): Lecture 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Fall Break 17 18 19 20 21 22 23 24 25 Thanksgiving 26 27 28 29 Date Aug 27 Aug 29 Sept 3 Sept 5 Sept 10 Sept 12 Sept 17 Sept 19 Sept 24 Sept 26 Oct 1 Oct 3 Oct 8 Oct 10 Oct 15 Oct 17 Topic Introduction Runtime Analysis Linked Lists Templates and STL Templates and STL Stacks Queues Recursion Recursion Trees Trees Balanced Trees EPIC Tech Talk Balanced Trees Final Proj Mid-Pres Mid Term Exam Reading Syllabus Chapter 1 Chapter 5 Chapter 6 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 9 Chapter 10 Chapter 10 Chapter 11 Guest Lect Chapter 11 Assignments HW1 Spec HW1 Due/PG1 Spec

PG1 Due/HW2 Spec

HW2 Due/PG2 Spec

Oct 29 Searching Chapter 12 Oct 31 Microsoft Engineering Guest Lec PG2 Due/HW3 Spec Nov 5 Searching Chapter 12 Nov 7 Sorting Chapter 13 Nov 12 Sorting Chapter 13 Nov 14 Graphs Chapter 15 HW3 Due/PG3 Spec Nov 19 Graphs Chapter 15 Nov 21 ATD: BOOST Nov 26 ATD: Databases Nov 28 Dec 3 ATD: Mining/Analytics Dec 5 ATD: Visualization PG3 Due Dec 10 Final Proj Pres Dec 12 Final Proj Pres Fin Project Rep Due Per Registrar Final Exam * Mini lectures will be integrated into the normal lecture schedule and times based upon flow of the course and student interest. Current topics may include: makefiles, compilers, and profiling.

You might also like