The Art of Programming

Universidad Politécnica de Madrid
LEVEL
Bachelor student 
TYPE
Course, workshop, MOOC, seasonal school
MODES
In person
LANGUAGE
-
ECTS
30
PERIOD
01/09/2023 to 31/01/2023

Course Description

The aim of this course is to teach students to design efficient algorithms to solve complex time- and memory-based problems. The course addresses the following topics: 1. Introduction. Why do we need this course? Problem-solving techniques. Computational thinking. How to fail your Google job interview. 2. Complexity. Quantitative algorithm analysis considering time and (memory) resource consumption. Complexity classes and asymptotic complexity. Big-Oh & Big-? notations, amortized cost, etc. 3. Algorithm design patterns. Reinventing the Wheel can be a good for a while. Many successful algorithms use similar techniques and we can use these patterns to design new algorithms: divide and conquer, greedy algorithms and dynamic programming techniques, especially blind and information-driven search techniques. Technique applicability requirements. 4. Problems, problems, problems. A synthesis of complexity and design patterns by solving wide-ranging algorithmic problems, also covering problem classification.

Educational-info

ECTS

30

Validation mode

Check in learning guide in URL column

Organizer

Partner

Universidad Politécnica de Madrid

Faculty

School of Computer Engineering

Department

Computer Languages,Systems and Software Engineering

Contact or registration links