Course Overview
This course [UCEST105] introduces the fundamentals of algorithmic thinking and demonstrates how to apply them in solving real-world problems using Python. Students learn various problem-solving paradigms—including brute force, divide-and-conquer, dynamic programming, greedy, and randomized approaches—through theory and hands-on practice. It covers core Python programming concepts, such as variables, data types, control structures, functions, recursion, and the use of libraries like NumPy. Practical sessions emphasize pseudocode, flowcharts, and modular programming, enabling students to design and implement efficient algorithms. By the end, learners will be able to formulate problems, develop algorithms, and translate them into functional Python programs with confidence
What You'll Learn
- Develop a solid understanding of algorithmic thinking and its practical applications.
- Explore problem-solving paradigms: brute force, divide-and-conquer, dynamic programming, heuristics.
- Learn to formulate problems, create algorithms, and implement them in Python
Coding Competition (Algorithmic Sprint - 2025)
-
I plan to organize a coding competition at the end of the course.
The goal is to give participants hands-on experience with competitive programming in Python.
It will allow learners to apply the concepts they studied throughout the course.
The competition will act as a practical implementation of their knowledge.
It will focus on problem-solving and algorithmic thinking.
Participants will write Python solutions to solve coding challenges.
This event will serve as a final, engaging way to wrap up the course Flyer