The DX-Mars Project
What is it? Why
use it? Requirements Screenshots Resources Contact
DX-Mars is designed to replace the trivial and tedious console
I/O programming assignments that are currently so prevalent in early CS
courses. These simple and boring
text-based assignments can become frustrating causing students to lose interest
quickly, often in computer science as a whole.
The goal of DX-Mars is to show the power and relevance of computer
science in general, by providing a fun and significant domain in which students
can work.
- It’s
an interesting and graphical domain.
In the end, the students come out with something they can show to others
and say, “Hey, look what I can do.”
In addition, the graphical nature of the project allows for useful
debugging and conceptualizing features to be built in.
- DX-Mars
is easily extensible. It is built
on an even more general game engine, the DXFramework. This allows modifications to be made
with minimal changes to the code.
Further, the specific domain of a Mars-rover can be extended to
multiple classic computer science problems and data structures.
§
The knapsack
problem. (sorting) The rover collects
rock and fossil samples, with varying values, and must pack them into its
inventory.
§
The traveling
salesman problem. (tree traversal algorithms)
The rover is given a set of coordinates by a reconnaissance satellite,
and must visit them all efficiently.
§
A* pathing. Simply add costs to the tiles for a suitable
A* domain.
§
Binary space
partition trees. (tree generation) Adding a
3-D view of the world, BSPs can be used for rendering sections of the
map.
- DX-Mars
is a large-scale object-oriented project.
This will give students valuable experience working inside a large
and sometimes complex project where they must learn both the strengths and
limitations of that system. In the
real world, software engineers rarely start from scratch, and often must
work with huge existing systems.
They typically don’t have time to learn the entire system – they
must decide what is important and focus on those areas. DX-Mars gives students experience here
as well.
- DX-Mars
is heavily object-oriented, and demonstrates the benefits of good OO
design.
- DX-Mars
is given as a Microsoft Visual Studio solution. This gives the students experience
working with a popular and powerful SDK.
They will learn the basics of project settings, compiling, and
debugging. Knowing Visual Studio is
another valuable skill for real world applications.