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 firstname.lastname@example.org.
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