CSE 203 Data Structures
2025 Fall
Course Information
- Course Title: Data Structures
- Credit Hours: 5 (3 hours lecture + 2 hours lab per week)
- Prerequisites: Basic programming knowledge (any language)
- Instructor: Assoc. Prof. Dr. Levent KARACAN
- Office Hours: Wednesdays, 13:00 – 14:00
Course Description
This course introduces fundamental data structures, their implementation in C++, and applications in solving computational problems. Students will develop skills in designing and modifying data structures and gain an awareness of their efficiency in terms of time and space.
Course Objectives
By the end of this course, students will be able to:
- Implement fundamental data structures using C++.
- Design and adapt data structures to meet specific problem requirements.
- Apply data structures to solve real-world computational tasks.
- Recognize the importance of time and space complexities in data structure selection and usage.
Course Schedule
- Lecture: Wednesdays, 09:20 – 12:05, Classroom 105
- Lab Sessions: Fridays, 09:00 – 10:30, IT Center Building
Lab Sessions: Each week, lab sessions reinforce lecture topics with hands-on programming exercises. Students implement data structures, solve problems, and apply algorithms discussed in lectures. Labs provide supervised practice and instructor feedback.
Weekly Schedule (14 Weeks)
Week | Lecture Topics | Lab Topics / Activities |
---|---|---|
1 | C++ Basics: Syntax, Control Structures | Simple coding exercises |
2 | C++ Arrays & OOP Intro | Mini OOP exercise |
3 | Pointers & References | Pointer-based problems |
4 | Dynamic Memory Management | Dynamic array implementation |
5 | Intro to Data Structures & Complexity | Array vs linked list comparison |
6 | Singly Linked List | Implement SLL |
7 | Doubly & Circular Linked List | Implement DLL |
8 | Stacks | Undo feature simulation |
9 | Queues & Deques | Process scheduling simulation |
10 | Binary Trees | Binary tree implementation |
11 | Binary Search Trees | BST efficiency awareness |
12 | Heaps & Priority Queues | Job scheduling example |
13 | Graph Basics | Simple graph exercise |
14 | Review & Project | Project presentations |
Grading
- Lab Quizzes: 10% (Pop-up Lab Quizzes)
- During some lab sessions, students will be given a programming problem to solve on the computer.
- These quizzes assess understanding and application of topics covered in lectures and previous labs.
- Assignments: 25% (out of 5 assignments)
- Midterm Exam: 20%
- Project: 15%
- Participation: 5% (attendance and active participation in lectures and labs)
- Final Exam: 25%
Participation
Active participation is required. Students are expected to attend lectures and labs regularly and contribute to class discussions, problem-solving, and collaborative exercises.
Assignment Submission Policy
- Assignment Platform:
- All assignments, announcements, and course materials will be shared via GAUZEM (Moodle).
- Submissions must be uploaded to GAUZEM before the deadline specified for each assignment.
- Late Submissions:
- Submissions after the deadline will be penalized by 10% per day for up to 3 days.
- After 3 days, the assignment will not be accepted and will be graded as zero.
- Technical Issues:
- Students are responsible for ensuring their submissions are uploaded correctly.
- Technical issues (e.g., internet problems) do not excuse late submission unless GAUZEM itself is confirmed to be unavailable.
- Extensions:
- Extensions will only be granted for documented emergencies or official university activities, and must be requested before the deadline.
Academic Integrity
- All submitted work must be original. Copying code from other students, the internet, or AI tools (e.g., ChatGPT, GitHub Copilot) for assignments is strictly forbidden.
- Students can discuss topics, problems, and solutions in an abstract way with classmates, but directly sharing or copying code is not allowed.
- The similarity of code will be checked using tools. High similarity may result in academic misconduct procedures.
- Students must be prepared to present and explain their assignments and projects in lab sessions. Instructors may ask verbal questions to verify understanding.
AI Usage Policy
- Assignments: Use of AI tools is not allowed for home assignments.
- Projects: Students may use AI tools for brainstorming or code suggestions only if they fully understand and can explain the code during presentations.
- AI-generated content must be properly referenced.
Recommended Textbooks
- Data Structures and Algorithm Analysis in C++ (Fourth Edition) by Mark Allen Weiss
- Data Structures and Algorithms in C++ by Michael T. Goodrich
- Algorithms by Robert Sedgewick and Kevin Wayne (for next semester)
Last updated: September 17, 2025