• No results found

1 FCS Project Submission System

N/A
N/A
Protected

Academic year: 2021

Share "1 FCS Project Submission System"

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

1

FCS Project Submission System

Teachers at FCS currently accept digital homework via email. However, email is cumbersome, because teachers must individually download the attached homework from every student, identify the student by his/her email address and only then proceed to grade their homework. Furthermore, the students often send their homework using different formats, which makes it more difficult for the teacher to do their job.

The goal of this system is to allow teachers to set up a web page where students can securely upload their homework using their own student ac-count. After the deadline, the teacher will then proceed to download all homework at the same time, each student’s homework neatly organized in its own directory.

When the student uploads their homework, the system will perform some checks (that are configurable by the teacher) to verify that the homework is correctly formated (e.g. does not contain executable code, but only source code, does not contain .rar archives, it compiles, etc). Furthermore, the sys-tem should be designed so that it is easy to integrate with automated grading systems (a program that grades the homework without human intervention).

• Getting started:

1. http://en.wikipedia.org/wiki/Lightweight_Directory_Access_ Protocol

• Desirable experience: back-end web applications, security, LDAP • Technology: web, LDAP

2

FCS automated grading system

Some homework can be graded automatically by a computer that runs the homework against a set of predefined tests. The grader then automatically assigns a grade to the homework, depending on what tests it passed and what tests it did not.

Automatic grading is extensively used in programming contests such as topcoder.com, acm.timus.ru, acm.uva.es and infoarena.ro.

The goal of this project is to produce a secure system that will be used internally at FCS in order to automatically grade homework where fit.

(2)

• Getting started: 1. http://www.ioinformatics.org/oi/pdf/INFOL003.pdf 2. http://www.ioinformatics.org/oi/pdf/INFOL037.pdf 3. http://ictinnovations.org/htmls/papers/ictinnovations2010_ submission_48.pdf 4. http://www.mii.lt/informatics_in_education/pdf/INFE173. pdf 5. http://sourceforge.net/projects/sathi/ 6. https://code.google.com/p/taskeval/ 7. topcoder.com 8. acm.timus.ru 9. acm.uva.es 10. infoarena.ro

• Desirable experience: programming contents, Linux programming • Technology: C(++), Linux

3

Detecting Plagiarism in Source Code

This is a research subject that involves:

1. implementing a new method for detecting plagiarism in source code submitted by students and

2. checking that the new method works as expected.

The student will prototype a similarity-checking tool (call it T) that will receive as inputs two programs P1 and P2. The tool will output a number T(P1, P2) proportional to the degree of similarity between P1 and P2.

In contrast with other plagiarism checking methods, T will not analyse the source code of P1 and P2 statically (because the code might have been trivially altered = renaming variables, moving function definitions around, changing while loops into for loops, etc). Instead, T will run both P1 and P2 on the same set of inputs and log the traces of P1 and P2. If the traces

(3)

are similar on similar inputs, then P1 and P2 are flagged. The difficulty is to choose the right inputs, what the traces should contain and to check that the method work well in practice.

• Getting started:

1. http://en.wikipedia.org/wiki/Plagiarism_detection#in_source_ code

• Desirable experience: strong programming skills and compilers, inter-preters or parsing experience

• Technology: any

4

Term Rewriting Library

The object of this topic is to produce a top-notch efficient C++ framework for term/tree rewriting.

Success will be measured according to ease of use of the library and efficiency of the implementation.

• Getting started:

1. http://en.wikipedia.org/wiki/Rewriting#Term_rewriting_systems 2. http://www.informatik.uni-bremen.de/agbkb/lehre/rbs/texte/

Klop-TR.pdf

3. http://rewriting.loria.fr/

• Desirable experience: strong C++ programming/design skills, strong algorithms/data structures skills

• Technology: C++

5

Validated Parser

The goal is to show that a parser conforms to the syntax specification (gram-mar) of a language. This is a research project that involves the following steps:

(4)

1. formally specifying the syntax of a language (probably using Coq or Isabelle)

2. formally defining a parser

3. proving that the parser acts according to the specification

• Getting started:

