Prerequisite(s) Programming Your World (900191SCIY)
Related AUC Theme(s)
Lecturer(s)/Coordinator Malvin Gattinger
Course Content Students are made acquainted with basic data
structures: lists, arrays, queues, stacks, trees, and heaps. Algorithms are discussed to solve basic problems: sorting and searching, pattern matching, and shortest paths. Different approaches are treated for problem solving: divide and conquer, greedy algorithms, and dynamic programming. It is explained how the time and space complexity of algorithms can be analysed.
Learning Outcomes (LO’s) Students acquire knowledge of basic methods and
techniques in algorithm analysis. After taking this course, the student: • has basic knowledge of data structures and algorithms, • leans that different data structures are suitable for different computational problems, • is able to analyze the performance of algorithms, with regard to their time and storage requirements. Contribution to the general 2.3.1a-a, 2.3.1a-b, 2.3.2a-a, 2.3.2a-b, 2.3.2a-d, learning outcomes; from 2020- 2.3.4a-b, 2.3.7a-c. 2021 Academic Standards and Procedures (OER), section 2.3.
Form(s) of Instruction Lecture, Lab
Assessment Two intermediate class tests (35% each)
Four programming assignments (30% in total)
Main Course Sources Slides and Exercises will be provided on Canvas.
Additional reading (not compulsory):
• Introduction to Algorithms, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, MIT Press and McGraw-Hill, 3rd edition 2009 or 4th edition 2022. • Algorithms in C, Parts 1-4: Fundamentals, Data Structures, Sorting, Searching, by Robert Sedgewick, Addison-Wesley, 3rd edition 1997 Further reading materials are communicated via Canvas.
Course Adjustments/revisions I will be teaching this course for the first time.
Contact Information Lecturer Malvin Gattinger (he/him)