Difference between revisions of "Cs488-2009"

From Earlham CS Department
Jump to navigation Jump to search
(Research Topics)
(Research Topics)
 
(25 intermediate revisions by 6 users not shown)
Line 2: Line 2:
  
 
==Research Topics==
 
==Research Topics==
* Aaron - Developing computer games for education
+
* Aaron ([http://github.com/amweeden06/SRSem-Project-2009 project page]) - An educational game for teaching digital logic
* Brad - Game Theory as demonstrated via competing clusters
+
* Brad ([http://github.com/carrick/cartesian-genetic-programming project page]) - Coevolution of combinatorial game theory evaluation functions using self modifying cartesian genetic programming
* Dylan -  
+
* Dylan - ([http://github.com/parkhdy/Recursion project page]) - Developing a learning experience through a computer game
* Nate - Algorithmic Cut-Up Poetry Generation Using Internet-Based Large Corpuses
+
* Nate ([http://github.com/nathanielksmith/weltanschauung project page]) - Algorithmic Cut-Up Poetry Generation Using Large Internet-Based Corpuses
* Sam L-M -  
+
* Sam L-M ([http://github.com/leemasa/Syntactic-Natural-Language-Project project page]) - Computational English language recognition and synthesis in database interfacing
* Sam W - The use of Monte Carlo methods in simulations
+
* Sam W ([http://github.com/poshul/Senior-sem-project project page]) - Implementing fault tolerance in software
 +
 
 +
==Using Github as a work log==
 +
Here are some directions on getting up and running with git and github.
 +
 
 +
===Initial Setup===
 +
# Download and install Git (in linux it's as easy as sudo apt-get install git git-core. Not sure about other platforms)
 +
# Get a user account at github.com
 +
# Click on the New Repository button
 +
# Fill out the info (note that you'll be using the project name to set up git on your machine)
 +
# Click next (or continue or whatever)
 +
# You'll be given directions '''similar''' to these. FOLLOW THESE! Especially if you're working on an ACL. When finished, click 'continue' and rejoice.
 +
  mkdir <PROJECT NAME>
 +
  cd <PROJECT NAME>
 +
  git init
 +
  git config user.name '<YOUR NAME>'
 +
  git config user.email <YOUR EMAIL>
 +
  touch README
 +
  git add README
 +
  git commit -m 'first commit'
 +
  git remote add origin git@github.com:<GITHUB USERNAME>/<PROJECT NAME>.git
 +
  git push origin master
 +
 
 +
===Workflow===
 +
 
 +
* When you add a new file to the directory OR modify an existing file, add it to git tracking using
 +
  git add <filename>
 +
* When you want to see what changes you have made to your code (in other words, compare your working code with what was last committed) do
 +
  git diff
 +
* When you've made changes you're happy with and want to save (both edits and file adds), use
 +
  git commit
 +
* If you've made LOTS of changes and you only want to record some of them, do
 +
  git add -P
 +
  git commit -m '<LOG MESSAGE>'
 +
* When your committed work is in a state you're happy with, 'push' (it's like uploading) it to github using
 +
  git push origin master
 +
* When you've made a bunch of changes, but you realize they suck, and you want to wipe the slate clean, use
 +
  git reset --hard
 +
 
 +
===Support===
 +
I am by no means a git master (I just use it because I like github) I have been using it for personal projects for some time. Feel free to ask questions of me about git if you run into trouble. you can email nate@cs.earlham.edu. There is also good documentation here: [http://www.kernel.org/pub/software/scm/git/docs/git.html]
 +
 
  
 
==Topic Allocation==  
 
==Topic Allocation==  
Line 40: Line 81:
 
* Aaron - Ch. 42: Number Systems for Computing
 
* Aaron - Ch. 42: Number Systems for Computing
 
===September 16===
 
===September 16===
* Sam L-M - Ch. 33 - Analog Computation
+
* Sam L-M - Ch. 33: Analog Computation
 
* Dylan - Ch. 56: VLSI
 
* Dylan - Ch. 56: VLSI
 
===September 23===
 
===September 23===
 
* Sara Penhale - Where to find academically sound research materials (meet in Science Library)
 
* Sara Penhale - Where to find academically sound research materials (meet in Science Library)
 
===September 30===
 
===September 30===
* Sam W -  
+
* Sam W - Ch. 4: Simulation, The Monte Carlo Method (p.22)
* Nate -  
+
* Nate - Ch 64: Logic Programming (p. 420)
 
===October 7===
 
===October 7===
* Brad -  
+
* Brad - Ch. 6: Game Trees
* Aaron -  
+
* Aaron - Ch. 54: NP Complete Problems
 
===October 14===
 
===October 14===
* Sam L-M -  
+
* Sam L-M - Ch. 44: Cellular Automata
 
* Dylan -  
 
* Dylan -  
 
===October 21===
 
===October 21===
* Sam W -  
+
* Sam W - Neural networks
 
* Nate -
 
* Nate -
 
===October 28===
 
===October 28===
* Brad -  
+
* Brad - Ch. 16: Genetic Algorithms (p.103)
* Aaron -  
+
* Aaron - Ch. 45: Cook's Theorem (p.301)
 
===November 4===
 
===November 4===
* Sam L-M -  
+
* Sam L-M - Self-replicating computers
* Dylan -  
+
* Dylan - Towers of Hanoi
 +
 
 
===November 11===
 
===November 11===
 
* Sam W -  
 
* Sam W -  
* Nate -
+
* Nate - storing images #47 pg 315

Latest revision as of 11:40, 25 November 2009

Research Topics

  • Aaron (project page) - An educational game for teaching digital logic
  • Brad (project page) - Coevolution of combinatorial game theory evaluation functions using self modifying cartesian genetic programming
  • Dylan - (project page) - Developing a learning experience through a computer game
  • Nate (project page) - Algorithmic Cut-Up Poetry Generation Using Large Internet-Based Corpuses
  • Sam L-M (project page) - Computational English language recognition and synthesis in database interfacing
  • Sam W (project page) - Implementing fault tolerance in software

Using Github as a work log

Here are some directions on getting up and running with git and github.

Initial Setup

  1. Download and install Git (in linux it's as easy as sudo apt-get install git git-core. Not sure about other platforms)
  2. Get a user account at github.com
  3. Click on the New Repository button
  4. Fill out the info (note that you'll be using the project name to set up git on your machine)
  5. Click next (or continue or whatever)
  6. You'll be given directions similar to these. FOLLOW THESE! Especially if you're working on an ACL. When finished, click 'continue' and rejoice.
 mkdir <PROJECT NAME>
 cd <PROJECT NAME>
 git init
 git config user.name '<YOUR NAME>'
 git config user.email <YOUR EMAIL>
 touch README
 git add README
 git commit -m 'first commit'
 git remote add origin git@github.com:<GITHUB USERNAME>/<PROJECT NAME>.git
 git push origin master

Workflow

  • When you add a new file to the directory OR modify an existing file, add it to git tracking using
 git add <filename>
  • When you want to see what changes you have made to your code (in other words, compare your working code with what was last committed) do
 git diff
  • When you've made changes you're happy with and want to save (both edits and file adds), use
 git commit
  • If you've made LOTS of changes and you only want to record some of them, do
 git add -P
 git commit -m '<LOG MESSAGE>'
  • When your committed work is in a state you're happy with, 'push' (it's like uploading) it to github using
 git push origin master
  • When you've made a bunch of changes, but you realize they suck, and you want to wipe the slate clean, use
 git reset --hard

Support

I am by no means a git master (I just use it because I like github) I have been using it for personal projects for some time. Feel free to ask questions of me about git if you run into trouble. you can email nate@cs.earlham.edu. There is also good documentation here: [1]


Topic Allocation

  1. SIMULATION The Monte Carlo Method - Samuel
  2. GAME TRESS The Minimax Method - Brad
  3. MATHEMATICAL RESEARCH The Mandelbrot Set - Nate
  4. GENETIC ALGORITHMS Solutions That Evolve - Brad
  5. COMPUTER VISION Polyhedral Scenes - Brad
  6. PERCEPTIONS A Lack of Vision - Nate
  7. ANALOG COMPUTATION Spaghetti Computers - Sam Leeman-Munk
  8. NEURAL NETWORKS THAT LEARN Converting Coordinates - Samuel
  9. PUBLIC KEY CRYPTOGRAPHY Intractable Secrets - Samuel
  10. NUMBER SYSTEMS FOR COMPUTING Chinese Arithmetic - Aaron
  11. CELLULAR AUTOMATA The Game of Life - Sam Leeman-Munk
  12. COOK'S THEOREM Nuts and Bolts - Aaron
  13. SELF-REPLICATING COMPUTERS Codd's Machine - Sam Leeman-Munk
  14. STORING IMAGES A Cat in a Quad Tree - Nate
  15. THE SCRAM A Simplified Computer - Dylan
  16. SHANNON'S THEORY The Elusive Codes - Aaron
  17. NP-COMPLETE PROBLEMS The Tree of Intractability - Aaron
  18. ITERATION AND RECURSION The Towers of Hanoi - Dylan
  19. VLSI COMPUTERS Circuits in Silicon - Dylan
  20. THE HALTING PROBLEM The Uncomputable - Sam Leeman-Munk
  21. COMPUTER VIRUSES A Software Invasion - Brad
  22. LOGIC PROGRAMMING Prologue to Expertise - Nate
  23. RELATIONAL DATABASES Do-It-Yourself Queries - Samuel

Class Presentation Schedule

September 9

  • Brad - Ch. 60: Computer Viruses
  • Aaron - Ch. 42: Number Systems for Computing

September 16

  • Sam L-M - Ch. 33: Analog Computation
  • Dylan - Ch. 56: VLSI

September 23

  • Sara Penhale - Where to find academically sound research materials (meet in Science Library)

September 30

  • Sam W - Ch. 4: Simulation, The Monte Carlo Method (p.22)
  • Nate - Ch 64: Logic Programming (p. 420)

October 7

  • Brad - Ch. 6: Game Trees
  • Aaron - Ch. 54: NP Complete Problems

October 14

  • Sam L-M - Ch. 44: Cellular Automata
  • Dylan -

October 21

  • Sam W - Neural networks
  • Nate -

October 28

  • Brad - Ch. 16: Genetic Algorithms (p.103)
  • Aaron - Ch. 45: Cook's Theorem (p.301)

November 4

  • Sam L-M - Self-replicating computers
  • Dylan - Towers of Hanoi

November 11

  • Sam W -
  • Nate - storing images #47 pg 315