
Building on the concepts from Py102, this course introduces students to the principles of algorithm design and analysis. It emphasizes developing efficient solutions to computational problems and rigorously evaluating their performance. Topics include asymptotic analysis, time and space complexity, recurrence relations, and common algorithmic paradigms such as divide-and-conquer, greedy algorithms, dynamic programming, and backtracking. Students will also be introduced to the fundamentals of computational complexity, including NP-completeness. By the end of the course, students will be able to design, analyze, and compare algorithms using both theoretical and empirical methods in Python.
- Teacher: Myo Thida

This course builds upon the foundational programming skills introduced in Py101 and focuses on the organization, storage, and management of data within computer programs. Students will explore fundamental data structures such as lists, stacks, queues, trees, graphs, and hash tables, learning how each structure supports efficient data access and manipulation. Emphasis is placed on understanding abstract data types (ADTs), analyzing trade-offs in implementation, and applying these structures to solve practical computational problems. Through Python-based programming exercises, students will gain experience in implementing data structures, measuring their performance, and selecting appropriate structures for various tasks.
- Teacher: Myo Thida

This course is primarily designed for first-year undergraduate students as an introduction to the field of computer science and fundamental concepts of computer programming. It utilizes
Python programming and is suitable for students without any prior programming experience. Throughout the course, students will acquire knowledge in Python fundamentals, data types, writing functions, debugging, and solving real-life problems using programming concepts. Additionally, students will learn the essentials of version control using Git.

This course provides an overview of data science concepts, including data collection, cleaning, visualization, and basic statistical analysis. Students will learn how to work with real-world datasets using Python while exploring key tools such as Pandas and Matplotlib.