20602 - COMPUTER SCIENCE (ALGORITHMS)
Department of Computing Sciences
LAURA SANITA'
Suggested background knowledge
Mission & Content Summary
MISSION
CONTENT SUMMARY
Basic Notions and Theoretical Background
-
Introduction to the course
-
Algorithmic efficiency
-
Asymptotic Notation
-
Class P and NP
Combinatorial and Graph Algorithms
-
Greedy Algorithms and Spanning trees
-
Dynamic Programming
-
Shortest Path and Network Flows
-
Matchings and Generalizations
Optimization Algorithms
- Linear Programming and Integer Progamming
- Simplex algorithm
- Branch and Bound algorithm
- Stochastic Optimization
- Algorithms for large scale optimization
NP-Completeness and Approximation Algorithms
- NP-Completeness reduction
- Approximation algorithms
Intended Learning Outcomes (ILO)
KNOWLEDGE AND UNDERSTANDING
- Understand the basic notions of algorithmic complexity and various design paradigms
- Develop an intuition about which problems are amenable to which kind of programming paradigm and relate this to common computational tasks
- Analyze the structure of advanced algorithmic schemes
- Understand combinatorial structures
- Understand graph and optimization algorithms
- Understand implications of NP-completeness
APPLYING KNOWLEDGE AND UNDERSTANDING
- Design algorithms using common paradigms and predict their scaling in terms of memory and computational resources
- Describe algorithms (possibliy developed by the students themselves) in pseudocode
- Read literature on algorithm design
- Develop algorithms for large scale difficult optimization problems
- Show which problems cannot admit effiicient solutions
Teaching methods
- Face-to-face lectures
DETAILS
Lectures.
Assessment methods
Continuous assessment | Partial exams | General exam | |
---|---|---|---|
|
x | ||
|
x |
ATTENDING AND NOT ATTENDING STUDENTS
There will be a written exam and two homework assignments. The homework assignments are not mandatory. The final grade will be calculated by taking for each student the best outcome out of the following two ones:
(a) Final written test contributes 70% of the final grade, and homework assignments contribute 30%.
(b) Final written test contributes 100% of the final grade.
The exam will test the students' ability to explain algorithms using the concepts learned in class and connect these concepts to specific problem instances. It will further test if the student can formulate optimization problems with linear/integer programming models, and apply the most suitable algorithm to solve them.
Teaching materials
ATTENDING AND NOT ATTENDING STUDENTS
- T.H. CORMEN, C.E. LEISERSON, R.L. RIVEST, et al., Introduction to Algorithms, MIT, 3rd edition.
- R. SEDGEWICK., and K. WAYNE. Algorithms. Addison-wesley professional, 4th Edition.
- Bertsimas, Dimitris, and John N. Tsitsiklis. Introduction to linear optimization. Vol. 6. Belmont, MA: Athena Scientific, 1997.
- Garey, Michael R., and David S. Johnson. Computers and intractability. Vol. 174. San Francisco: freeman, 1979.
- W. Cook, W. Cunningham, W. Pulleyblank and A. Schrijver. Combinatorial Optimization. Wiley-Interscience, 1997.
- Lecture notes and slides by the instructor.