Hi folks, here are a few exciting project topics for ISM001 in this term.
Instructions:
Students are encouraged to discuss frequently with me on their projects.
Topic 1: Online white-board

Ratings:
Difficulty: moderate
Commercial potential: $$$$$
Academic value: @
Descriptions:
Write an online white-board in Java Applet that allows users to draw anything on it with their mouse. When combined with what you learn from ISM002 and ISM004, the program can be extended to become a Web 2.0 application which allows users to create and share their drawings. Examples can be found at Skrbl and Imagination Cubed (via Lifehacker). It means a lot of commercial potential!
Examples (some with source code):
Topic 2: Tic-Tac-Toe




Ratings:
Difficulty: moderate
Commercial potential: $
Academic value: @
Descriptions:
Write a Java Applet or standalone Java program to implement the famous Tic-Tac-Toe game. Students may also choose to implement a Five-in-a-row game instead. A simple AI is optional in both cases.
Examples (some with source code):
Topic 3: Fractal generator

Ratings:
Difficulty: easy
Commercial potential: $
Academic value: @@@@
Descriptions:
Write a Java Applet or standalone Java program to implement a simple fractal generator (with colors) for the Mandelbrot set. Examples could be found in the reference links below. This project is simple to implement and yet produces an amazing output.
Examples (some with source code):
Topic 4: Octopus Card System Simulation

Ratings:
Difficulty: easy
Commercial potential: $$$
Academic value: @
Descriptions:
Simulate an Octopus Card System in the computer lab. The system consists of the following:
Despite its simplicity, this topic is very inspiring because it allows you to study the internal mechanism of such a practical system in real life.
Topic 5: ATM Simulation
Ratings:
Difficulty: easy
Commercial potential: $$$
Academic value: @
Descriptions:
Simulate an ATM (automatic teller machine) in the computer. The system should do the following:
Despite its simplicity, this topic is very inspiring because it allows you to study the internal mechanism of such a practical system in real life.
Topic 6: Genetic Algorithm
Ratings:
Difficulty: difficult
Commercial potential: $$$$
Academic value: @@@@@
Descriptions:
Simulate the evolution of a population of organisms in the computer using the genetic algorithm. The evolution is based on the Darwinian rule of the survival of the fittest.
Students could work in groups of two in this project. I will give extra guidance to those who choose this project.
Examples:
Topic 7: Exciting Java Games

Ratings:
Difficulty: very difficult
Commercial potential: $$$$$
Academic value: @@@@@
Descriptions:
Write an exciting game in Java. Students may work in groups of up to five in this project. I will give extra guidance to those who choose this project.
Some ideas:
This very flexible topic is designed for those who are very creative and would like to write something they feel very exciting to work with. However, this topic is also the most difficult among all the others, so make sure to limit your scope to a manageable size. Discussions are welcomed.
Topic 8: Java on Mobile Phone
Ratings:
Difficulty: difficult
Commercial potential: $$$$$
Academic value: @
Descriptions:
Write a Java program that can run on a mobile phone. Students may work in groups of two in this project. Ideas include a simple Java program to send SMS from one phone to another.
Note: You may need to bring your own notebook computer (for the emulator) and Java-enabled handset (for real demonstration) in order to present this program. The application requires Java ME to be installed in the computer. This may not be available in the computer labs.
Reference:
Topic 9: Facebook Application
Difficulty:moderate difficult (Due to the required web server skills, I have to upgrade the difficulty from moderate to difficult. Not recomended for non-CIT students who have not taken ISM002.)
Commercial potential: $$$
Academic value: @@@
Descriptions:
Develop a Java application that runs on Facebook. The Facebook Developers websites provides instructions and the necessary tools to build your own applications in Java and other languages.
Reference:
Topic 10: Stock Simulator
Ratings:
Difficulty: easy
Commercial potential: $$$$$
Academic value: @@
Descriptions:
Write a Java program to simulate various stock investment strategies. This project gives the students a taste of computer simulation in solving real world financial and mathematical problems.
I will give extra guidance to those who choose this project.
Reference:
The end.
Happy programming!
Instructions:
- Tell me your topic in one week.
- All topics are individual projects unless otherwise specified. (Students
may choose the same topic and discuss with one another, provided that
each student works on their own version of the program.)
- You may suggest your own topics, but seek my approval first.
- Put your works on your Programming Portfolio, including the source code, descriptions of the program, usage instructions, and any other necessary information, before the the last day of the term.
- Give a 20 minutes oral presentation (with challenging Q&A) in the last week of the term.
- I would not
teach you everything required in the project. However, what I teach you
in class should give you the ability to understand the relevant
sections in the textbook or the web to implement your own programs.
- You are welcomed to modify your program from existing Java source code whenever available. However, I will only count on the part which is original from you.
- Students will be assessed in terms of the robustness, features, creativity, presentation, etc. of the program, as well as performance in the oral presentation.
- The standard of assessment is the same for CIT and non-CIT students. However, I definitely expect CIT students to choose a more challenging topic.
Students are encouraged to discuss frequently with me on their projects.
Topic 1: Online white-board

