Data Structures Course Number: CSC 512 Term: Summer 2018 Instructor * : Richard Riehle Dates: July 10 th July 25 th Institution: Office Hours: International Technological University TBA Meeting Times: M, T, W, TH, F *Additional instructor information available on final page I. Course Description: Definition, design, and implementation of data structures, including arrays, stacks, queues, heaps, and linked structures. Structures include various types of hash tables, trees, and graphs. Algorithms for manipulating these structures, for searching, and sorting, and the simpler graph algorithms; introduction to the analysis of some sorting and searching algorithms. II. Learning Objectives: Learn to store and access data in a computer with fast and efficient algorithms (data structures). Understand the mathematics behind algorithms so that you can evaluate the efficiency and speed of their own (and other s) code. Learn what data structures are most efficient under different circumstances and also learn how to evaluate which tool is the correct one for a particular job. Learn the common data structures and algorithms used in most applications. For example Lists, Stacks, Queues, Trees, Hashes, Heaps, and Sorting. Learn how to implement the common data structures in the Java, C++, Python and other programming languages.
III. Required Textbook and Course Materials: Data Structures and Algorithms by Alfred V. Aho, Jeffrey D. Ullman and John E. Hopcroft, Addison-Wesley ISBN 0-201-00023-7 IV. Language of Instruction: This course is taught entirely in English, including lectures, homework/other assignments and examinations. Teaching assistants will be fluent in both English and Mandarin. V. Course Prerequisites None. Attendance University Policies Summer courses are very intensive and in order to be successful, students need to attend every class. If you need to miss a day of class, make sure you speak with the course instructor first. Otherwise the absence will be unexcused. If you need to miss class due to illness, please bring a doctor s note. Unexcused absences will negatively impact your grade, and university policy states that students with three or more unexcused absences will be referred to the Dean s office and face automatic failure of this course. Academic Dishonesty All cases of academic dishonesty will be diligently pursued. Academic dishonesty includes representing the work of another as one s own work or cheating by any means. Academic dishonesty also includes aiding, abetting, concealing or attempting such activity. The penalty is automatic failure of the course and possible suspension from the university. Grading Scale Student grades will be determined using the following grading scale:
Grading Scale (%) 97-100 A+ 77-79 C+ 93-96 A 73-76 C 90-92 A- 70-72 C- 87-89 B+ 67-69 D+ 83-86 B 63-66 D 80-82 B- 60-62 D- 0-59 F Instructor Policies Course Policies: All course deliverables (homework and exams) are due on time as assigned. This course includes no make-ups, postponements or additional assignments, except for verified medical emergencies. If you miss an exam/assignment due to a non-verifiable absence, your score on that exam/assignment will be zero. Attendance: Daily attendance will be taken by your Teaching Assistant and is required for all lectures and in-class activities. Grade Components Quizzes 20% Assignments 20% Mid Term Exam 25% Final Exam 35% Total 100%
Lecture Topics Tentative Course Schedule Assessments through Required work hours Introduction to the chosen programming language and the programming environment Algorithm Basics, running time orders Data Structure Basics Arrays, internal representation, addressing Pointer programming, dereferencing Linked lists, singly, doubly Traversal, insertion, deletion Circular lists Structure of list element, intrusive, non-intrusive Comparison: arrays linked lists Stacks: implementation as linked Lists, as arrays Queues: implementation as circular arrays, linked lists Importance of stacks in OSs Heap structure, heap as complete tree, implementation through array Sorting Various sorting algorithm plus their running time orders (bubble, insertion, quick, shell, heap, merge) Assignment 15 Quiz 1 Assignment 15 Quiz 2 Assignment 15 Midterm exam 15 Searching: linear, binary, searchability depending on data structure. Binary Trees, tree searching, traversal Balancing methods (AVL, red- black) Hash tables: hash function, criteria for quality of hash function Collision handling Running time order Importance of Graphs and graph algorithms Two types of graph data structure: adjacency matrix, adjacency list FINAL EXAM Quiz 3 Assignment 15
Meet your Instructor Dr. Richard Riehle Institution: International Technological University Biography: Dr. Richard D. Riehle is a professor at ITU and a visiting professor at Naval Postgraduate School. He has been creating and managing software activities since the early 1960 s. His software engineering experience spans both military and civilian applications. In the military realm, he has been an active participant on some projects (command and control, etc.), and a shirt-sleeves consultant on others. Civilian software experience spans the full range of commercial enterprises: hospital information systems, banking, insurance, wholesale distribution, and medical billing, to name a few. Beginning in the late 1980 s, Dr. Riehle s focus turned to software consulting and training. As a trainer, he conducted courses of his own design in Ada, C++, software methods, and object-oriented development. He received a Bachelor s degree from Brigham Young University and a MSSE from National University. He also earned a doctorate in software Engineering from Naval Postgraduate School.