1. http://pauillac.inria.fr/~xleroy/publi/validated-parser. pdf

• Desirable experience: proof assistants (Coq, Isabelle), parsing • Technology: Coq, Isabelle or other specification systems

6

Teaching/Learning Tools

Most of the existing visualization tools for algorithms and data structures suck. The goal of the following projects is to produce useful visualizations that allow teachers to teach and students to learn more easily about certain topics in computer science.

6.1

Comparison-Based Sorting Algoritm Visualization

Framework

Students have a hard time understanding algorithms such as merge-sort or quick-sort, even if the basic idea behind them is trivial. The goal of this is to produce a visual framework which makes it simple to understand how these algorithms work. The framework should support at least insertion sort, selection sort, bubble sort, quick sort and merge sort and it should be extensible to support other comparison-based sorting algorithms. Success will be judged according to how easily people understand these algorithms from the visualization.

• Getting started:

1. http://sorting.at/

(5)

• Technology: The visualization will be implemented in JavaScript/SVG or HTML5.

6.2

Data Structures Visualization Framework

The topic is the visualization of data structures such as hash maps, binary search trees, (doubly) linked-lists, b-trees, suffix arrays, (binomial) heaps, dy-namic arrays, tries, skip lists, sparse matrixes, etc and functions that operate on these data structures. The goal is to produce a visualization of a set of related data structures (e.g. binary search trees (including AVLs, red-black trees, etc)) that is useful in teaching that topic. The success will be judged according to how easily people understand these data structures/algorithms from the visualization.

• Getting started:

1. http://www.cs.usfca.edu/~galles/visualization/BST.html • Desirable experience: web technologies, game programming, data

struc-tures

• Technology: The visualization will be implemented in JavaScript/SVG or HTML5.

6.3

Most General Unifier Visualization

Computing the most general unifier is a useful operation that occurs in many places in computer science. The goal of this visualization is to make stu-dents understand how the most general unifier is computed. The visual-ization framework should support several unification algorithms, including those with structure sharing.

• Getting started:

1. http://www.cs.bu.edu/~snyder/publications/UnifChapter.pdf

2. http://www.lix.polytechnique.fr/~nielsen/pdf/2005-C-VisualInteractive-ICCS. pdf

• Desirable experience: web technologies, game programming, logic • Technology: The visualization will be implemented in JavaScript/SVG

(6)

6.4

Proof System

Proof systems are ubiquitous artifacts in several subdomains in computer science. The object of this topic is to create a tool that takes as input a proof system and allows a student to apply the proof system interactively in order to reach a certain goal. The tool should be extensible in the sense that adding proof systems to it should be easy. Example proof systems: most general unifier (forwards), resolution (forwards), prenex normal form (forwards), natural deduction (backwards).

• Getting started: 1. http://en.wikipedia.org/wiki/Natural_deduction 2. http://imps.mcmaster.ca/ogrigorov/panoptes/ 3. http://www.winterdrache.de/freeware/domino/data/article. html 4. http://staff.science.uva.nl/~ulle/pubs/files/EndrissICCE1999. pdf

• Desirable experience: web technologies, game programming, logic

References

Related documents

The range of services include—prenatal care, infant/child health, family planning, nutrition/WIC, home visiting (Healthy Families, Parents As Teachers, Nurse-Family Partnership),

Kao što je primijećeno kod analize pristupačnosti društvenih mreža, većina elemenata       nema svoj alternativni tekst koji opisuje što element predstavlja. Osim toga, potrebno

the new dimension in Carbon :FutureCarbon Epoxy Results on electrical conductivity and mechanical properties pending further investigation.. 0.5% CNT 1.0% CNT CFRP:

[r]

Using data on female presidents and public goods provision in village level governments (called gram panchayats , henceforth GPs) combined with data on women’s preferences,

The overall persistence rate for first-time college students has dropped 1.2 percentage points since 2009, while the retention rate has remained nearly constant.The

With regards to the further development of the handset-based research process, new logic in recruiting and compensating panelists should be considered. Currently panelists

In the context of initiatives to develop the scholarship of teaching and learning in a large research-intensive university in Australia, this paper discusses the relationship