CLICK HERE FOR THE COURSE SYLLABUS (.pdf)


COURSE INTRODUCTION AND APPLICATION INFORMATION

 
Course Name
Code
Semester
Theory
(hour/week)
Application/Laboratory
(hour/week)
Local Credits
ECTS
Data Structures and Algorithms
CE 221
Fall
3
2
4
7

Prerequisites
  SE 116 To succeed (To get a grade of at least DD)

Course Language
English
Course Type
Required
Course Level
First Cycle
Course Coordinator
Course Lecturer(s)
Course Assistants
Course Objectives The objective of this course is to teach students the notion of an abstract data type (ADT) which is central to the design and analysis of computer algorithms. This course introduces abstract data types, and presents algorithms and data structures for implementing several ADTs. It emphasizes the efficiency of algorithms as evaluated by asymptotic analysis of running time. Topics include linear ADTs, heaps, binary trees, AVL trees and sorting. The programming assignments will be given in the same programming language as the one taught in CS 116.
Course Learning Outcomes The students who succeeded in this course;
  • be able to examine the loop structures of either a recursive or nonrecursive algorithms and infer its asymptotic running time and express its efficiency using big-Oh notation
  • be able to assess the relative advantages of using array or linked list implementations in efficiently solving search problems with concurrent insertion, and/or deletions on collections of data, design
  • be able to implement efficient computer programs running at the cost of O (log n) per searching, insertion and/or deletion of data items by employing correct variants of tree data structures covered in the course
  • be able to develop efficient applications that require an order on data items by appropriately selecting the right sorting algorithm
  • be able to describe the usage of various data structures
  • be able to explain the operations for maintaining common data structures
  • be able to design and apply appropriate data structures for solving computing problems
  • be able to design simple algorithms for solving computing problems
Course Content The course covers algorithm analysis, linear data structures, trees, priority queues and sorting.

 

WEEKLY SUBJECTS AND RELATED PREPARATION STUDIES

Week Subjects Related Preparation
1 Introduction: Mathematics Review and Recursion M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 1.1, 1.2, 1.3)
2 Programming Hints M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 1.4, 1.5, 1.6, 1.7)
3 Algorithm Analysis (basic concepts of algorithms, modeling runtimes, recurrences, BigOh notations) M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 2.1, 2.2, 2.3)
4 Algorithm Analysis (Running Time Calculations) M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 2.4)
5 Linear Data Structures: (Pointers, Linked Lists) M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 3.1, 3.2, 3.3, 3.4, 3.5)
6 Linear Data Structures (Stacks) M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 3.6)
7 Linear Data Structures (Queues) M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 3.7)
8 Ara sınav / Midterm
9 Trees (Binary trees) M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 4.1, 4.2)
10 Trees (Binary search trees) M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 4.3)
11 Trees (AVL Trees) M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 4.4)
12 Priority Queues: Binary Heaps M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 6.1, 6.2, 6.3)
13 Sorting (Insertion Sort, Shellsort) M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 7.1, 7.2, 7.3, 7.4)
14 Sorting (Heapsort, Mergesort ) M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 7.5, 7.6)
15 Sorting (Quicksort) M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 7.7)
16 Review of the Semester  

 

SOURCES

Course Notes / Textbooks M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006
References

 

EVALUATION SYSTEM

Semester Requirements Number Percentage of Grade
Attendance/Participation
Laboratory
10
30
Application
Field Work
Special Course Internship (Work Placement)
Quizzes/Studio Critics
Homework Assignments
Presentation/Jury
Project
Seminar/Workshop
Midterms/Oral Exams
1
30
Final/Oral Exam
1
40
Total

PERCENTAGE OF SEMESTER WORK
60
PERCENTAGE OF FINAL WORK
40
Total

 

COURSE CATEGORY

Course Category

Core Courses
X
Major Area Courses
Supportive Courses
Media and Managment Skills Courses
Transferable Skill Courses

 

THE RELATIONSHIP BETWEEN COURSE LEARNING OUTCOMES AND PROGRAM QUALIFICATIONS

#
Program Qualifications / Outcomes
* Level of Contribution
1
2
3
4
5
1 Be able to define problems in real life by identifying functional and nonfunctional requirements that the software is to execute
2 Be able to design and analyze software at component, subsystem, and software architecture level X
3 Be able to develop software by coding, verifying, doing unit testing and debugging X
4 Be able to verify software by testing its behaviour, execution conditions, and expected results
5 Be able to maintain software due to working environment changes, new user demands and the emergence of software errors that occur during operation
6 Be able to monitor and control changes in the software, the integration of software with other software systems, and plan to release software versions systematically
7 To have knowledge in the area of software requirements understanding, process planning, output specification, resource planning, risk management and quality planning
8 Be able to identify, evaluate, measure and manage changes in software development by applying software engineering processes
9 Be able to use various tools and methods to do the software requirements, design, development, testing and maintenance X
10 To have knowledge of basic quality metrics, software life cycle processes, software quality, quality model characteristics, and be able to use them to develop, verify and test software X
11 To have knowledge in other disciplines that have common boundaries with software engineering such as computer engineering, management, mathematics, project management, quality management, software ergonomics and systems engineering X
12 Be able to grasp software engineering culture and concept of ethics, and have the basic information of applying them in the software engineering X
13

Be able to use a foreign language to follow related field publications and communicate with colleagues

X

*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest

ECTS / WORKLOAD TABLE

Activities Number Duration (Hours) Total Workload
Course Hours (Including Exam Week: 16 x Total Hours)
16
3
Laboratory
15
2
Application
Special Course Internship (Work Placement)
Field Work
Study Hours Out of Class
15
3
Presentations / Seminar
Project
Homework Assignments
16
2
Quizzes
5
2
Midterms / Oral Exams
1
15
Final / Oral Exam
1
20
    Total Workload

CLICK HERE FOR THE COURSE SYLLABUS (.pdf)

 
 

İzmir Ekonomi Üniversitesi | Sakarya Caddesi No:156, 35330 Balçova - İZMİR Tel: +90 232 279 25 25 | webmaster@ieu.edu.tr | YBS 2010