Course 2026-2027 a.y.

30768 - ALGORITHMIC THINKING: FOUNDATIONS OF PROBLEM SOLVING

Department of Computing Sciences


Course taught in English
Go to class group/s: 31
BAI (6 credits - I sem. - OP  |  INF/01) - BEMACS (6 credits - I sem. - OP  |  INF/01) - BESS-CLES (6 credits - I sem. - OP  |  INF/01) - BGL (6 credits - I sem. - OP  |  INF/01) - BIEF (6 credits - I sem. - OP  |  INF/01) - BIEM (6 credits - I sem. - OP  |  INF/01) - BIG (6 credits - I sem. - OP  |  INF/01) - CLEACC (6 credits - I sem. - OP  |  INF/01) - CLEAM (6 credits - I sem. - OP  |  INF/01) - WBB (6 credits - I sem. - OP  |  INF/01)
Course Director:
JAROSLAW BLASIOK

Classes: 31 (I sem.)
Instructors:
Class 31: JAROSLAW BLASIOK


Suggested background knowledge

In order to successfully follow this course, students should be familiar with basic linear algebra and probability.

Mission & Content Summary

MISSION

Algorithms shape the modern world, influencing nearly every aspect of our lives. This course explores the fundamental ideas of algorithmic theory that have led to elegant and powerful solutions to a wide range of computational problems. In this course, students will have hands-on experience with implementing these ideas with the assistance of AI. Students will also develop strong theoretical foundations in algorithmic thinking and problem solving, drawing on techniques from theoretical computer science, discrete mathematics, and probability.

CONTENT SUMMARY

  • Solving problems using Discrete math and probability techniques
  • Randomness: an unexpected computational resource
  • Noise is your friend: processing private data and planning for unknown future
  • Big data processing: can a single machine analyze whole internet?
  • Improving algorithms with Machine Learning

Intended Learning Outcomes (ILO)

KNOWLEDGE AND UNDERSTANDING

At the end of the course student will be able to...
  • State computational, combinatorial, and probabilistic phenomena behind classical algorithmic results
  • Describe classical algorithmic techniques used to solve problem in the discussed computational models

APPLYING KNOWLEDGE AND UNDERSTANDING

At the end of the course student will be able to...
  • Translate real-world problems into formal representations that can be addressed using algorithmic techniques.
  • Apply classical algorithmic techniques to solve algorithmic problems
  • Implement algorithms in Python with the help of AI

Teaching methods

  • Lectures
  • Individual works / Assignments

DETAILS

Individual assignments: Students will use AI to implement algorithms based on course topics to solve sample algorithmic problems. Lectures will adopt a hybrid proof-and-experiment approach, where students can decide either to perform an experimental evaluation of the algorithm’s properties with the help of AI, or to follow a rigorous mathematical proof presented by the instructor.


Assessment methods

  Continuous assessment Partial exams General exam
  • Written individual exam (traditional/online)
    x
  • Individual Works/ Assignment (report, exercise, presentation, project work etc.)
x    

ATTENDING AND NOT ATTENDING STUDENTS

Written exam (70% of the final grade) consists of open and closed answer questions aimed to assess theoretical understanding of key concepts in algorithmic theory, ability to formulate complex computational problems, ability to describe the main algorithmic techniques covered.


Individual assignments (30% of the final grade) consist of 3 programming assignments to implement algorithms and solve sample algorithmic problems.


Teaching materials


ATTENDING AND NOT ATTENDING STUDENTS

The textbooks are communicated prior to the start of the course.

Last change 26/05/2026 17:36