CMPE- 231 DATA STRUCTURES Department: Computer Engineering Instructor Name: Assoc. Prof. Zeki Bayram (coordinator) E-mail: zeki.bayram@emu.edu.tr Office: CMPE 216 Office Tel: 2840 Office Hours: Friday 10:30- 12:30 Assistant Information Name: Samaneh Azari (coordinator) E-mail:samaneh.azari@emu.edu.tr Office: CMPE 204 Office Tel: 1199 Meeting times and places: Tuesdays 14:30-16:20, CMPE128 Fridays 14:30-16:20 , CMPE127 Program Name: Computer Engineering Course Number: CMPE231 Required Course Prerequisite(s): CMPE112 Program Code: 25 Credits: 4 Cr Elective Course Year/Semester: 2014-2015 Fall Service Course Catalog Description: Overview of C Programming Language. Data types. Pointers. Arrays. Function calls (Call by value, Call by reference). String operations. Structures (Arrays of structures. Self-referential structures. Structures and Functions). Dynamic memory allocation. Introduction to Data Structures. Binary and Decimal Integers (Binary number system, One’s complement notation, two’s complement notation, Binary coded decimal). Real numbers. Character strings. Concept of Abstract Data Type (ADT). Memory allocation (storage) of arrays. The Stack. Stack as an Abstract Data Type. Primitive operations. Representing the stack in C. Examples: Infix, Postfix, and Prefix notations, Infix-toPostfix conversion. Recursion. Recursuive definition. Examples: Factorial function. Fibonacci sequence. Binary search. The Towers of Hanoi problem. Recursion versus Iteration (comparison). Queues and Lists. The Queue as an Abstract Data Type. C implementation of Queues. Linked Lists. Inserting and Removing Nodes from a List. Linked implementation of Stacks and Queues. Array implementation of Lists. Linked Lists using Dynamic Variables. Queues as Lists in C.Circular Lists. Example: Josephus problem. Doubly Linked Lists. Trees. Operations on Binary Trees. Binary Tree Representations. Binary Tree Traversals. Trees and their applications. Binary search trees. Graphs. (Pre-requisite: CMPE 112) Course Web Page: http://cmpe.emu.edu.tr/CourseLoad.aspx?CourseCode=CMPE108 Textbook(s): Langsam Y., Augenstein M., Tenenbaum A. Data Structures Using C and C++, 2nd edition, Prentice Hall Int., 1996 (ISBN 013-529322-7)From the Publisher (Prentice Hall/Engineering) Reference Book(s): Data Structures In C by Noel Kalicharan Publisher: CreateSpace Independent Publishing Platform; 1 edition (August 11, 2008) ISBN-10: 1438253273 ISBN-13: 978-1438253275 Topics Covered and Class Schedule: TOPICS WEEK OF 13/10/2014 20/10/2014 27/10/2014 03/11/2014 10/11/2014 17/11/2014 24/11/2014 28/11/14 - 09/12/14 08/12/2014 Primitive data structures. Binary and Decimal Integers, Real numbers, Character strings, Memory representation of information, pointers. Arrays and Pointers (Continued) Arrays and Memory allocation (storage) of arrays. Two and multi dimensional arrays. Lab: introduction to Microsoft Visual C++ 6 IDE Structures. Arrays of structures. Selfreferential structures. Dynamic memory allocation. Lab: 1-D array, random number generation Stack as an Abstract Data Type. Primitive operations. Representing the stack in C. Infix, Postfix, and Prefix notations. Infix-to-Postfix conversion. Functions. Recursive definitions. Factorial function. Fibonacci sequence. Binary search. The Towers of Hanoi problem. Recursion versus Iteration. Midterm Exams Lab: pointers, string manipulation. 2-D Arrays Files, array of structures The Queue as an Abstract Data Type. C implementation of Queues. Circular queue representation. 29/12/2014 Linked Lists. Inserting and Removing Nodes from a List. Linked Lists using Dynamic Variables. Circular Lists.Doubly Linked Lists. Trees. Binary Tree Representations. Binary Tree Traversals (inorder, preorder, postorder). Creating a binary tree. Deleting nodes from a binary tree. Binary Search Trees. Searching a Binary Search Tree. Inserting into a Binary Search Tree. Deleting from a Binary Search Tree. Sorting and Searching. Efficiency of Sorting. The O notation. Bubble Sort. Quick Sort. 05/01/2015 Hashing. 12/01/2015 Graphs. Application of graphs. C representation of Graphs. 15/12/2014 22/12/2014 19/01/201531/01/2015 LABS Final Exams Lab: Using a stack Stack . Binary search Lab: Implementing a stack (prev lab 4) Queues (prev lab 5) Lab: Linked List (prev lab 6) Lab: Trees Lab: Sorting (prev lab 2) Lab: Hashing Course Learning Outcomes On successful completion of the course, the student is expected to be able to: Use arrays, structures and pointers to implement data structures Perform pointer arithmetic Use abstract data types such as stacks and queues to solve problems Implement sorting algorithms Implement searching algorithms Write recursive programs Use linked list data structures and their operations to implement solutions Use various tree data structures and their operations to implement solutions Use graph data structures and related operations to implement solutions Assessment Method Midterm Exam(s) Final Examination Attendance Labs How many 1 1 1 10 Percentage 40% 45% 5% 10% Computation of the attendance grade: Less than 50%, 0 points. At least 75% attendance, 5 points. Otherwise 5 * (number of days attended / number of days attendance taken). Attendance will start to be taken once the add-drop period has ended. Lab grading policy: For each lab, 50% of the grade will be obtained by attendance, and the remaining 50% by the actual work done during the lab session. Policy on makeups: Exams: You can take the re-sit exam only if (i) you fail the course, (ii) you cannot take the final exam due to valid and documented medical condition (report must be provided within 3 days of the exam) , or (iii) if you satisfy other requirements specified in the university regulations for taking the re-sit exam. The re-sit exam grade will replace your final exam grade. In case of a documented medical condition which prevents you from taking the final exam, when you take the re-sit exam as a makeup for the final exam, your grade will first be given as I, and then changed to another grade based upon the result of the re-sit exam. You can take a makeup for the midterm only in the case of a valid medical excuse. A written report from a doctor explaining your condition must be submitted to your instructor within 3 days of the midterm exam. If you miss both midterm and final exams and do not submit any written report, you will get an “NG” grade. Labs: There will be no makeup for the missed lab experiments. There are no exemptions for labs (i.e. if you are taking the course for the second time, you still need to attend the labs) Policy on cheating and plagiarism: Plagiarism (presenting somebody else's work as your own) and cheating are disciplinary offences and will be dealt with accordingly. Contribution of Course to ABET Criterion 5 Credit Hours for: Mathematics & Basic Science : 0 Engineering Sciences and Design : 3 General Education : 0 Relationship of the course to Program Outcomes (a) an ability to apply knowledge of mathematics, science, and engineering. (e) an ability to identify, formulate, and solve engineering problems. (k) an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice. (l) an ability to apply knowledge of probability and statistics, mathematics through differential and integral calculus, discrete mathematics, basic sciences, and computer science Prepared by: Assoc. Prof. Dr. Zeki Bayram Date Prepared: 12 October 2014