1. Learning how to program using Minecraft?!
The goal of this project is to evaluate the utility of Minecraft for learning how to program.
To this end, the project will involve (1) surveying the current
state-of-the-art in using Minecraft for educational purposes, and (2)
implementing standard algorithms in Minecraft that leverage
Minecraft's appeal and strengths such as algorithms for maze
construction (see, e.g., [1]) and maze solving (e.g., graph traversal
via depth-first and breadth-first search).
This project is most suitable for a student with interest in
finding new, attractive ways to teach programming.
[1] http://weblog.jamisbuck.org/2011/2/7/maze-generation-algorithm-recap.html
| ||
2. Experimenting with Scratch and App Inventor
MIT's Scratch [1] and App Inventor [2] are two of the more
successful recent attempts to bring programming to,
predominatly young, masses.
The goal of this project is to gain some practical
experience with these development environment and
identify their strengths, weaknesses, limitations.
This project is most suitable for a student with interest in
programming languages and finding new, attractive ways to teach
programming.
[1] https://scratch.mit.edu
3. Executing state machines
In previous work, we have developed a textual modeling language for
the description of concurrent, state-based systems in which components
communicate solely through message passing [1,2]. The language is suitable
for the development of real-time, embedded systems as found in various
domains including telecommunications, automative, avionics, and in
many parts of the envisioned "Internet of Things".
The goal of this project is to first get some practical experience
with the language and its interpreter. Then, areas of improvement for
the interpreter are to identified (e.g., support for different debug
modes) and implemented.
This project is most suitable for a student with interest in state
machines, programming languages, and interpreters.
[1] Keith Yip. Urml: A textual toolkit for teaching model-driven development for reactive systems.
MSc Thesis. School of Computing, Queen's University. July 2014.
https://qspace.library.queensu.ca/bitstream/1974/12274/1/Yip_Keith_201407_MSc.pdf
4. Implementing a formula evaluator
The first assignment
in CISC422
involves the implementation
of a formula evaluator. The point of the assignment is
to give students a better understanding of
recursion, induction, and evaluation.
Moreover, the assignment involves the
use of a parser generator.
On top of all this, the assignment could also provide
a very good illustration of two of the most important
software design patterns: Composite and Visitor.
However, in its current form, the assignment doesn't
support this.
The goal of the project is to extend the provided assignment
such that it supports the Composite and Visitor pattern
and such that it can be used to illustrate these concepts.
This project is most suitable for a student with interest
in programming and design patterns.
|
Last modified: Thu Sep 29 21:51:25 EDT 2016