The Source for Java Technology Collaboration


Home | Changes | Index | Search | Go

JohnHealy

Name: John Healy Contact email: J.Healy@uea.ac.uk

Project Tile – 106 LG3D? based teaching aids/projects in BlueJ?/Greenfoot

Introduction

Easy to understand, constructive tutorials are one of the most important aspects in software development. Before anyone can start using your software they have to understand it. So many tutorials miss the key point; the user does not understand how to use your software yet and your tutorial should not be a forum for displaying your intelligence with a system but a tool for the user to become familiar enough to use your system and maintain their interest for further development and use of the system. A tutorial should spark the interest of the user and provide them with a clear enough understanding of your system to begin confidently using it and with relative ease.


Deliverables

I propose to deliver a set of 5 clear, concise tutorials that will introduce the user to the LG3D? framework. These tutorials are to will be designed to introduce the user to the following concepts:

· Create a window and render basic geometric shapes using LG3D?

· Texture geometric shapes

· Position objects within a window

· Move objects and perform animation upon them

· Select and interact with objects

The set of tutorials will be tailored for BlueJ? and will provide a base understanding from which the user can further develop ideas and will provide a visually interesting and engaging programming experience.

The tutorials will not be designed as a walk through code exercise but will be provide code with which the user can interact and will provide more instruction and introduction into LG3D? rather than teaching specifics of the framework. There will however be scope for suggestions where the user can modify the code for further functionality using the concepts introduced.

Below is a guide to the development of the first tutorial; the further tutorials will be designed in the same manner.


Tutorial 1 Guide

Very similar to the BlueJ? shapes demo this tutorial will contain 4 classes. The user will be able to create instances of each which will then be added to the BlueJ? workbench. An instance of the main class will create a root LG3D? container in which any of the three shape classes will be able to display themselves.

The three other classes will be:

· ColouredCube?

· ColouredCone?

· ColouredCylinder?

Upon creation of any one of these classes via a constructor call, an object of that class will be added to the BlueJ? workbench. By calling that objects draw() method it will be displayed in the main demo window. The user will also be able to call an objects changeColor(int, int, int) method to change the objects displayed colour and changeSize(double) to change the objects size.

Class diagram of ColouredCube?

ColouredCube?
- x: int
- y: int
- apperance: SimpleApperance?
- isVisible: Bool
- Shape: ColorCube?
+ draw(): void
+ changeColor(int, int, int): void
+ changeSize(double): void
+ makeVisible(): void
+ makeInvisible(): void
- erase(): void

As the tutorials develop they will introduce the main learning topics and cumulate in a 3D representation of our solar system with the final tutorial featuring planets in orbits and the ability to select specific planets and interact with them.

Each tutorial will give the opportunity for further suggested development by the user i.e. adding moons to the planets, display information about the selected planet. This is so the user is not restricted to a linear learning experience and will be able to develop upon the concepts introduced in each topic.


Schedule

Week 1-2: Thoroughly read LG3D? documentation. Become familiar with LG3D? code. Create a small number of test programs building on documentation

Week 3: Write first tutorial

Week 4: Write second tutorial

Week 5: Write third tutorial

Week 6-7: Write fourth tutorial

Week 8-9: Write fifth tutorial

Week 10-11: Edit tutorials after usage feedback and bug track down/fix

Week 12: Left unscheduled, extra time for any possible overrun


Personal details

I am currently an undergraduate at the University Of East Anglia studying computer science. I hold a BSc in cell and molecular biology and am particular interested in the field of bio informatics, specifically structural biology and comparative genomics. In recent years I am however being lured into the more mainstream field of game design and computer graphics. This complements my interest in structural biology, rendering and modelling and when I complete my degree I hope to pursue this field of study as a post doc. I am a qualified teacher and have taught in both England and America and currently tutor undergraduates in java programming and algorithm design. I also have experience in C++, openGL, SQL and python. I am passionate about education and the education of others and hope that I can bring this passion and experience to this project.

Topic JohnHealy . { Edit | Ref-By | Printable | Diffs r2 < r1 | More }
 XML java.net RSS

Revision r2 - 13 May 2006 - 23:41:57 - Main.jhealy
Parents: WebHome > ProjectLookingGlass > SummerOfCode2006