Instructor: Márton Karsai and Gergely Ódor
Prerequisite: None
Term: Pre-term course (during two weeks before Fall term)
Level: MS
Course type: Elective
Module: Bootcamp
Brief course description: This course aims to introduce the basic concepts in computer science to students, who join the Social Data Science program without sufficient background. This course will introduce mathematical modeling of computational problems, as well as common algorithms, algorithmic paradigms, and data structures used to solve these problems. It emphasizes the relationship between algorithms and programming and introduces basic performance measures and analysis techniques for these problems. The course is organized as a sequence of short lectures and tutorials.
Learning outcomes: By the end of the course the student will be able to
approach programming challenges with the basic algorithmic techniques
design effective algorithms for various computational problem
identify the appropriate data structure for the optimal implementation of a computational problem
evaluate the computational performance of the implemented algorithmic solution
What you will NOT learn in this course : This course is about the data structures and algorithms. It will not provide you advanced coding and data visualization skills, neither training on data handling and database management.
Learning activities and teaching methods: Lectures and tutorials.
Assessment: A students in this course will be evaluated as pass/fail through their performance and homework. Regular class attendance is required to pass the course. Active class participation is highly recommended.
Attendance: Attendance is mandatory for at least 70 percent of the lectures. Absence from more than 30 percent of the classes automatically leads to failure. In case on-site teaching is allowed, online participation does not count as attendance unless officially certified.
Assignments: In the end of tutorial sessions homework will be handed out.
Course reading:
The lectures are built on topics discussed in: Cormen, Thomas, Charles Leiserson, Ronald Rivest, and Clifford Stein. Introduction to Algorithms. 3rd ed. MIT Press, 2009. ISBN: 9780262033848.
Software: Jupyter Notebook in the environment of Anaconda, freely downloadable here (download the version, which contains Python 3.9) and PyCharm (Community edition) is an integrated development environment (IDE) for programming, also available within Anaconda.
Literature: Open book: Non-Programmer's Tutorial for Python
Youtube playlist Python for Beginners
Course topics:
Lecture 1: Introduction to Algorithms and Computing, Recursion
Tutorial 1: Basics of programming, control flow
Lecture 2: Program efficiency
Tutorial 2: Functions, local & global variables
Lecture 3: Searching and sorting
Tutorial 3: Strings, tuples, loops
Lecture 4: Introduction to data structures, sets & hashing
Tutorial 4: Modules and lists
Lecture 5: Linear sorting, heaps
Tutorial 5: Dictionaries and sets
Lecture 6: Binary trees, elementary graph algorithms
Tutorial 6: Object oriented programming
Schedule:
| Mon 11.09.2023 | Tue 12.09.2023 | Wed 13.09.2023 | Thu 14.09.2023 | Fri 15.09.2023 |
8:50-10:30 | Info L4 | ||||
10:50-12:30 | Info T4 | ||||
13:30-15:10 | Info L1 | Info L2 | Info L3 | Info L5 | Info L6 |
15:40-17:20 | Info T1 | Info T2 | Info T3 | Info T5 | Info T6 |
- Instructor: Marton Karsai