Department of Computer Technology and Programming Spring 2009 - 2010 CTP102 Elementary Data Structures Syllabus Course Details Course Name : CTP102 – Elementary Data Structures Course Credits : 5 ECTS Credits : 10 Prerequisite : CTP 101 Instructor : İpek Sözen E-mail : sozen@ctp.bilkent.edu.tr Room, Phone: GZ-18, 5067 Office Hours: Monday 09:40 – Wednesday 10:40 Assistant : Ergem Özdemir E-mail : eozdemir@ctp.bilkent.edu.tr Room, Phone: GZ-58, 3351 Office Hours: Tuesday 09:40, 10:40 Lecture hours and place: Tuesday 8:40 - 9:40 GZ-55 Thursday 10:40 - 11:40 GZ-55 Friday 8:40 – 9:40 GZ-55 Lab hours and place: Tuesday 13:40 - 14:40 Thursday 15:40 - 16:40 URL (web pages): http://www.ctp.bilkent.edu.tr/~ctp102/ Course Description Introduction to data structures. Parameter passing techniques. Files: text and binary files. Strings and string manipulation. Structures: Structures as function parameters, pointers to structures, arrays of structures. Dynamic memory allocation. Linked lists. Stacks. Queues. Searching, sorting and merging. Recursion. Aim The aim of the course is to teach students abstract data types and dynamic data structures. Learning Outcomes On successful completion of the lecture, a student should be able to: represent strings, structures, linked lists, stacks, queues in the C language. use data structures to model real world aggregations of data. develop computer programs using the selected structures. classify and compare different ADT’s. decide which data structure is more appropriate to a specific application. evaluate the advantages and disadvantages of the learned data structures. explain and differentiate different search, sort and merge algorithms. create recursive algorithms for the solutions of applicable programs. Course Outline: Pointers String Manipulation Files Structures Linked Lists Recursion Stacks Queues. Syllabus 1 Department of Computer Technology and Programming Spring 2009 - 2010 Text Book: C: How to Program (Deitel H.M., Deitel P.J.) Problem Solving and Program Design in C (Hanly J., Koffman E. B., Friedman F. L.) Fundamentals of Data Structures in C. (Horowitz, Sahni, Anderson-Freed) Reference Books: Lecture notes prepared by the instructor; Web references/resources. Assessments &Grading: Quizzes: Lab Performance: Lab Quiz Lab Exam: Midterm: Final: (10%) (10%) (5% ) (30%) (20%) (25%) Attendance: Attendance is an important criteria in following the course topics and being successful at the end of the semester. The student(s) who attends a specific topic with the minimum attendance will summarize that topic in the class. Weekly outline: Week 1 Jan 29 2 Feb 01 - 05 3 Feb 08 - 12 4 Feb 15 - 19 Topics to be covered Review of arrays and functions Lab. Objectives Functions with more than one output parameters. Call by value. Call by reference. String declaration, initialization. InputOutput of Strings Strings as function parameters. Functions returning strings. String assignment. Review of arrays and functions Functions with more than one result Simple string examples , Strings as function parameters Functions returning strings String manipulation examples. Arrays of strings Reading from and writing into text files Examples on strings and text file Binary Files String concatenation. 5 Feb 22 - 26 6 Mar 01 - 05 7 Mar 08 - 12 Syllabus String comparison. String manipulation. Arrays of Strings. QUIZ 1 Text files. Binary files. Structures. Arrays of structures. Pointers to structures. 2 Defining, declaring, i/o of structures Structures as function parameters LAB EXAM 1 Department of Computer Technology and Programming Spring 2009 - 2010 8 Mar 15 - 19 9 Mar 22 - 26 10 Mar 29–Apr 02 11 Apr 05 – 09 12 Apr 12 – 16 Nested Structures. Structures with array elements. Dynamic Memory Allocation. Linked Lists. N MIDTERM WEEK No Lab Adding and deleting nodes to a Linked list. Creating a linked list Adding a node to the beginning and end of the list SPRING RECESS No Lab Linked List Applications. 13 Apr 19 - 22 Recursion. 14 Apr 26 - 30 15 May 03 - 07 16 May 10 - 14 Search. Sort and merge algorithms Stacks. Syllabus Arrays of structures Nested structures QUIZ 2 Queues. 3 Searching a node in a linked list Inserting, deleting nodes to a linked list LAB EXAM 2 Implementation of recursive functions Implementation of recursive functions Implementation of search, sort and merge algorithms Stacks Stacks Queues Queues