Difference between revisions of "Cs488-2009"

From Earlham CS Department
Jump to navigation Jump to search
(Research Topics)
 
(37 intermediate revisions by 7 users not shown)
Line 1: Line 1:
Put your name next to four of the chapters that you will be responsible for teaching the rest of us this semester with a presentation and short assignment. If one of the ones you were interested in is already taken please choose another in its place.
+
__TOC__
 +
 
 +
==Research Topics==
 +
* Aaron ([http://github.com/amweeden06/SRSem-Project-2009 project page]) - An educational game for teaching digital logic
 +
* Brad ([http://github.com/carrick/cartesian-genetic-programming project page]) - Coevolution of combinatorial game theory evaluation functions using self modifying cartesian genetic programming
 +
* Dylan - ([http://github.com/parkhdy/Recursion project page]) - Developing a learning experience through a computer game
 +
* Nate ([http://github.com/nathanielksmith/weltanschauung project page]) - Algorithmic Cut-Up Poetry Generation Using Large Internet-Based Corpuses
 +
* Sam L-M ([http://github.com/leemasa/Syntactic-Natural-Language-Project project page]) - Computational English language recognition and synthesis in database interfacing
 +
* 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==
  
# ALGORITHMS Cooking Up Programs - your name here
 
# FINITE AUTOMATA The Black Box - your name here
 
# SYSTEMS OF LOGIC Boolean Bases - your name here
 
 
# SIMULATION The Monte Carlo Method - '''Samuel'''
 
# SIMULATION The Monte Carlo Method - '''Samuel'''
# GÖDEL'S THEOREM Limits on Logic - your name here
 
 
# GAME TRESS The Minimax Method - '''Brad'''
 
# GAME TRESS The Minimax Method - '''Brad'''
# THE COMSKY HIERARCHY Four Computers - your name here
 
# RANDOM NUMBERS The Chaitin-Kolmogoroff Theory - your name here
 
 
# MATHEMATICAL RESEARCH The Mandelbrot Set - '''Nate'''
 
# MATHEMATICAL RESEARCH The Mandelbrot Set - '''Nate'''
# PROGRAM CORRECTNESS Ultimate Debugging - '''Dylan'''
 
# SEARCH TRESS Traversal and Maintenance - your name here
 
# ERROR-CORRECTING CODE Pictures from Space - your name here
 
# BOOLEAN LOGIC Expressions and Circuits - your name here
 
# REGULAR LANGUAGE Pumping Words - your name here
 
# TIME AND SPACE COMPLEXITY The Big-0 Notation - your name here
 
 
# GENETIC ALGORITHMS Solutions That Evolve - '''Brad'''
 
# GENETIC ALGORITHMS Solutions That Evolve - '''Brad'''
# THE RANDOM ACCESS MACHINE An Abstract Computer - your name here
 
# SPINAL CURVES Smooth Interpolation - your name here
 
 
# COMPUTER VISION Polyhedral Scenes - '''Brad'''
 
# COMPUTER VISION Polyhedral Scenes - '''Brad'''
# KARNAUGH MAPS Circuit Minimization - your name here
 
# THE NEWTON-RAPHSON METHOD Finding Roots - your name here
 
# MINIMUM SPANNING TREES A Fast Algorithm - your name here
 
# GENERATIVE GRAMMARS Lindenmayer Systems - your name here
 
# RECURSION The Sierpinski Curve - your name here
 
# FAST MULTIPLICATION Divide and Conquer - your name here
 
# NONDETERMINISM Automata That Guess Correctly - your name here
 
 
# PERCEPTIONS A Lack of Vision - '''Nate'''
 
# PERCEPTIONS A Lack of Vision - '''Nate'''
# ENCODERS AND MULTIPLEXERS Manipulating Memory - your name here
 
# CAT SCANNING Cross-Sectional X-Rays - your name here
 
# TIE PARTITION PROBLEM A Pseudo-fast Algorithm - your name here
 
# TURING MACHINES The Simplest Computers - your name here
 
# THE FAST FOURIER TRANSFORM Redistributing Images - your name here
 
 
# ANALOG COMPUTATION Spaghetti Computers - '''Sam Leeman-Munk'''
 
# ANALOG COMPUTATION Spaghetti Computers - '''Sam Leeman-Munk'''
# SATISFIABILITY A Central Problem - your name here
 
# SEQUENTIAL SORTING A Lower Bound on Speed - your name here
 
 
# NEURAL NETWORKS THAT LEARN Converting Coordinates - '''Samuel'''
 
# NEURAL NETWORKS THAT LEARN Converting Coordinates - '''Samuel'''
 
# PUBLIC KEY CRYPTOGRAPHY Intractable Secrets - '''Samuel'''
 
# PUBLIC KEY CRYPTOGRAPHY Intractable Secrets - '''Samuel'''
# SEQUENTIAL CIRCUITS A Computer Memory - your name here
+
# NUMBER SYSTEMS FOR COMPUTING Chinese Arithmetic - '''Aaron'''
# NONCOMPUTABLE FUNCTIONS The Busy Beaver Problem - your name here
 
# HEAPS AND MERGES The Fastest Sorts of Sorts - your name here
 
# NP-COMPLETENESS Wall of Intractability - your name here
 
# NUMBER SYSTEMS FOR COMPUTING Chinese Arithmetic - your name here
 
# STORAGE BY HASHING The Key Is the Address - your name here
 
 
# CELLULAR AUTOMATA The Game of Life - '''Sam Leeman-Munk'''
 
# CELLULAR AUTOMATA The Game of Life - '''Sam Leeman-Munk'''
# COOK'S THEOREM Nuts and Bolts - your name here
+
# COOK'S THEOREM Nuts and Bolts - '''Aaron'''
 
# SELF-REPLICATING COMPUTERS Codd's Machine - '''Sam Leeman-Munk'''
 
# SELF-REPLICATING COMPUTERS Codd's Machine - '''Sam Leeman-Munk'''
 
# STORING IMAGES A Cat in a Quad Tree - '''Nate'''
 
# STORING IMAGES A Cat in a Quad Tree - '''Nate'''
# THE SCRAM A Simplified Computer - your name here
+
# THE SCRAM A Simplified Computer - '''Dylan'''
# SHANNON'S THEORY The Elusive Codes - your name here
+
# SHANNON'S THEORY The Elusive Codes - '''Aaron'''
# DETECTING PRIMES An Algorithm that Almost Always Works - your name here
+
# NP-COMPLETE PROBLEMS The Tree of Intractability - '''Aaron'''
# UNIVERSAL TURING MACHINES Computers as Programs - your name here
+
# ITERATION AND RECURSION The Towers of Hanoi - '''Dylan'''
# TEXT COMPRESSION Huffman Coding - your name here
+
# VLSI COMPUTERS Circuits in Silicon - '''Dylan'''
# DISK OPERATING SYSTEMS Bootstrapping the Computer - your name here
 
# NP-COMPLETE PROBLEMS The Tree of Intractability - your name here
 
# ITERATION AND RECURSION The Towers of Hanoi - your name here
 
# VLSI COMPUTERS Circuits in Silicon - your name here
 
# LINEAR PROGRAMMING The Simplex Method - your name here
 
# PREDICATE CALCULUS The Resolution Method - your name here
 
 
# THE HALTING PROBLEM The Uncomputable - '''Sam Leeman-Munk'''
 
# THE HALTING PROBLEM The Uncomputable - '''Sam Leeman-Munk'''
 
# COMPUTER VIRUSES A Software Invasion - '''Brad'''
 
# COMPUTER VIRUSES A Software Invasion - '''Brad'''
# SEARCHING STRINGS The Boyer-Moore Algorithm - your name here
 
# PARALLEL COMPUTING Processors with Connections - your name here
 
# THE WORD PROBLEM Dictionaries as Programs - your name here
 
 
# LOGIC PROGRAMMING Prologue to Expertise - '''Nate'''
 
# LOGIC PROGRAMMING Prologue to Expertise - '''Nate'''
 
# RELATIONAL DATABASES Do-It-Yourself Queries - '''Samuel'''
 
# RELATIONAL DATABASES Do-It-Yourself Queries - '''Samuel'''
# CHURCH'S THESIS All Computers Are Created Equal  - your name here
+
 
 +
==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

Latest revision as of 12: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