| Code | Description |
|---|---|
| LO1 | Analyse and interpret main principles of recursion and its relation to mathematical induction |
| LO2 | Employ recursion as a problem solving and programming technique and analyse efficiency of recursive solutions |
| LO3 | Design and implement important abstract data types such as linked lists, doubly linked lists, stacks, and queues |
| LO4 | Combinatorically analyse discrete structures such as trees, devise algorithmic solutions to search problems and gain experience in the design and implementation of common search structures such as binary search trees |
| LO5 | Interpret and analyse hashing, mapping structures, priority queues, and analyse two common sorting algorithms |
| Week | Content |
|---|---|
| 1 | An overview of Java Programming constructs |
| 2 | The relationship between induction and recursive algorithms, operations on arrays- recursive vs iterative solutions |
| 3 | Algorithm analysis, runtime efficiency, O-notation |
| 4 | Linear search, binary search on arrays |
| 5 | Linked lists: Concept and design, algorithms for operations on lists (recursive and iterative) |
| 6 | Double linked lists: Concept, design and algorithms for defined operations |
| 7 | Stacks: Concept, design, implementation alternatives (array vs linked list implementation) and algorithms for defined operations |
| 8 | Queues: Concept, design, implementation alternatives (array vs linked list) and algorithms for defined operations |
| 9 | An introduction to trees, their combinatorial properties, design alternatives, traversal algorithms, sample application: expression trees |
| 10 | Binary search trees: Concept, design, Algorithms for operations on BSTs (recursive and iterative) |
| 11 | The efficiency of the operations defined on BSTs, balanced binary search trees |
| 12 | Priority queues: Concept, design, Algorithms on heaps |
| 13 | Maps, hashing, hash tables |
| 14 | Sorting, Merge sort, Quick sort, comparison of sorting algorithms |
| Activity | Count | Duration (Hours) | Total |
|---|---|---|---|
| Attendance | 15 | 3.00 | 45.00 |
| Practice | 4 | 2.50 | 10.00 |
| Laboratory | 10 | 2.00 | 20.00 |
| Midterm Exam/Preparation | 1 | 15.00 | 15.00 |
| Final Exam/Preparation | 1 | 20.00 | 20.00 |
| Quiz Preparation | 4 | 10.00 | 40.00 |
| Total Workload (Hours) | 150 | ||
| ECTS Credit (Workload / 25) | 5 | ||
| # | Assessment Type | Contribution (%) |
|---|---|---|
| 1 | Final Exam | %100 |
| PO \ LO |
LO1
|
LO2
|
LO3
|
LO4
|
LO5
|
|---|---|---|---|---|---|
| PO-1 | |||||
| PO-2 | |||||
| PO-3 | |||||
| PO-4 | |||||
| PO-5 | |||||
| PO-6 | |||||
| PO-7 | |||||
| PO-8 | |||||
| PO-9 | |||||
| PO-10 | |||||
| PO-11 |
| # | Method Name | Description | Tools |
|---|---|---|---|
| 1 | Lecture (expository teaching), interactive discussion | Listening and taking notes. | Standard classroom technologies, multimedia tools (projector, computer, digital presentations) |
| 2 | Controversial Course | Listening and comprehension, critical thinking | Standard classroom technologies, multimedia tools, projector, computer, overhead projector |
| 3 | Problem Solving | * Analyzing physical and physiological problems using problem-solving techniques and developing appropriate solutions. | |
| 4 | Simulation | Exploring the operation of physical circuit designs through the use of simulation software. | Simulation tools |
| 5 | Laboratory | Listening, note-taking, conceptual analysis, critical thinking, questioning, and participation in discussions. | Special equipment |