Course Description
-
Course Name
Algorithms
-
Host University
Universidad de Deusto - Bilbao
-
Location
Bilbao, Spain
-
Area of Study
Computer Science
-
Language Level
Taught In English
-
Prerequisites
Basic programing skills: loops (for, while...) and conditional control structures (if, else...).
-
ECTS Credits
6 -
Recommended U.S. Semester Credits3
-
Recommended U.S. Quarter Units4
Hours & Credits
-
Overview
Justification
Every Data Science and Artificial Intelligence professional must use algorithms intensively. Algorithms will be the most important element in several of the subjects that the student will work on the following years, being the foundation of areas like machine learning, deep learning, natural language processing or computer vision.This course will provide a comprehensive introduction to the modern study of computer algorithms. It will present multiple algorithms that will be studied in order to introduce the basic elements of algorithm analysis and design. Students will learn how to analyze problems and formulate correct and efficient solutions in pseudocode, which can be later implemented in the desired programming language.
This subject contributes to the development of the following competence of the degree:
CE-IA-01 - Design and apply the basic algorithmic procedures of computer technologies to design solutions to problems, analysing the suitability and complexity of the proposed algorithms.
Subject competencies
CE1: Ability design solutions for problems, being able to identify those solutions that are more suitable for different contexts and to specify them using pseudocode.CE2: Ability to analyze the efficiency of an algorithm and compare the performance between different algorithms.
CE3: Ability to use different data structures to create efficient solutions.
Course content
UNIT 1. Introduction to algorithms: Introduction to basic algorithm concepts and the importance of algorithms in computing.UNIT 2. Analysis and design of algorithms: Introduction to the basics of algorithms design and analysis. Introduction to pseudocode.
UNIT 3. Growth of functions: Analysis of the asymptotic efficiency of algorithms. Introduction to multiple growth notations: theta, O and omega.
UNIT 4. Divide-and-Conquer: Further study of the design approach presented in unit 2. In-depth analysis of the recurrence in algorithms.
UNIT 5. Data Structures: Introduction to different data types. Representation of dynamic sets by simple data structures that use pointers.
Evaluation System
The generic and specific competences will be evaluated through the continuous assessment system proposed as a methodology. This evaluation will be reflected in the following three blocks:
1. Partial exam 1: algorithm design (30% of the grade)
2. Partial exam 2: Simple data structures (20% of the grade)
3. Team project (20% of the grade).
4. Final Exam (30% of the grade). If the students have passed the partial exams, the final exam will only consist on the complex data structures.
In order to pass the subject it is necessary to obtain 50% in the overall grade. A minimum of 4/10 in the three parts (algorithm design, simple data structures and complex data structures) is required. The grade corresponding to the continuous assessment tests may be recovered in the ordinary exams by carrying out similar exercises.
The assessment will be carried out in the same way for both the ordinary and extraordinary exams.
Course Disclaimer
Courses and course hours of instruction are subject to change.
Eligibility for courses may be subject to a placement exam and/or pre-requisites.
Credits earned vary according to the policies of the students' home institutions. According to ISA policy and possible visa requirements, students must maintain full-time enrollment status, as determined by their home institutions, for the duration of the program.
Please note that some courses with locals have recommended prerequisite courses. It is the student's responsibility to consult any recommended prerequisites prior to enrolling in their course.