Nico Ritschel

Professional Practice Assistant Professor at Utah State University

I currently teach modern software engineering in USU's new "AI in Software Engineering" immersion course. I am especially interested in teaching the entire process of building software, from requirements to release and beyond.

Previously, I have researched programming and learning tools for students and end-users without a traditional computer science background. I have worked on visual and block-based programming tools for industrial robot programmer, and tools for creating and sharing auto-gradable and randomizable course materials.

Before joining Utah State, I was a Postdoctoral Research Associate at the University of Illinois Urbana-Champaign, where I worked with Geoffrey Herman on the problems instructors encounter when adopting PrairieLearn. I completed my Ph.D. at the University of British Columbia with Reid Holmes and Ronald Garcia.


Teaching

CS 5890: AI-Augmented Software Engineering

Instructor · Utah State University

Two-term, project-based immersion course in which students build and evolve a complex software system using a modern, AI-enabled workflow.

2026–2027

CS 498: Designing Software for Education

Instructor · University of Illinois Urbana-Champaign

10 students; undergraduate/graduate class on developing educational tools for the platform PrairieLearn.

2026

CS 101: Introduction to Programming for Scientists and Engineers

Co-instructor · University of Illinois Urbana-Champaign

749 and 492 students over 2 terms; introductory class on Python programming for non-majors; co-instructed with Liia Butler and Max Fowler.

2025

CS 500: Current Topics in Computing Education Research

Co-instructor · University of Illinois Urbana-Champaign

19 students; undergraduate/graduate class on developing educational tools for the platform PrairieLearn; co-instructed with Geoffrey Herman and Mariana Silva.

2024

CPSC 410: Advanced Software Engineering

Instructor · University of British Columbia

52 students; condensed Summer class (taught over two months) on software engineering tools and methods, as well as domain-specific languages and formal verification.

2022

Other Teaching-related Experience

Scholarship and Teaching for Engineering Postdocs (STEP) Program

University of Illinois Urbana-Champaign

Completed a two-term professional-development program covering teaching and research practices, including lecture observations and feedback on teaching materials.

2024–2025

Instructional Skills Workshop

University of British Columbia

Completed a five-day workshop that included multiple teaching sessions, discussions on supporting distance learning, and handling difficult classroom situations.

2022

Publications

Enabling Open Educational Resource Adoption through Integrated Sharing in PrairieLearn

Seth Poulsen, Geoffrey L. Herman, Mariana Silva, Max Fowler, David H. Smith, Leo Porter, Nico Ritschel, Craig Zilles, and Matthew West

Proceedings of the 57th ACM Technical Symposium on Computer Science Education, Volume 1, pp. 859–865.

2026

Block-based or graph-based? Why not both? Designing a hybrid programming environment for end-users

Nico Ritschel, Reid Holmes, Felipe Fronchetti, Ronald Garcia, and David C. Shepherd

Interacting with Computers, volume 38, issue 1, pp. 40–57. Published online in 2025.

2025

Block-based Programming for Two-Armed Robots: A Comparative Study

Felipe Fronchetti, Nico Ritschel, Logan Schorr, Chandler Barfield, Gabriella Chang, Rodrigo O. Spínola, Reid Holmes, and David C. Shepherd

46th International Conference on Software Engineering.

2024

Blocks? Graphs? Why Not Both? Designing and Evaluating a Hybrid Programming Environment for End-users

Nico Ritschel, Felipe Fronchetti, Reid Holmes, Ronald Garcia, and David C. Shepherd

46th International Conference on Software Engineering: Companion Proceedings, pp. 326–327.

2024

Training Industrial End-User Programmers with Interactive Tutorials

Nico Ritschel, Anand Ashok Sawant, David Weintrop, Reid Holmes, Alberto Bacchelli, Ronald Garcia, Chandrika K. R., Avijit Mandal, Patrick Francis, and David C. Shepherd

Software: Practice and Experience, volume 53, issue 3, pp. 729–747.

2023

