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 in CS courses and implement some tools to simplify plagiarism detection in programming assignments. The survey is meant to highlight questions that still need further investigation and to produce practical recommendations for dealing with plagiarism in CS courses. The tools you will build will compliment and extend existing tools currently used in the CS department.

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 CheckStyle, PMD and FindBugs errors, as well as common compilation errors. Results will be compared to previous research work that analyzed student submissions in CS1 courses at other universities. Work on this project may involve collaboration with other researchers outside Princeton and can potentionally lead to a conference publication.[TAKEN]

3

Helping Refugees Learn

It is estimated by the UN that there are currently more than 4.8 million Syrian refugees outside Syria and more than 6 million refugees displaced inside Syria. Each single individual among these millions holds a unique tragic story! In this project, you will help a non-profit organization in its mission to help Syrian refugees get the education they need. The organization matches refugee students with volunteer tutors around the world. Your task will be to implement a system that allows the organization achieve its mission. This project is not particularly in CS Education, but requires CS to enable Education!

4

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.

5

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.

6

Gender Differences in CS

CS (as a major) is notorious for attracting much less females than males. Why? In this project, you will survey the literature for answers, and analyze data from Princeton's CS department to validate hypotheses and conclusions presented in the literature. Your project may also include a replication of one or more of the experiments found in the literature. The most important outcome of this project is a better understanding of the gender differences in the CS department at Princeton and a set of recommendations spcifically tailored towards the courses offered by the CS department. The data to be analyzed may include Alumni surveys, COS 126 course-entry surveys, student grades in different courses, department award winners, etc.