Undergraduate
Faculty of Science and Letters
Mathematics And Computer Science
Anlık RSS Bilgilendirmesi İçin Tıklayınız.Düzenli bilgilendirme E-Postaları almak için listemize kaydolabilirsiniz.


Algorithm Analysis and Design

Course CodeSemester Course Name LE/RC/LA Course Type Language of Instruction ECTS
MB0025 6 Algorithm Analysis and Design 2/2/0 CC Turkish 5
Course Goals
The goals of this course are to study several fundemantal algorithms which are used to solve conventional computational problems and to introduce some mathematical methods and tools that are useful in the analysis of algorithms.
Prerequisite(s) None
Corequisite(s) None
Special Requisite(s) Proficiency in programming, data structures, basic math (series, matrices) and (in order to follow the course resources) basic English knowledge are necessary and sufficient.
Instructor(s) Assist. Prof. Dr. Levent CUHACI
Course Assistant(s) None
Schedule Monday, 09:00-10:45 3B-07-09 Thursday 11:00-12:30 3B-12-14-16
Office Hour(s) 3-A-05 Ofice, Monday 17:00-18:00
Teaching Methods and Techniques - Lecture

- Implementations of the algorithms using C/C++ in Computer Lab.
Principle Sources - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduction To Algorithms, 3rd ed,  The MIT Press, 2009.
Other Sources - Michael T. Goodrich, Roberto Tamassia,Algorithm Design : Foundations, Analysis and Internet Examples, John Wiley & Sons Inc., 2002.

 - MIT OpenCourseWare Web Site : http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/
Course Schedules
Week Contents Learning Methods
1. Week Introduction To Algorithms, Analysis of Algorithms, Insertion Sort, Merge Sort Oral presentation, implementation
2. Week Asymptotic Notation, Recurrences, Substitution, Master Method Oral presentation, implementation
3. Week Divide and Conquer Algorithms Oral presentation, implementation
4. Week Quicksort, Linear Time Sorting Oral presentation, implementation
5. Week Order Statistics Oral presentation, implementation
6. Week Hashing, Hash Functions, Universal Hashing, Perfect Hashing Oral presentation, implementation
7. Week Binary Search Tree Sorting, Red-Black Trees Oral presentation, implementation
8. Week Midterm Exam-1 Exam
9. Week Red-black Trees : Rotations, Insertions, Deletions Oral presentation, implementation
10. Week Augmenting Data Structures, Dynamic Order Statistics, Interval Trees Oral presentation, implementation
11. Week Dynamic Programming, Longest Common Subsequence, Rod Cutting Oral presentation, implementation
12. Week Revisiting previous topics Oral presentation, implementation
13. Week Greedy Algorithms, Minimum Spanning Trees Oral presentation, implementation
14. Week Shortest Path Algorithms Oral presentation, implementation
15. Week Finals Week Exam
16. Week Finals Week Exam
17. Week Finals Week Exam
Assessments
Evaluation tools Quantity Weight(%)
Midterm(s) 1 40
Final Exam 1 60


Program Outcomes
PO-1Interpreting advanced theoretical and applied knowledge in Mathematics and Computer Science.
PO-2Critiquing and evaluating data by implementing the acquired knowledge and skills in Mathematics and Computer Science.
PO-3Recognizing, describing, and analyzing problems in Mathematics and Computer Science; producing solution proposals based on research and evidence.
PO-4Understanding the operating logic of computer and recognizing computational-based thinking using mathematics as a discipline.
PO-5Collaborating as a team-member, as well as individually, to produce solutions to problems in Mathematics and Computer Science.
PO-6Communicating in a foreign language, and interpreting oral and written communicational abilities in Turkish.
PO-7Using time effectively in inventing solutions by implementing analytical thinking.
PO-8Understanding professional ethics and responsibilities.
PO-9Having the ability to behave independently, to take initiative, and to be creative.
PO-10Understanding the importance of lifelong learning and developing professional skills continuously.
PO-11Using professional knowledge for the benefit of the society.
Learning Outcomes
LO-1The student studies different algorithms for many of the most common types of standard algorithmic problems such as sorting, searching and graph problems
LO-2The student analyses the time and space complexity and correctness of the algorithms using theoretical tools and mathematical techniques
LO-3The student becomes proficient in the application of fundamental algorithm design techniques (e.g.,divide and conquer, greedy algorithms, dynamic programming)
LO-4The student develops programs using different problem-solving approaches, and be able to recognize when a particular approach is most useful
LO-5The student gains the ability to design and implement a program to model a real-world system, and subsequently analyze its behavior
Course Assessment Matrix:
Program Outcomes - Learning Outcomes Matrix
 PO 1PO 2PO 3PO 4PO 5PO 6PO 7PO 8PO 9PO 10PO 11
LO 1
LO 2
LO 3
LO 4
LO 5