Matthew Pearson-Beck

From WLCS

1st Quarter

Description
Create a class in Java that diagrams the formation and structure of Nodes, as they are created. Used to help introduce Nodes to students learning Java.

Resources
http://zetcode.com/tutorials/java2dtutorial/
http://www.sourcecodesworld.com/articles/java/java-data-structures/Nodes.asp
http://www.vias.org/javacourse/chap14_02.html

Goal List

  1. Research in detail the structure of nodes in Java.          
         DUE: 9/17
         DONE
  2. Complete 2D Graphics Tutorial.
         DUE: 9/27
         DONE
  3. Finish research, in its entirety, to make it possible to graphically represent nodes.
         DUE: 10/1
         DONE
  4. Graphically represent a single empty node.
         DUE: 10/5
         DONE
  5. Graphically link together empty nodes.
         DUE: 10/12
         DONE
  6. Control the layout of nodes based on the dimensions of the window they are in.
         DUE: 10/14
         DONE
  7. Graphically link together a set of empty nodes within the bounds of the window.
         DUE: 10/18
         DONE
  8. Graphically display the information a node contains.
         DUE: 10/22
         DONE
  9. Graphically display a given set of nodes, including the data they contain, inside the bounds of the window.
         DUE: 10/28
         DONE
 10. Organize all methods into a file that can be used to illustrate how nodes work.
         DUE: 11/1
         DONE

Files:

  File:LinkNodes.java
File:NodeMPB.java
File:LinkedListMPB.java

LinkeNodes.java contains the final source code, can be executed in Eclipse (or other program) to perform all the functions listed above. It requires the Linked List file, which requires the Node file (also provided). They have been renamed to NodeMPB and LinkedListMPB in order to avoid uploading files that have already been uploaded to the wiki. Their class names have been adjusted and they function correctly as written.



2nd/3rd/4th Quarter

Project 1 - MIT OCW - Description
Go through each lesson of the MIT Course "6.042J / 18.062J Mathematics for Computer Science", also known as "Discrete Mathematics". There are three separate OpenCourseware classes listed that cover the same material, so notes and problem sets from all three will be used in order to get the best information possible. Notes will be studied from the Fall and Spring 2005 class schedules. Each week has problem sets associated with it. The problem sets to be completed are from the Fall 2002 class.

Notes will also be studied from the Class "6.080 Great Ideas in Theoretical Computer Science". Only lecture notes are provided, so they will be read more for a broad overview than for specific factual details.

Resources
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2005/
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-sma-5512-fall-2002/
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2005/
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-080-great-ideas-in-theoretical-computer-science-spring-2008/

Goal List

  1. Week 1- DONE (MfCS)
  2. Week 2 - DONE (MfCS)
  3. Week 3 - DONE (MfCS)
  4. Week 4 - DONE (MfCS)
  5. Week 5 - DONE (MfCS)
  6. Week 1 Notes - DONE (GIiTCS)
  7. Week 2 Notes - DONE (GIiTCS)
  8. Week 3 Notes - DONE (GIiTCS)
  9. Week 4 Notes - DONE (GIiTCS)
  10. Week 5 Notes - DONE (GIiTCS)
  


Note: While MIT OCW is great for providing a general understanding, the notes alone are usually inadequate for solving all of the problem sets. There were obviously some portions only discussed in the classroom that are vital to full understanding.


Project 2 - Augmented Reality - Description
Use Actionscript 2 (with Flash CS5) to make a project that uses Augmented Reality to demonstrate marker detection, model portrayal on objects, and multiple marker recognition by using multiple engines running in parallel.

Resources
I attended Carney's JAMTech Winter '10, where I was taught a lot about augmented reality, and was given a skeleton file to base my work on. This skeleton file is the basis for my work in this class. Goal List

  1. Create finalized markers (2-3), save as .pat files with the Marker generator.
     Due: 1/14/11
     DONE
  2. Finalize decision on model choice for the two vehicles to collide.
     Due: 1/16/11
     DONE
  3. Construct proper file organization for markers, models, and references to each in code.
     Due: 1/20/11
     DONE
  4. Research the use of webcams for marker recognition and Augmented Reality.
     Due: 1/26/11
     DONE
  5. Achieve marker recognition and portrayal of model on marker.
     Due: 2/5/11
  6. Achieve movement of models in the -x or -y direction based on initial marker position.
     Due: 2/10/11
     DONE
  7. Research the use of either multiple markers with one model each, or multiple models with one marker total.
     Due: 2/20/11
     DONE
  8. Achieve multiple marker recognition / multiple model display (whichever chosen.)
     Due: 3/1/11
     DONE
  ((Goal 9 cut))
  10. Package all files in concise directory, properly reference all models and markers, create a basic how-to guide.
     Due: 3/31/11
  


Screenshots:

Ignore the Hummer, I'm working on it
(1) Augmented Reality in action
(2) Multiple Marker Recognition

AR Files

  Matthew Pearson-Beck AR (direct download)

All files associated with Augmented Reality work, contains demo (.swf) and markers (.pat) from above, in the order that they must be run in. To run properly, download complete folder and run program files without moving files (they are referenced by location in the (.as) file). The demo file is titled "AugmentedReality.swf".

Other Files

  Media:EuclidsGCDAlgorithm_6080_6089.java
File:EuclidsGCDAlgorithm 6080 6089Recursive.java

Written on 11/8/10, these illustrate Euclid's Algorithm for finding the Greatest Common Denominator of Two Numbers, which was discussed in MIT's OpenCourseware Lecture 1 for the class "Great Ideas in Theoretical Computer Science". The first file is iterative, and the second is recursive.

  File:GuessingGameStats.java

Written on 12/2/10, this illustrates an optimal guessing algorithm for numbers between 0 and 100. It expands on the Computer Science I exercise by making the computer not only generate the number, but imitate a human in guessing what the number is. It is used to repeat the process thousands of times and compile results of how many guesses were needed in various trials, to see patterns in guessing and random number generation.