Projects In CS Education for
Independent Work Students

Contact Dr. Ibrahim Albluwi    Email (isma) @ (cs.princeton.edu)   Office 221 Nassau St.
This page is occasionally updated with project topics for independent work students. If you are interested in working on any of them, shoot me an email and let's have a chat! The topics presented in this page are not fully cooked ideas, but are seeds to be further developed into clear and well-specified projects. If none of the topics listed here interests you enough and you want more inspiration for project ideas in CS Education, then have a look at this page.


1

Plagiarism in CS Courses

Plagiarism in CS courses is an issue! This news article shows just an example of how severe the problem could be. In this project, you will perform a methodological survey of the CS Education literature on plagiarism to highlight questions that still need further investigation and produce practical recommendations. You will also conduct a study to investigate ways in which CS differs from other disciplines when it comes to plagiarism. This is a research project that can be scoped as either a one-semester IW or a two-semester thesis. It involves extensive reading and writing, does not require programming and is very likely to lead to a publication. Non CS students who have programming experience are also welcome.

2

Analyzing Student Submissions in COS 126 and COS 226

The goal of this project is to analyze dropbox submissions in COS126 and COS226. Focus will be on style errors, compilation errors and submission patterns. Results will be compared to previous research work that analyzed student submissions in CS1 courses at other universities. Work on this project involves reading research papers, coding scripts and performing data analysis.

3

Tools for Automatic Grading

Automatic graders are very important for the teaching of computer science, especially when classrooms are large and it is difficult to manually inspect all student submissions thoroughly. There are many automatic grading systems available, but many of these systems are an overkill for simple assignments and are often difficult to customize or extend. The goal of this project is to create small modular and single-purpose tools that could be used directly in auto-grading programming assignments and/or in building larger automatic grading systems. In a manner that is similar to how CheckStyle is a single-purpose tool for checking style, the tools built in this project will provide functionalities like simple test-case grading, performance checks, etc.

4

Manipulatives in CS Education

Manipulatives are used in Math education and Science education at different educational levels. Could manipulatives be useful also in CS Education? And How? CS educators often use toys and every-day things to explain certain CS concepts or algorithms. For example, Harvard's CS 50 uses cups to explain sorting algorithms and light-bulbs to explain binary numbers. CS Unplugged is a popular initiative that teaches CS with activities that do not require computers. In many of these activities, children use different types of objects to explore, understand and practice.

In this project, you will study the potential of using manipulatives and teaching aids in CS Education, as well as design prototypes for some manipulatives or teaching aids.


Completed Projects

[PDF] Static Analysis of Programming Assignment Submissions in an Introductory Programming Course. Senior thesis by Joeseph Salter '18.


Last modified: