This page contains a list of some project ideas to help CS/IT students formulate their own ideas for term projects, senior projects, or otherwise interesting things to work on. If you have ideas that you think should be on this page then send them to jsjones@graceland.edu.
Create instructional applets for CS/IT educators (esp. for Visualization)
Visualization of complicated ideas is key to learning... helpful to the
student engaged in self-study as well as the teacher demonstrating the
idea in class. Important algorithms or computing mechanisms can be
illustrated on a webpage by well-written Java applets.
Ideally these should allow the user to input his/her own data or parameters
and animate or step through the processes to see the effect.
One example would be a visualization of the classic searching/sorting algorithms
on a list of items created by the user.
Another example would be an animation that illustrates various networking
protocols (e.g., TCP, IP, Ethernet) under conditions specified by the user
(e.g., large/small packets, LAN length/speed, number of hops).
Talk to instructors for specific ideas and requirements.
Note: Ron Smith (Math faculty) has
created excellent examples in Hypercard (for Macintosh), but
what would be more useful would be web-based versions
that can be accessed from anywhere on any platform.
Create metric tools for use in CS/IT assessments
Develop a system that scans through computer programs
written in some language (e.g., Java) and computes numerous
different measures of things that might be helpful to an
evaluation of the work. Teachers might use such a tool to
get a quick measure of how much work was done by the student
or how clean and readable the code is. Curriculum evaluators
might use such a tool to see if students are doing more
complicated projects or building "better" systems.
Students might use such a tool to get some idea of how
their teachers will view their project efforts.
But how does one measure such things as complexity,
readability, or quality of effort? Answering that question alone
will require some research.
Create logic tools that analyze Graceland's course offerings
Graceland's courses have many interrelationships with general requirements,
major requirements, schedules, and prerequisite courses. It is complicated
enough that administrators, faculty, and students, could all benefit
by having some useful expert systems or logic-programming models
to help us avoid mistakes during planning and scheduling.
Here are some examples:
Research on programming language features and usage
A survey can be enlightening regarding how textbook authors, teachers, students,
and real-world programmers all use some programming language feature or methodology.
There may or may not be a consistent standard.
For example, Java textbook authors follow a certain overall pattern for
structuring the main class (the one with the function "main") in writing
stand-alone applications. Do real-world Java programs write
stand-alone applications, or do they mostly write applets or servlets?
If they do write stand-alone Java applications, then do they follow these
textbook patterns or do they follow some pattern that those in the
"world of experience" know about?
Hand-held programming projects
This is a relatively new and accessible area for students to explore.
An added element of complexity is to have it interface or sync with
other programs on other machines for some purpose, over wired or
wireless network connections.
Embedded systems projects
Designing system software that is embedded in some electronic appliance
is another area with a wealth of possibilities. If the appliance has
a TCP/IP stack, one could create a web interface or CLI to interact
with it (client/server connections). Such a project might involve
lessons in hardware, system software, user interface design, client/server
software, socket programming, and cross-platform development.
WiFi management projects
Design WiFi sniffer software or some management tool that identifies
all IP addresses that are connected to a WiFi router (or routers) in
the local area. It could go further by also identifying the MAC addresses
(physical addresses) for each connection and perhaps give the likely
manufacturer of the network interface card of each connection (a lookup
procedure from the first part of the MAC address). For routers that have
security features turned on, the tool could simply provide as much useful
information as possible. This sort of project would involve
learning about various communication protocols and systems programming.
LEGO ROBOT based projects
Projects ideas are many: construction and demonstration of a useful class
of methods or APIs; web-site from which one can observe, control and
program the robot from afar; clever algorithmic solutions to tricky
problems involving mechanics, feedback, and multithreading; special
add-on hardware and related problems/solutions (WiFi, camera, many sensors).
Return to the Main Ackerley Program web page
Go to the Graceland University website