DATA STRUCTURES AND DATA ORGANIZATION
- Course
- ITEC242 - DATA STRUCTURES AND DATA ORGANIZATION
- Department
- Information Technologies - English - Undergraduate
- Course Type
- Course
- Status
- Required
- Language
- English
- Credit
- 4
- ECTS
- 6
- T+P+L
- 3 + 0 + 2
- Course Coordinator(s)
- Asst. Prof. Dr. Sara SALEHI
- Prerequisite
Course Description
This course introduces fundamental data structures and their implementation using the Python programming language. It covers the organization, representation, manipulation, and application of linear and non-linear data structures, including lists, stacks, queues, linked lists, and trees. Students will explore the characteristics, operations, and appropriate applications of different data structures and develop implementations using Python classes and functions. The course also introduces the analysis of basic data structure operations in terms of efficiency and provides practical problem-solving exercises to help students select and apply appropriate data structures to computational and information management problems.
DATA STRUCTURES AND DATA ORGANIZATION
Evaluation Tools (Active Term)
| Item | Type | Weight (%) |
|---|---|---|
| Midterm Exam | Midterm | 35 |
| Quiz | Quiz | 20 |
| Final Exam | Final | 45 |
| Total | 100 | |
Course outcomes
- 01 Problem solving using linear data structures: Stack applications
- 02 Examine and explain the working principles of the linear data structures: Stack and Queue
- 03 Implement the basic linear data structures: Stack and Queue
- 04 Examine and implement the dynamic data structures: Linked List
- 05 Examine and implement the hierarchical data structures: Tree
Course Syllabus
| Week | Topic |
|---|---|
| Week 1 | Introduction to Data Structures and Functions Review |
| Week 2 | Lists, Arrays and Tuples |
| Week 3 | Dictionaries, Classes and Objects |
| Week 4 | Structures and Abstract Data Types |
| Week 5 | Stack |
| Week 6 | Stack Applications |
| Week 7 | Review and Practice |
| Week 8 | MID-TERM EXAM WEEK |
| Week 9 | Queue |
| Week 10 | Linked List |
| Week 11 | Linked List |
| Week 12 | Tree |
| Week 13 | Tree |
| Week 14 | Review and Problem Solving |
| Week 15 | FINAL EXAM WEEK |
Reference Books & Course Materials
- 01 Goodrich, M. T., Tamassia, R., & Goldwasser, M. H. (2013). Data structures and algorithms in Python. Hoboken, NJ, USA: Wiley.
- 02 Miller, B., & Ranum, D. (2013). Problem solving with algorithms and data structures.
- 03 Dierbach, C. (2012). Introduction to computer science using python: A computational problem-solving focus. Wiley Publishing.
- 04 Horstmann, C. S., & Necaise, R. D. (2022). Python for everyone. John Wiley & Sons.
Learning Outcomes
- L01 Examine the use of Python lists in solving basic programming problems and implement common list operations such as insertion, deletion, searching, indexing, and traversal. SOLO 3
- L01 Explain the fundamental concepts, characteristics, and operations of data structures and abstract data types. SOLO 1
- L02 Examine how structured data can be represented in Python using classes and dataclasses, and implement simple records with related attributes and methods. SOLO 3.5
- L02 Implement fundamental data structures such as lists, stacks, queues, linked lists, and trees using Python. SOLO 2
- L03 Examine the working principles of stacks and implement stack-based solutions for problems such as expression handling, reversing data, and checking balanced symbols. SOLO 4
- L03 Analyze the efficiency of basic data structure operations using appropriate complexity measures. SOLO 3
- L04 Examine the working principles of queues and implement basic queue operations such as enqueue, dequeue, peek, and traversal using Python. SOLO 3
- L04 Apply appropriate data structures to solve computational and information management problems. SOLO 3
- L05 Examine the concept of dynamic data storage and implement linked lists, including node creation, insertion, deletion, searching, and traversal. SOLO 4
- L05 Compare different data structures based on their organization, operations, efficiency, and practical applications. SOLO 3
- L06 Evaluate alternative data structure solutions and select an appropriate structure for a given problem. SOLO 4
- L06 Examine the basic principles of hierarchical data structures and implement tree structures, including nodes, parent-child relationships, traversal, and basic binary tree operations. SOLO 3.5
Program Outcomes
- P01 Apply data science principles and techniques to challenges in real life situations, and effectively communicate their solutions.
- P02 Identify and implement data analysis methodologies based on theoretical ideas, ethical code, and in-depth knowledge of the underlying data.
- P03 Analyze the guiding concepts and assessment procedures for information analysis in real-life applications.
- P04 Design and apply relevant data analysis models to find obscure solutions to business-related problems.
- P05 Utilize modern computing techniques to handle real-world problems characterized by massive amounts of data, such as parallel and distributed computing and machine learning.
- P06 Configure and administer the software tools required to efficiently produce usable information from any size of structured and unstructured datasets.
- P07 Administer or manage data science tools and techniques to organize and complete projects aimed at gaining useful insight from complex data.
- P08 Think critically and imaginatively, conceiving real-world issues from several angles, and work well in a variety of teams to solve issues cooperatively.
- P09 Be able to effectively integrate data‐based solutions into the user environment and help non-technical professionals in exploring, visualizing, and using these solutions
- P10 Understand their obligations under professional and ethical standards in relation to matters like data ownership and citation, data security and sensitivity and the privacy implications of data analysis.
Po-Lo Matrix
| LO | P01 | P02 | P03 | P04 | P05 | P06 | P07 | P08 | P09 | P10 | Average |
|---|---|---|---|---|---|---|---|---|---|---|---|
| L01 | - | - | - | - | - | - | - | - | - | - | - |
| L01 | 0 | 5 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
| L02 | - | - | - | - | - | - | - | - | - | - | - |
| L02 | 5 | 5 | 0 | 5 | 0 | 5 | 0 | 0 | 0 | 0 | 2 |
| L03 | - | - | - | - | - | - | - | - | - | - | - |
| L03 | 5 | 5 | 5 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 2 |
| L04 | - | - | - | - | - | - | - | - | - | - | - |
| L04 | 5 | 5 | 5 | 5 | 0 | 5 | 0 | 0 | 0 | 0 | 2.5 |
| L05 | - | - | - | - | - | - | - | - | - | - | - |
| L05 | 5 | 5 | 5 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 2 |
| L06 | 5 | 5 | 5 | 5 | 0 | 5 | 0 | 0 | 0 | 0 | 2.5 |
| L06 | - | - | - | - | - | - | - | - | - | - | - |