Winter Semester 2025/26

Introduction to Programming

This is an introductory course to programming using a language called Python. Learn how to read and write code as well as how to test and “debug” it. Designed for students with and without prior programming experience who’d like to learn Python specifically. Learn about functions, arguments, and return values (oh my!); variables and types; conditions and Boolean expressions; loops; and objects and methods. Plus exceptions, file I/O, and libraries. Hands-on opportunities for lots of practice. Exercises inspired by real-world programming problems.

Throughout the semester, students will go over the following topics:

  • Setting up my tools (python, pycharm, jupyter, git/github/gitlab) and writing my first program 
  • Algorithmic flowcharts and pseudo-code
  • Data Structures, Libraries
  • Functions / Variables
  • Conditionals
  • Loops/Recursion
  • File I/O
  • Regular Expressions
  • Search and Sort
  • Errors/Exceptions
  • Python Specials
  • Object-Oriented Programming

Teaching Form: Blended learning: Face-to-face lectures and practical sessions with online learning modules, and group work. 

LSF

Learning Analytics

Learning analytics is an emerging interdisciplinary field at the intersection of education, data science, psychology, and learning sciences. This course provides a comprehensive introduction to the theory, methods, and applications of Learning Analytics. Students will learn how data about learners and their contexts can be collected, analyzed, and interpreted to enhance learning, improve teaching, and inform institutional decision-making. Through a combination of lectures, readings, hands-on projects, and critical discussions, students will develop both conceptual knowledge and practical skills in applying analytics to real-world educational challenges.

The course begins by exploring the conceptual foundations of learning analytics, including its historical development, theoretical underpinnings, and relationship to adjacent fields such as educational data mining, artificial intelligence in education, and learning sciences. Students will critically engage with the motivations for learning analytics, ranging from improving student learning outcomes and supporting instructor decision-making to informing institutional policy and advancing educational research.

The second part of the course introduces students to core methods and tools, including data collection from learning management systems and digital platforms, visualization techniques for representing learning processes, and statistical as well as machine learning approaches for modeling learner behavior and predicting outcomes. Through hands-on assignments, students will gain practical experience working with authentic or simulated educational datasets, applying analytical methods, and interpreting results in ways that support pedagogical and institutional goals.

The course also emphasizes the ethical, legal, and social dimensions of learning analytics, including issues of privacy, data governance, algorithmic bias, and the responsibilities of institutions in deploying analytics responsibly. Students will be encouraged to think critically about the benefits and risks of learning analytics, developing an informed perspective on its potential for shaping the future of education.

Over the semester, the students will go over the following topics:

  • What is Learning Analytics
  • Theoretical and Conceptual Foundations
  • Data in Learning Environments
  • Descriptive Analytics and Visualizations
  • Predictive Analytics in Education
  • Social and Network Analytics
  • Text and Discourse Analytics
  • Learning Design and Analytics
  • Institutional and Policy Perspectives
  • Ethics, Privacy, and Responsible Use
  • Emerging Trends in Learning Analytics

By the end of the course, students will:

– Understand the theoretical and practical foundations of learning analytics.
– Be able to apply data-driven methods to analyze and interpret learning processes.
– Critically evaluate the role of analytics in improving learner success, instructional design, and institutional strategy.
– Demonstrate awareness of the ethical and societal challenges associated with educational data use.
– Communicate findings from learning analytics to technical and non-technical audiences.

LSF

Designing of an Intelligent Tutoring System for Programming

This project focuses on the design and development of an Intelligent Tutoring System (ITS) — software that provides immediate, adaptive, and personalized instruction or feedback to learners, typically without the direct involvement of a human teacher. ITSs are a rapidly evolving field in educational technology, combining principles of artificial intelligence, cognitive science, and pedagogy to deliver learning experiences tailored to each student’s needs.

To build our system, we will leverage OATutor, an open-source adaptive learning platform developed at the University of California, Berkeley. OATutor enables integration with AI components, making it possible to implement personalized tutoring features such as step-by-step guidance, feedback on problem-solving, and adaptive content delivery. This makes OATutor an ideal foundation for our project, as it allows us to focus on designing effective tutoring strategies while relying on a robust, existing framework for adaptive learning.

The tutoring system we will develop will concentrate on Python programming, one of the most widely used and beginner-friendly programming languages. Python provides an excellent domain for designing an ITS, as it combines practical relevance with accessibility for learners at different levels. By engaging with our tutoring system, learners will not only improve their programming proficiency but also receive immediate, personalized feedback on their progress. This ensures that mistakes are identified and corrected in real-time, promoting deeper learning and retention.

Throughout the project, participants will gain hands-on experience in multiple technical areas. These include:

  • Basic machine learning algorithms, which will underpin the adaptive feedback and predictive modeling of student performance.
  • Scripting and logging, essential for building, testing, and monitoring the tutoring system.
  • Version control (Git), a professional skill crucial for collaborative software development.
  • Applied Python programming, as participants refine and extend their existing skills through direct application in the project.

In addition to technical competencies, participants will also practice project management and collaborative problem-solving, both critical skills in academic and industry contexts.

An important feature of this project is its open-source philosophy. The completed tutoring system will be made available as an open-source extension, with proper acknowledgment of all contributors. This ensures that the work has lasting value beyond the duration of the project, contributing to the global community of educators, developers, and learners who can build on the system in the future.

LSF