Reusable Learning Objects

Spring 2022

Prof. Ivon Arroyo

TA: Boming Zhang

Created by:  CICS' Teaching Assistants, Tomorrow's Faculty. Spring 2022.

An Interactive Tools for Demonstrating Theoretical Algorithms (CS 688)

Group Members: Jinlin Lai, Erica Cai, Binbin Xie

In this RLO project, we develop a website that contains algorithms taught in CS688: Probabilistic Graphical Models. Our key motivation is that the current demonstrations of CS688 are nonexistent or too restricted; yet, we think that demonstrations would be very helpful for understanding algorithms that are related to very abstract concepts. For example, an algorithm may refer to the concept of “unblocked path”, which may be confusing to students until they see what an “unblocked path” looks like and how it relates to the rest of an algorithm in a demonstration. We design a demonstration of d-separation and develop an interactive website that hosts this demonstration. In the website, students are able to design graphs and queries and answer those queries. The website responds by showing figures, animations, and explanations. The professor could use this website in class when teaching the related topic. Currently we only demonstrate D-separation, but we believe this website can be further extended by adding more algorithms. Our current learning objective is to help students better understand D-separation algorithms. We ask the students to fill out a survey to share the experience of using this website.

Search Visualizer (CS 383)

Group Members: Shiv Shankar, Yaswanth Chittepu

The goal of our project is to provide methods that can aid a students learning of different search algorithms (like BFS, DFS, A* etc.). For this we developed a visual software tool on python which allows visualization of these algorithms. The tool allows creation of custom grid graphs, and visualizes each step of the algorithm execution via coloured nodes. Additionally we developed a supporting questionnaire to check the learners understanding on sample grids. The learners self-check their understanding by running the simulator. We ask them to provide feedback on the effectiveness of the simulation in improving their understanding.

Hands-on Experience with Text Generation (CS 685)

Group Members: Andrew Drozdov and Ashish Singh

Motivated by the importance of text generation in NLP, and a lack of hands-on tools for using modern systems, we designed an RLO that is an interactive Google Colab assignment and deployed it to the Advance NLP Course (CS685). In the assignment, Master's students have an opportunity to perform activities to inspect and run the powerful systems they've been learning about in lecture. After completing the assignment, students should feel confident designing new systems, using existing systems for new tasks, and have general renewed enthusiasm for NLP. The design of the RLO involved an interactive feedback loop between the Professor and other students. The final product was received positively by the pilot group and deployed to a graduate-level course with more than 100 students. Many have already commented on the assignment, mentioning its direct relevance to their ongoing projects.

Using ORM for Databases to build Real-World Applications (CS 345)

Group Members:Juelin Liu,Alireza Bahramali, andKunjal Panchal

The course CS 345 - Practice and Applications of Data Management deals with SQL scripts a lot. But students are often unaware about the real-world security issues that arise with SQL, and hence, often unprepared to deal with those issues in their CS careers. 

We introduce “beginner to SQL” students to a concept named ORM - Object Relational Mapping. With ORMs, they can write SQL type of queries in their preferred programming language, while armoring themselves with a scalable and secure layer which is not present with plain SQL scripts. 

We piloted an interactive hour-long session, and 3 students from CS345 who were really curious about ORMs showed up. We targeted a fun chatbot application. Where any user can message this contact number to talk with a chatbot. Clearly, user messages can carry sensitive information, so SQL scripts might not always be good in terms of privacy of the database. 

Before this session, the students had never worked with ORMs, they had familiarity with SQL since it’s part of the CS345 course. We worked through how ORMs can be used to build SQL queries. Over the hour, students were able to make an application and build elementary SQL queries dynamically as well as send them to the database. The responses on the clarity of the toy assignment was positive and the students enjoyed the learning flow. 

In future, with instructor’s approval, we hope to make this activity to be an assignment for CS345 where we can give a database and ask students to build a client side application which interacts with the database through ORMs. 

Primer for Proofs (CS 311)

Group Members: Hiba Ahsan

 RLO for COMPSCI 311. A document that serves as a refresher for proving the correctness of an algorithm. This document will include basics such as proof by induction, proof by contradiction, and what terms such as “necessary and sufficient” and “if and only if” mean. Each topic will be supported with examples as well as common mistakes one can make. The document will be shared in the first week of class. It will ensure students have refreshed their basics early on. They will be able to understand proofs covered in class better and will be better equipped to prove correctness themselves.

Information Acqusition-oriented Chat Bots (CS 691O)

Pengshan Cai, Zezhou Cheng, Xi Wang

Communication is the central process of education. In learning as conversation, a student does not read a passage but gains information and knowledge through conversation with a teacher who reads the passage. Compared to the traditional learning by reading, learning as conversation has the advantages that conversation helps students stay engaged and that information is provided piece by piece, which helps strengthen learning with a shorter attention span. The advantages of learning as conversation have been verified with educational evidence.


For example, studies have shown that when children read storybooks, parents' guided conversation, e.g., posing questions and providing responsive feedback, substantially amplifies the learning benefits. While high-quality conversations with experts are not always available, it would be helpful if AI-empowered chat bots. In this project, we explore a novel AI-empowered chat bots for information acquisition purpose. Given a paper abstract, our chat bot actively engages with an end-user to form a coherent conversation, so that the user could gain knowledge without reading the passage. We invited students from CS 691 O to evaluate our bot and we asked them to provide feedbacks on the chat bot from three main aspects:

1) How significant do you think this chatbot for helping reading paper abstracts is for you.

2) Would you recommend it to students and would you use it again? Why?

3) Please leave other comments on this chatbot. 

Checking Correctness for Regular Expressions (CS 250)

Group Members: Sabrina Zaman Ishita, Samuel Osebe, and Andre Kenneth “Chase” Randall

As a result of our python script, a user validates and confirms their solution for a regular expression language. We lowkey provide a way to work with formal languages defined by regular expressions for analysis and applications.  We motivate students towards applying any concept through programming, thereby, increasing critical thinking skills along with technical prowess.  We primarily target computer science, mathematics or computer engineering students taking the UMass Amherst’s COMPSCI 250 Introduction to Computation course.  We deploy the python code using Google Colab.  For Spring 2022, students who completed our user survey became eligible for two extra points added to their final exam grade.  



Recursions in Python: A Quick Guide to Recursive Functions for First Time Coders (CS 121 and CS119)

Group Members: Mehrdad Khanzadeh, Mahsa Sahebdel, Aimen Gaba, Mahta Rafiee

The RLO project focuses on the topic of recursion and recursive functions in the Python

programming language at an introductory level since both CS119 and INFO101 are courses

providing an introduction to programming with Python.