| COMPUTER ENGINEERING | |||||
| Bachelor | TR-NQF-HE: Level 6 | QF-EHEA: First Cycle | EQF-LLL: Level 6 | ||
| Course Code | Course Name | Semester | Theoretical | Practical | Credit | ECTS |
| SEN2212 | Data Structures and Algorithms II | Spring |
2 | 2 | 3 | 7 |
| This catalog is for information purposes. Course status is determined by the relevant department at the beginning of semester. |
| Language of instruction: | English |
| Type of course: | Non-Departmental Elective |
| Course Level: | Bachelor’s Degree (First Cycle) |
| Mode of Delivery: | Face to face |
| Course Coordinator : | Assist. Prof. ÖZGE YÜCEL KASAP |
| Course Lecturer(s): |
Assist. Prof. BETÜL ERDOĞDU ŞAKAR Assoc. Prof. YÜCEL BATU SALMAN RA SEVGİ CANPOLAT RA MERVE ARITÜRK |
| Recommended Optional Program Components: | None |
| Course Objectives: | The objective of this course is to analyze data structures and algorithms used in software engineering in detail. After completing the course, the student will have knowledge of applying, implementing and analysis of data structures, including, trees, binary search trees, balanced search trees, heaps and graphs. Certain fundamental techniques, such as sorting, hashing and greedy algorithms are also taught. The teaching methods of the course include lectures, practice, and project preparation. |
|
The students who have succeeded in this course; The students who have succeeded in this course; 1) Describe and apply basic object oriented programming principles. 2) Implement basic data structures such as trees, binary search trees, balanced search trees, heaps and graphs. 3) Implement and use hashing algorithms. 4) Implement and use greedy algorithms. 5)Implement and use dynamic programming. 6) Choose and design data structures for writing efficient programs. |
| The course content is composed of basic data structures like trees, binary search trees, balanced search trees, heaps, graphs and sorting, hashing and greedy algorithms. |
| Week | Subject | Related Preparation |
| 1) | Introduction and Sorting Algorithms. | Sorting algorithms. |
| 2) | Introduction to different tree structures. | Trees. |
| 3) | Introduction to binary search trees. | Binary search trees. |
| 4) | Implementing binary search tree using Java. | Binary search trees. |
| 5) | Introduction to balanced trees and implementing AVL balanced tree structure using Java. | AVL trees. |
| 6) | Using other balanced tree structure using Java. | Other balanced trees. |
| 7) | Using heap structure and implementing them using Java. | Heap. |
| 8) | Using heaps as priority queues. Midterm. | Heap. |
| 9) | Analyzing and implementing hashing algorithms. | Hashing algorithms. |
| 10) | Analyzing and implementing graph structure using Java. | Graph. |
| 11) | Analyzing and implementing graph algorithms. | Graph algorithms. |
| 12) | Analyzing and implementing greedy algorithms. | Greedy algorithms. |
| 13) | Analyzing and implementing greedy algorithms. Quiz. | Greedy algorithms. |
| 14) | Review. |
| Course Notes / Textbooks: | Data Structures & Problem Solving Using Java (Mark Allen Weiss) Data Structures and Algorithm Analysis in Java (Mark Allen Weiss) Data Structures and Abstractions with Java (Frank Carrano) |
| References: | Yok. |
| Semester Requirements | Number of Activities | Level of Contribution |
| Laboratory | 2 | % 10 |
| Quizzes | 2 | % 10 |
| Project | 1 | % 15 |
| Midterms | 1 | % 25 |
| Final | 1 | % 40 |
| Total | % 100 | |
| PERCENTAGE OF SEMESTER WORK | % 45 | |
| PERCENTAGE OF FINAL WORK | % 55 | |
| Total | % 100 | |
| Activities | Number of Activities | Duration (Hours) | Workload |
| Course Hours | 14 | 2 | 28 |
| Laboratory | 14 | 3 | 42 |
| Project | 1 | 30 | 30 |
| Quizzes | 2 | 15 | 30 |
| Midterms | 1 | 20 | 20 |
| Final | 1 | 25 | 25 |
| Total Workload | 175 | ||
| No Effect | 1 Lowest | 2 Low | 3 Average | 4 High | 5 Highest |
| Program Outcomes | Level of Contribution | |
| 1) | Adequate knowledge in mathematics and science. | |
| 2) | Adequate knowledge in subjects specific to Computer Engineering. | |
| 3) | Ability to use theoretical and practical knowledge in Computer Engineering subjects for complex engineering problems. | |
| 4) | Ability to identify, define, and formulate complex engineering problems | |
| 5) | Ability to select and apply appropriate analysis and modeling methods to solve complex engineering problems. | |
| 6) | Ability to design a complex system, process, device, or product under realistic constraints and conditions to meet specific requirements, and to apply modern design methods for this purpose | |
| 7) | Ability to develop, select, and use modern techniques and tools required for the analysis and solution of complex problems encountered in computer engineering applications. | |
| 8) | Ability to use information technologies effectively | |
| 9) | Ability to design experiments for the investigation of complex engineering problems or research topics in computer engineering. | |
| 10) | Ability to conduct experiments, collect data, analyze and interpret results for the investigation of complex engineering problems or research topics in computer engineering | |
| 11) | Ability to work effectively in intra-disciplinary teams. | |
| 12) | Ability to work effectively in multidisciplinary teams. | |
| 13) | Ability to work independently. | |
| 14) | Ability to communicate effectively in both oral and written forms | |
| 15) | Knowledge of at least one foreign language | |
| 16) | Ability to write effective reports, understand written reports, and prepare design and production reports. | |
| 17) | Ability to deliver effective presentations and to give and receive clear and understandable instructions. | |
| 18) | Awareness of the necessity of lifelong learning | |
| 19) | Ability to access information, follow developments in science and technology, and continuously improve oneself. | |
| 20) | Ability to be aware of professional and ethical responsibilities and to act in accordance with ethical principles. | |
| 21) | Knowledge of standards used in engineering applications. | |
| 22) | Knowledge of professional practices in business life such as project management, risk management, and change management. | |
| 23) | Awareness of entrepreneurship and innovation. | |
| 24) | Knowledge of sustainable development. | |
| 25) | Knowledge of the impacts of engineering applications on health, environment, and safety in universal and societal dimensions, as well as awareness of contemporary issues reflected in the field of engineering. | |
| 26) | Awareness of the legal consequences of engineering solutions. |