Computer Engineering (English) | |||||
Bachelor | TR-NQF-HE: Level 6 | QF-EHEA: First Cycle | EQF-LLL: Level 6 |
Course Code: | SWE209 | ||||
Course Name: | Data Structures and Algorithms | ||||
Semester: | Fall | ||||
Course Credits: |
|
||||
Language of instruction: | English | ||||
Course Condition: | |||||
Does the Course Require Work Experience?: | No | ||||
Type of course: | Compulsory Courses | ||||
Course Level: |
|
||||
Mode of Delivery: | Face to face | ||||
Course Coordinator: | Dr. Öğr. Üy. ALI ASGHAR POUR HAJI KAZEM | ||||
Course Lecturer(s): | Assist. Prof. Dr. Muhammed Davud | ||||
Course Assistants: |
Course Objectives: | This course covers a range of topics, including basic data structures such as arrays, linked lists, stacks, queues, trees, and graphs, as well as more complex data structures such as hash tables and heaps. Students will also learn about algorithm analysis and design, including sorting and searching algorithms. Additionally, students will gain knowledge of algorithmic problem-solving techniques, algorithmic complexity, and the big-O notation. Throughout the course, students will be required to complete programming assignments and projects that apply the concepts covered in lectures and readings. |
Course Content: | This course covers a range of topics, including basic data structures such as arrays, linked lists, stacks, queues, trees, and graphs, as well as more complex data structures such as hash tables and heaps. Students will also learn about algorithm analysis and design, including sorting and searching algorithms. Additionally, students will gain knowledge of algorithmic problem-solving techniques, algorithmic complexity, and the big-O notation. Throughout the course, students will be required to complete programming assignments and projects that apply the concepts covered in lectures and readings. |
The students who have succeeded in this course;
1) Understand and apply the fundamental concepts of data structures and algorithms. 2) Understand and apply algorithm analysis and design techniques, including sorting and searching algorithms. 3) Analyze algorithmic problems and implement appropriate solutions using the concepts learned in the course. 4) Understand and apply algorithmic complexity and big-O notation to analyze and compare different algorithms. 5) Develop efficient and optimized algorithms for solving programming problems. |
Week | Subject | Related Preparation |
1) | Introduction | |
2) | OOP | |
3) | Asymptotic Analysis of Algorithms | |
4) | Recursion | |
5) | Lists and Stacks | |
6) | Queues | |
7) | Sorting Algorithms | |
8) | Midterm Exam | |
9) | Searching Algorithms | |
10) | Trees | |
11) | Heaps | |
12) | Graphs | |
13) | Graphs | |
14) | Hashing |
Course Notes / Textbooks: | Weiss, Mark Allen. Data Structures and Algorithm Analysis in Java, Addison Wesley [either 2nd or 3rd edition] ISBN: 0-321-37013-9 (2nd Edition, 2007), ISBN: 0-132-57627-9 (3rd Edition, 2011) |
References: | Lecture notes |
Course Learning Outcomes | 1 |
2 |
3 |
4 |
5 |
||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Program Outcomes | |||||||||||
1) Adequate knowledge in mathematics, science, and computer engineering principles, both theoretical and practical, and the ability to apply this knowledge to complex engineering problems. | |||||||||||
2) Ability to identify, formulate, and solve complex computer engineering problems using appropriate analysis and modeling techniques. | |||||||||||
3) Ability to design and develop complex computer systems, devices, or products that meet specific requirements and operate under realistic constraints and conditions, using modern design methods. | |||||||||||
4) Ability to develop, select and use modern techniques and tools used for the analysis and solution of complex computer engineering problems, and the ability to use information technologies effectively. | |||||||||||
5) Ability to plan and conduct experiments, collect and analyze data, and interpret results in the study of complex computer engineering problems or research topics. | |||||||||||
6) Ability to work effectively within and multidisciplinary teams; individual study skills. | |||||||||||
7) Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effective reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions. | |||||||||||
8) Awareness of the necessity of lifelong learning; ability to access information, to follow developments in science and technology and to renew continuously. | |||||||||||
9) To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications. | |||||||||||
10) Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development. | |||||||||||
11) Knowledge of the effects of computer engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in computer engineering; awareness of the legal consequences of computer engineering solutions. |
No Effect | 1 Lowest | 2 Average | 3 Highest |
Program Outcomes | Level of Contribution | |
1) | Adequate knowledge in mathematics, science, and computer engineering principles, both theoretical and practical, and the ability to apply this knowledge to complex engineering problems. | |
2) | Ability to identify, formulate, and solve complex computer engineering problems using appropriate analysis and modeling techniques. | 2 |
3) | Ability to design and develop complex computer systems, devices, or products that meet specific requirements and operate under realistic constraints and conditions, using modern design methods. | 3 |
4) | Ability to develop, select and use modern techniques and tools used for the analysis and solution of complex computer engineering problems, and the ability to use information technologies effectively. | 2 |
5) | Ability to plan and conduct experiments, collect and analyze data, and interpret results in the study of complex computer engineering problems or research topics. | 2 |
6) | Ability to work effectively within and multidisciplinary teams; individual study skills. | |
7) | Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effective reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions. | |
8) | Awareness of the necessity of lifelong learning; ability to access information, to follow developments in science and technology and to renew continuously. | |
9) | To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications. | |
10) | Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development. | |
11) | Knowledge of the effects of computer engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in computer engineering; awareness of the legal consequences of computer engineering solutions. |
Semester Requirements | Number of Activities | Level of Contribution |
Quizzes | 3 | % 10 |
Homework Assignments | 2 | % 10 |
Project | 1 | % 15 |
Midterms | 1 | % 25 |
Final | 1 | % 40 |
total | % 100 | |
PERCENTAGE OF SEMESTER WORK | % 60 | |
PERCENTAGE OF FINAL WORK | % 40 | |
total | % 100 |
Activities | Number of Activities | Workload |
Course Hours | 13 | 39 |
Laboratory | 13 | 26 |
Study Hours Out of Class | 14 | 42 |
Project | 2 | 10 |
Homework Assignments | 4 | 12 |
Quizzes | 2 | 4 |
Midterms | 1 | 3 |
Final | 1 | 3 |
Total Workload | 139 |