Can Guided Decomposition Help End-Users Write Larger Block-Based Programs? A Mobile Robot Experiment

Nico Ritschel, Felipe Fronchetti, Reid Holmes, Ronald Garcia, and David C. Shepherd

Proceedings of the ACM on Programming Languages, volume 6, OOPSLA2, pp. 233–258.

2022

Language Impact on Productivity for Industrial End-users: A Case Study from Programmable Logic Controllers

Felipe Fronchetti, Nico Ritschel, Reid Holmes, Linxi Li, Mauricio Soto, Raoul Jetley, Igor Wiese, and David C. Shepherd

Journal of Computer Languages, volume 69, article 101087.

2022

Enabling End-Users to Implement Larger Block-Based Programs

Nico Ritschel, Felipe Fronchetti, Reid Holmes, Ronald Garcia, and David C. Shepherd

44th International Conference on Software Engineering: Companion Proceedings, pp. 347–349.

2022

Comparing Block-Based Programming Models for Two-Armed Robots

Nico Ritschel, Vladimir Kovalenko, Reid Holmes, Ronald Garcia, and David C. Shepherd

IEEE Transactions on Software Engineering, volume 48, issue 5, pp. 1630–1643.

2022

Novice-Friendly Multi-Armed Robotics Programming

Nico Ritschel, Reid Holmes, Ronald Garcia, and David C. Shepherd

International Workshop on Robotics Software Engineering, pp. 29–32.

2019

Modular Capture Avoidance for Program Transformations

Nico Ritschel and Sebastian Erdweg

International Conference on Software Language Engineering, pp. 59–70.

2015

Experience

Professional Practice Assistant Professor

Utah State University · School of Computing

Teaching and research in computer science education, software engineering, and programming tools.

2026–present

Postdoctoral Research Associate

University of Illinois Urbana-Champaign · Siebel School of Computing and Data Science

Studied barriers to adopting PrairieLearn and developed open-source infrastructure for educational content creation and sharing.

2024–2026

Graduate Researcher

University of British Columbia · Software Practices Lab

Designed and evaluated programming tools for end-users without prior programming experience. Built functional prototypes and conducted controlled experiments, interviews, and surveys to study programming performance and user experience.

2017–2023

Sessional Instructor

University of British Columbia

Taught Advanced Software Engineering, including software design and evaluation, team-based development, and project mentoring.

2022

Full-Stack Software Developer and Research Fellow

Darmstadt University of Applied Sciences

Developed and evaluated a web-based energy trading platform in collaboration with local energy suppliers.

2016–2017

Education

Technische Universität Darmstadt

M.Sc. in Computer Science

Thesis: A Meta Representation for Reactive Dependency Graphs

Supervised by Mira Mezini and Ragnar Mogk.

2015–2017

Technische Universität Darmstadt

B.Sc. in Computer Science

Thesis: Modular Hygienic Program Transformations

Supervised by Mira Mezini and Sebastian Erdweg.

2011–2015

Personal Interests

Before coming to North America, I grew up in the beautiful city of Mannheim in Germany, and studied and worked in the not quite as beautiful, but academically more promising city of Darmstadt. During my Ph.D. in Canada, Vancouver and its surrounding areas gave me easy access to stunning hiking trails and beautiful ski resorts. In Utah (and beyond), I continue to enjoy all kinds of outdoor activities, including hiking, rock climbing, running, skiing and snowshoeing.

I also enjoy taking on service and community roles that bring people together. During my time at UBC I have served as a student representative on several departmental committees. From Spring 2018 to 2019, I was the UDLS czar of UBC's Computer Science department, where I hosted 33 undistinguished talks given by students and faculty about their hobbies and personal interests. From Spring 2019 to 2020, I was the President of UBC's Computer Science Graduate Student Association (CSGSA). For the following year, I was the CSGSA's VP Social. In 2023 and 2024, I have co-hosted puzzle hunts for graduate students at John's Hopkins Computer Science department with my partner.