Ratings:
Difficulty: moderate
Commercial potential: $$$$$
Academic value: @
Descriptions:
Write an online white-board in Java Applet that allows users to draw anything on it with their mouse. When combined with what you learn from ISM002 and ISM004, the program can be extended to become a Web 2.0 application which allows users to create and share their drawings. Examples can be found at Skrbl and Imagination Cubed (via Lifehacker). It means a lot of commercial potential!
Examples (some with source code):
- Applet Tutorial: Painting
- Java Tutorial: Graphics Example
- SWT Paint Example : 2D : SWT JFace Eclipse : Java examples (example source code) Organized by topic
Topic 2: Tic-Tac-Toe
Ratings:
Difficulty: moderate
Commercial potential: $
Academic value: @
Descriptions:
Write a Java Applet or standalone Java program to implement the famous Tic-Tac-Toe game. Students may also choose to implement a Five-in-a-row game instead. A simple AI is optional in both cases.
Examples (some with source code):
Topic 3: Fractal generator

Ratings:
Difficulty: easy
Commercial potential: $
Academic value: @@@@
Descriptions:
Write a Java Applet or standalone Java program to implement a simple fractal generator (with colors) for the Mandelbrot set. Examples could be found in the reference links below. This project is simple to implement and yet produces an amazing output.
Examples (some with source code):
- Java Example
- Fractal Explorer Java applets: Mandelbrot set Explorer (by Fabio Cesari)
- Fractals in Java Applet -- some applets written by me
Topic 4: Octopus Card System Simulation

Ratings:
Difficulty: easy
Commercial potential: $$$
Academic value: @
Descriptions:
Simulate an Octopus Card System in the computer lab. The system consists of the following:
- An Octopus card represented by a floppy disk or a USB thumb drive.
- MTR stations represented by a few computers.
- Octopus recharge station and value check represented by one computer.
Despite its simplicity, this topic is very inspiring because it allows you to study the internal mechanism of such a practical system in real life.
Topic 5: ATM Simulation
Difficulty: easy
Commercial potential: $$$
Academic value: @
Descriptions:
Simulate an ATM (automatic teller machine) in the computer. The system should do the following:
- Display a welcome screen (plus some ads perhaps).
- Pretend that the user inserts his/her card (or you can use a floppy disk or USB thumb drive to simulate the card insertion).
- Ask
the user for password. (You can make it more sophisticated by assigning
a card number to the card, and then checking an internal "database" to
verify the password.)
- Display a menu of actions and wait for the user's choice. Possible actions include money transfers, money withdrawal, bill payment, etc.
- Complete the appropriate action and say thank you to the user.
Despite its simplicity, this topic is very inspiring because it allows you to study the internal mechanism of such a practical system in real life.
Topic 6: Genetic Algorithm
Ratings:
Difficulty: difficult
Commercial potential: $$$$
Academic value: @@@@@
Descriptions:
Simulate the evolution of a population of organisms in the computer using the genetic algorithm. The evolution is based on the Darwinian rule of the survival of the fittest.
Students could work in groups of two in this project. I will give extra guidance to those who choose this project.
Examples:
- Introduction to Genetic Algorithms with Java Applets
- JGAP: Java Genetic Algorithms Package
- A simple genetic algorithm
Topic 7: Exciting Java Games

Ratings:
Difficulty: very difficult
Commercial potential: $$$$$
Academic value: @@@@@
Descriptions:
Write an exciting game in Java. Students may work in groups of up to five in this project. I will give extra guidance to those who choose this project.
Some ideas:
- A simplified version of Little Fighter (小朋友齊打交)
- The well known QBasic game Gorillas (a Java implementation Jorillas is available for download as an example)
- The classic version of the Pong game available in many mobile phones
- Space Invaders (See the complete tutorial at: Tutorial - Writing a Space Invaders game in Java)
- Developing Games in Java
- Java Game—逃出嶺南NAB系列(一)
- Matchman Battle (火柴人大戰)
This very flexible topic is designed for those who are very creative and would like to write something they feel very exciting to work with. However, this topic is also the most difficult among all the others, so make sure to limit your scope to a manageable size. Discussions are welcomed.
Topic 8: Java on Mobile Phone

Ratings:
Difficulty: difficult
Commercial potential: $$$$$
Academic value: @
Descriptions:
Write a Java program that can run on a mobile phone. Students may work in groups of two in this project. Ideas include a simple Java program to send SMS from one phone to another.
Note: You may need to bring your own notebook computer (for the emulator) and Java-enabled handset (for real demonstration) in order to present this program. The application requires Java ME to be installed in the computer. This may not be available in the computer labs.
Reference:
Topic 9: Facebook Application
Difficulty:
Commercial potential: $$$
Academic value: @@@
Descriptions:
Develop a Java application that runs on Facebook. The Facebook Developers websites provides instructions and the necessary tools to build your own applications in Java and other languages.
Reference:
Topic 10: Stock Simulator
Difficulty: easy
Commercial potential: $$$$$
Academic value: @@
Descriptions:
Write a Java program to simulate various stock investment strategies. This project gives the students a taste of computer simulation in solving real world financial and mathematical problems.
I will give extra guidance to those who choose this project.
Reference:
The end.
Happy programming!