---
source_url: "https://roiyeho.com/teaching.html"
title: Teaching - Roi Yehoshua
mirrored_at: 2026-08-19T01:39:10.647Z
host: roiyeho.com
cited_in_42a: true
mirror_canonical: "https://index.42a.ai/roiyeho.com/teaching.html"
---

> **Original source:** https://roiyeho.com/teaching.html

My primary teaching responsibility at Northeastern is delivering core courses in the Master’s program in Data Science, which is jointly offered by the Khoury College of Computer Sciences and the Department of Electrical and Computer Engineering (ECE). These include algorithm design, data processing, machine learning, data mining, and data visualization. I have taught nearly every course in the program and also developed the popular Large Language Models course from the ground up. In addition to instruction, I am also advising a PhD student working on multi-robot systems and large language models.

Prior to joining Northeastern, I spent over 20 years teaching at top universities and colleges in Israel, offering a wide range of courses in Computer Science, Data Science, and Robotics. I also designed and led an intensive six-month data science training bootcamp aimed at preparing outstanding CS and Math graduates for careers in the tech industry.

## Courses Taught

-   **Large Language Models (DS 5983, EECE 5668)** — A graduate-level course I designed and developed from the ground up at Northeastern University. This course provides a comprehensive introduction to the theory, training, and real-world applications of large language models (LLMs). Students explore the full lifecycle of LLM development—from pre-training to prompt engineering, fine-tuning, alignment tuning (e.g., RLHF, DPO), Retrieval-Augmented Generation (RAG), and model deployment. Practical components include hands-on assignments using Python libraries such as Hugging Face Transformers, as well as a semester-long team project focused on building an LLM-based application or conducting original research on LLMs (2024–2026).
-   **Supervised Machine Learning (DS 5220, EECE 5644)** — A graduate-level course that covers core concepts and theoretical foundations of supervised learning, including generalization, model capacity, regularization, and the bias–variance tradeoff, as well as key algorithms such as linear and logistic regression, decision trees, neural networks, and ensemble methods. The course interleaves theory with practical applications using Python libraries such as Scikit-Learn and XGBoost (2021–2026).
-   **Software Engineering (EECE 4520)** — An undergraduate course covering the principles and practice of modern software engineering, including structured and agile development processes, UML modeling, requirements analysis, design patterns, estimation, testing, and verification. The course is centered around a team-based, Scrum-driven project that spans the full software lifecycle, from requirements elicitation to final deployment and validation (2021–2026).
-   **Introduction to Data Management and Processing (DS 5110)** — Introduces core data science workflows, including data collection, transformation, analysis, and visualization, with an emphasis on relational databases and SQL. Topics include database design and normalization, query optimization, data analysis with Python (NumPy, Pandas, Matplotlib), and scalable data processing using NoSQL databases and distributed frameworks such as MapReduce and Spark (2021–2024).
-   **Unsupervised Machine Learning and Data Mining (DS 5230)** — A graduate course focused on discovering structure and patterns in unlabeled data. Topics include clustering, dimensionality reduction, Gaussian mixture models and EM, association rule mining, topic models, recommender systems, and network analysis. The course also introduces deep unsupervised learning methods such as VAEs and GANs (2020–2023).
-   **Artificial Intelligence (CS 4100)** — An undergraduate course introducing the core foundations of artificial intelligence, including uninformed and informed search, adversarial search and constraint satisfaction, decision-making under uncertainty (MDPs and reinforcement learning), probabilistic graphical models (Bayesian networks and HMMs), and machine learning methods ranging from supervised and unsupervised learning to deep learning. The course combines theoretical foundations with Python-based programming assignments (2020).
-   **Data Science Bootcamp (Experis Academy)** — A 6-month intensive program I led and developed to train graduate students to become data scientists in the Israeli tech industry. The curriculum covered Python programming, data manipulation and visualization with NumPy, Pandas and Matplotlib, relational and NoSQL databases (MongoDB), statistical analysis, machine learning (classification, regression, clustering, reinforcement learning), deep learning (CNNs, RNNs, TensorFlow), natural language processing, cloud computing (AWS), big data tools (Spark, Hadoop), and a capstone project based on real-world datasets (2018).
-   **Advanced Programming (89-211, Bar-Ilan University)** — Served as a Teaching Assistant for this upper-level undergraduate course, which focused on advanced object-oriented design and software architecture across desktop, web, and mobile platforms. Topics included multithreading, event-driven programming, GUI design (WPF, MVVM), web services (REST, SOAP), scalability, concurrency patterns, and mobile development with Android (2016–2017).
-   **Multi-Robot Systems (89-689, Bar-Ilan University)** — Served as a Teaching Assistant for this advanced graduate course, which explored distributed algorithms, coordination strategies, and communication protocols for teams of autonomous robots. Topics included task allocation, formation control, cooperative exploration, and the design of reusable teamwork architectures. The course emphasized both classical approaches and open research challenges in multi-agent robotics (2014–2016).
-   **Introduction to Robotics (89-685, Bar-Ilan University)** — Served as a Teaching Assistant for this undergraduate course, which introduced core robotics concepts including sensing, localization, SLAM, Kalman filters, robot control architectures, motion planning (e.g., A\*, coverage), and multi-robot systems. I developed a set of tutorials on ROS (robot operating systems), which were later adopted in various other universities around the globe (2013–2017).
-   **Various Computer Science Courses (College of Management Academic Studies)** — Taught a wide range of undergraduate computer science courses, including Data Structures, Theory of Computation, Database Systems, Introduction to Robotics, Operating Systems, Object-Oriented Programming, and Cloud Computing (2013–2017).
-   **Various Computer Science Courses (The Open University)** — Served as a lecturer in advanced undergraduate courses in computer science, including Data Structures and Algorithms, Biological Computation, Software Engineering, and Numerical Analysis (2008–2017).