Credits
6
Types
- GRAU: Specialization complementary (Computing)
- GCED: Elective
Requirements
- Prerequisite: A
Department
CS
Web
https://www.cs.upc.edu/~mjserna/docencia/grauAA/AA-GEI.html
Teachers
Person in charge
- Maria Jose Serna Iglesias ( mjserna@cs.upc.edu )
Weekly hours
Theory
2
Problems
2
Laboratory
0
Guided learning
0
Autonomous learning
6
Competences
Autonomous learning
- G7.3 - Autonomous learning: capacity to plan and organize personal work. To apply the acquired knowledge when performing a task, in function of its suitability and importance, decide how to perform it and the needed time, and select the most adequate information sources. To identify the importance of establishing and maintaining contacts with students, teacher staff and professionals (networking). To identify information forums about ICT engineering, its advances and its impact in the society (IEEE, associations, etc.).
Computer science specialization
- CCO1.1 - To evaluate the computational complexity of a problem, know the algorithmic strategies which can solve it and recommend, develop and implement the solution which guarantees the best performance according to the established requirements.
- CCO2.5 - To implement information retrieval software.
- CCO2.6 - To design and implement graphic, virtual reality, augmented reality and video-games applications.
Objectives
-
To know the fundamental concepts of Computational Problem and Algorithm. To be able to analyze the computational resources like Time and Space, which are required by an algorithm.
Related competences: CCO1.1, -
To know how to classify the complexity of a computational problem. To be able to distinguish between tractable problems and intractable problems. Knowing the techniques of reducibility and completeness to analyze the computational difficulty of a problem.
Related competences: CCO1.1, G7.3, -
To know some classical intractable problems and the classes that are identified by these problems: NP, PSPACE, EXP i NEXP.
Related competences: CCO1.1, G7.3, -
To know Random Algorithms to solve intractable problems. In particular, to know two varieties of random algorithms: Monte Carlo algorithms which compute in polynomial time a solution that it may be not correct with low probability and Las Vegas algorithms which always compute a correct solution and guarantee polynomial time with high probability.
Related competences: CCO1.1, G7.3, -
To know Approximation Algorithms to compute efficiently approximate solutions (solutions close to the optimum) for optimization intractable problems.
Knowing their limitations or problems that can not be approximated in polynomial time.
Related competences: CCO2.5, CCO1.1, G7.3, -
To know Fixed Parameter Algorithms that allow to solve in polynomial time certain restrictions of intractable problems. To know how to identify specific parameters of a problem so that when they are fixed then the problem can be solved efficiently.
Related competences: CCO2.5, G7.3, -
To know Data Stream Algorithms to solve efficiently
problems where the inputs must be processed
by making one
or a small number of passes over it, using only a limited amount of working memory.
The streaming model applies to settings where the size of the input far exceeds the size
of the main memory available.
Related competences: CCO2.5, CCO2.6, CCO1.1, G7.3, -
To know basic concepts of Game Theory: Games, strategies, costs, payoffs, selfish players. New solution concept: Nash equilibrium. Efficiency of solutions: Price of Stability and Price of Anarchy. Brief introduction to Network Formation Games.
Related competences: CCO1.1,
Contents
-
Intractable Problems
Reducibility and Completeness.
NP-complete problems: Satisfiability, Subgraphs, Colorability, Tours, Partitions, Scheduling.
PSPACE, EXP, and NEXP problems: Quantified boolean formulae, games, tilling, equivalence of regular expressions. -
Random Algorithms
Monte-Carlo Algorithms. Las Vegas Algorithms. Generation of random numbers. Factoritzation (Heurístic Pollard Rho). Criptography (RSA) -
Algorithmics and Internet: Modelling Internet
Basic definitions: Game, strategy, cost and payoff, selfish players.
Nash Equilibrium, Social Cost, Price of Stability and Price of Anarchy
Introduction to Neetwork Formation Games. Understanding the behavior of Internet: A game equilibrium. -
Approximation Algorithms
Optimization Problems and Approximability.
Algorithmic methods: Greedy algorithms, methods based on Linear Programming. -
Fixed Parameter Algorithms
Parameterized problems: Vertex cover, Max Sat, Knapsack.
Algorithmic Methods: Bounded-depth Search trees, Kernelization. -
Data Stream Algorithms
Some basic problems.
Computational models for data flows.
Algorithmic Methods: Graph streams, Sampling, Sketches.
Activities
Activity Evaluation act
Learning the topic "Intractable Problems"
Students attend the theory classes, try to understand this subject and solve problems, asking professor for help in the class of problems. Furthermore the students can also be asked to present one of the assigned problems to the blackboard.Objectives: 2 3
Contents:
Theory
6h
Problems
6h
Laboratory
0h
Guided learning
0h
Autonomous learning
12h
Learning the topic "Random Algorithms"
Students attend the theory classes, try to understand this subject and solve problems, asking professor for help in the class of problems. Furthermore the students can also be asked to present one of the assigned problems to the blackboard.Objectives: 4
Contents:
Theory
6h
Problems
6h
Laboratory
0h
Guided learning
0h
Autonomous learning
12h
Learning the topic "Algorithmics and Game Theory: Modelling Internet"
Students attend the theory classes, try to understand this subject and solve problems, asking professor for help in the class of problems. Furthermore the students can also be asked to present one of the assigned problems to the blackboard.Objectives: 8
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h
Learning the topic "Approximation Algorithms"
Students attend the theory classes, try to understand this subject and solve problems, asking professor for help in the class of problems. Furthermore the students can also be asked to present one of the assigned problems to the blackboard.Objectives: 5
Contents:
Theory
6h
Problems
6h
Laboratory
0h
Guided learning
0h
Autonomous learning
12h
Learning the topic "Fixed Parameter Algorithms"
Students attend the theory classes, try to understand this subject and solve problems, asking professor for help in the class of problems. Furthermore the students can also be asked to present one of the assigned problems to the blackboard.Objectives: 6
Contents:
Theory
3h
Problems
4h
Laboratory
0h
Guided learning
0h
Autonomous learning
8h
Learning the topic "Data Stream Algorithms"
Students attend the theory classes, try to understand this subject and solve problems, asking professor for help in the class of problems. Furthermore the students can also be asked to present one of the assigned problems to the blackboard.Objectives: 7
Contents:
Theory
4h
Problems
4h
Laboratory
0h
Guided learning
0h
Autonomous learning
8h
Teaching methodology
The theoretical content of the course is taught in theory classes.In problem's classes, the solutions proposed by the students to exercises will be discussed. These exercises will be set by the teacher in advance (more complex statements, with which the student has been able to work for a week, autonomously) or short exercises set during the same class to be worked on in teams of two to four students or individually. Students may be required to present their solutions to the rest of their classmates.
Students will have to make several presentations/deliveries of the solution to problems or algorithms assigned by the teacher. In some cases, finding the solution will require using methods that complement those seen in theory classes and will require doing a small bibliographic search. In these cases, the solutions will be asked to be presented publicly.
Evaluation methodology
The final grade is calculated from the grade for solving algorithmic problems in problem's class and that of the assignments/presentations (A); the grade for the written tests: partial (P1 and P2) and the final exam (F).The grade for the continuous assessment of the subject is calculated from the grade A, and the grades for the partial exams P1 and P2 as follows:
Continuous Grade= 0.2 A + 0.4 P1 + 0.4 P2
The student may not take the final exam and, if so, the Final Grade = Continuous Grade.
If the student takes the final exam and obtains a grade of ExF, then
Final Grade = max { F, (Continuous Grade + F)/2 }
The assessment of the G7.3 competency is carried out by the teacher individually for each student based on the public and written presentations of the assigned topics.
The assessment of the competencies does not affect the assessment of the subject.
Bibliography
Basic
-
Algorithms
- Dasgupta, S.; Papadimitriou, C.H.; Vazirani, U.V,
Mc Graw Hill Higher Education,
2008.
ISBN: 978-0-07-352340-8
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003202339706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Algorithm design
- Kleinberg, J.; Tardos, E,
Pearson,
2014.
ISBN: 9781292023946
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004001669706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Introduction to algorithms
- Cormen, T.H. [et al.],
MIT Press,
2022.
ISBN: 9780262046305
Complementary
-
Approximation algorithms
- Vazirani, V.V,
Springer,
2010.
ISBN: 9783642084690
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003727759706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Invitation to fixed-parameter algorithms
- Niedermeier, R,
Oxford University Press,
2006.
ISBN: 0198566077
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003093699706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Probability and computing: randomized algorithms and probabilistic analysis
- Mitzenmacher, M.; Upfal, E,
Cambridge University Press,
2005.
ISBN: 9780521835404
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002835539706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Algorithmic game theory
- Nisan, N. [et al.] (eds.),
Cambridge University Press,
2007.
ISBN: 9780521872829
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003321009706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
The nature of computation
- Moore, C.; Mertens, S,
Oxford University press,
2011.
ISBN: 9780199233212
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003877749706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Handbook of applied algorithms: solving scientific, engineering and practical problems [Chapter 8. Algorithms for Data Streams]
- Nayak, A.; Stojmenovic, I. (eds.),
Wiley Interscience,
2008.
ISBN: 9780470044926
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003396759706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Previous capacities
Knowledge of algorithms and related concepts: efficiency of algorithms, asymptotic notation,greedy algorithms, dynamic programming, recursive programming, etc.
Basic knowledges of the theory of computation: automata, grammars, Turing machines, decidibilitat, complexity.
Critical capacity.
Mathematical maturity.