Scholar research

CERD seminar

CERD (Computer Education Research at Davis) is a weekly seminar started in January 2020 and co-founded by former graduate students Aakash Prabhu, former associate instructor Justin Perona, and myself. It is currently co-hosted by undergraduate student Noah Rose Ledesma.

The topics are quite broad but they all relate to CS Education: presentation of academic papers or internal research projects or innovations in the classroom, external speakers, etc.

More information on our dedicated CERD website.

Study on gender and class participation

With undergraduate student Madison Brigham, we are analyzing multiple quarters worth of class participation in two core CS classes (Data structures and algorithms, and Operating systems and system programming). The goal of this research is to determine whether or not there is a gender gap, explain it, and find solutions to mitigate it.

Communications

  • Gender Differences in Class Participation in Core CS Courses [paper]
    Madison Brigham and Joël Porquet-Lupine
    ACM ITiCSE 2021 (26th Annual Conference on Innovation and Technology in Computer Science Education) –31% acceptance rate
    PDF
  • Gender Differences in Class Participation in Core Computer Science Classes [talk]
    Madison Brigham and Joël Porquet-Lupine
    UC Davis SoTL 2020 (5th Annual UC Davis Scholarship of Teaching and Learning Conference)
    slides

Software development for undergraduate education

LupIO devices

LupIOs are a collection of educational IO devices.

Real IO devices, even ancient ones (e.g., IDE controller, typical 16550 UART), are too complicated for educational purposes. They provide many configuration registers that are irrelevant when students use simple system emulators.

The goal of this project is to provide a suite of easy-to-understand but typical IO devices (e.g., terminal, interrupt controller, timer, block device) that students can use –and study– in some of their undergraduate courses (e.g., courses on computer organization and assembly language, computer architecture, operating systems).

Project is making good progress, link is coming soon.

LupV

LupV is an educational RISC-V based system emulator.

The emulated system embeds a standard RV32G-compatible processor (32-bit RISC-V integer instruction set with support for multiply and divide, atomic operations, and single- and double-precision floating point) and LupIO peripheral devices.

The goal of this project is to provide an easy to understand system emulator that students can use –and study– in some of their undergraduate courses (e.g., courses on computer organization and assembly language, computer architecture, operating systems).

Project still in early development, link is coming soon.

LupX

LupX is an educational operating system.

To keep it simple, LupX aims to provide strict compatibility with the very first version of POSIX (POSIX-1988). The kernel part of LupX is heavily based on Linux (e.g., directory structure, variable names, etc.).

The goal of this project is to provide an easy to understand, yet professional OS that students can study in some of their undergraduate courses (e.g., operating systems course).

Project still in early development, link is coming soon.

Software development for instructors

LupBook

Interactive textbooks can have a real value when teaching programming languages. The problem is that existing interactive textbooks all require a server to interactively execute code at runtime.

The goal of this project is to develop a new framework that runs entirely on the client’s side, and can even be used offline.

Master’s student Garrett Hagopian is currently spearheading the effort, as part of his master’s project.

LupGrade

For the most part, autograders are either simple, poorly written scripts (by busy instructors/TAs), and/or are tied to a particular platform (e.g., Gradescope, Mimir).

The idea of this project is to develop a comprehensive autograding tool that can work in the terminal, be compatible with existing platforms (e.g., Gradescope), and even be easily distributable to students for local testing.

Master’s student Linqing Fu is currently developing this tool, as part of her master’s project.

LupSeat

This project’s goal is to help instructors map the floor plan of a lecture hall, and randomly assign seats to students for exams, while minimizing the chunk size (i.e., the number of students in a block of adjacent seats).

The tool is also able to handle relevant constraints, such as:

  • different types of seats (e.g., tablet on the left or the right, broken seat, seat with special accommodations, etc.)
  • students with specific characteristics (e.g., left-handed students, students requiring special accommodations, etc.)

Undergraduate student Hiroya Gojo developed and released the first version of this project.

LupSeat’s source code and install instructions are available on https://gitlab.com/luplab/lupseat.

LupTakedown

Many students unfortunately upload their programming assignments onto github even when syllabi courteously ask them not to. This project’s goal is to provide an easy and automated way to track litigious repositories and facilitate taking them down.

Undergraduate student Zesheng Xing is currently developing the first version of this project.

Creative activities

Podcast #include<cs>

With my co-host –and undergraduate student– Janelle Salanga, and a small team of dedicated students, we have created a podcast called #include<cs>. Each quarter we tell a story about Computer Science and Technology with an extra dose of fun and using non-technical language.

More information about the podcast and the different ways to listen to it are available on https://includecs.org/.

LupGist

Github Gists have become one of the preferred ways for blog writers to include snippets of code into their web pages. Unfortunately, the code is always shown in a read-only way, with no possibility of interaction.

The goal of this project is to develop a lightweight code commenting system that allows visitors to directly comment on the code displayed in a gist. This way, visitors can ask specific questions on certain lines of code, or give precise feedback.

Undergraduate students Arjun Kahlon and Hiroya Gojo are currently developing the first version of this project.