Difference between revisions of "Cs488-2009"

From Earlham CS Department
Jump to navigation Jump to search
(committing to topics)
(Research Topics)
 
(50 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__
  
# ALGORITHMS Cooking Up Programs - your name here
+
==Research Topics==
# FINITE AUTOMATA The Black Box - your name here
+
* Aaron ([http://github.com/amweeden06/SRSem-Project-2009 project page]) - An educational game for teaching digital logic
# SYSTEMS OF LOGIC Boolean Bases - your name here
+
* Brad ([http://github.com/carrick/cartesian-genetic-programming project page]) - Coevolution of combinatorial game theory evaluation functions using self modifying cartesian genetic programming
# SIMULATION The Monte Carlo Method - your name here
+
* Dylan - ([http://github.com/parkhdy/Recursion project page]) - Developing a learning experience through a computer game
# GÖDEL'S THEOREM Limits on Logic - your name here
+
* Nate ([http://github.com/nathanielksmith/weltanschauung project page]) - Algorithmic Cut-Up Poetry Generation Using Large Internet-Based Corpuses
# GAME TRESS The Minimax Method - your name here
+
* Sam L-M ([http://github.com/leemasa/Syntactic-Natural-Language-Project project page]) - Computational English language recognition and synthesis in database interfacing
# THE COMSKY HIERARCHY Four Computers - your name here
+
* Sam W ([http://github.com/poshul/Senior-sem-project project page]) - Implementing fault tolerance in software
# RANDOM NUMBERS The Chaitin-Kolmogoroff Theory - your name here
+
 
# MATHEMATICAL RESEARCH The Mandelbrot Set - your name here
+
==Using Github as a work log==
# PROGRAM CORRECTNESS Ultimate Debugging - your name here
+
Here are some directions on getting up and running with git and github.
# SEARCH TRESS Traversal and Maintenance - your name here
+
 
# ERROR-CORRECTING CODE Pictures from Space - your name here
+
===Initial Setup===
# BOOLEAN LOGIC Expressions and Circuits - your name here
+
# Download and install Git (in linux it's as easy as sudo apt-get install git git-core. Not sure about other platforms)
# REGULAR LANGUAGE Pumping Words - your name here
+
# Get a user account at github.com
# TIME AND SPACE COMPLEXITY The Big-0 Notation - your name here
+
# Click on the New Repository button
# GENETIC ALGORITHMS Solutions That Evolve - Brad
+
# Fill out the info (note that you'll be using the project name to set up git on your machine)
# THE RANDOM ACCESS MACHINE An Abstract Computer - your name here
+
# Click next (or continue or whatever)
# SPINAL CURVES Smooth Interpolation - your name here
+
# You'll be given directions '''similar''' to these. FOLLOW THESE! Especially if you're working on an ACL. When finished, click 'continue' and rejoice.
# COMPUTER VISION Polyhedral Scenes - your name here
+
  mkdir <PROJECT NAME>
# KARNAUGH MAPS Circuit Minimization - your name here
+
  cd <PROJECT NAME>
# THE NEWTON-RAPHSON METHOD Finding Roots - your name here
+
  git init
# MINIMUM SPANNING TREES A Fast Algorithm - your name here
+
  git config user.name '<YOUR NAME>'
# GENERATIVE GRAMMARS Lindenmayer Systems - your name here
+
  git config user.email <YOUR EMAIL>
# RECURSION The Sierpinski Curve - your name here
+
  touch README
# FAST MULTIPLICATION Divide and Conquer - your name here
+
  git add README
# NONDETERMINISM Automata That Guess Correctly - your name here
+
  git commit -m 'first commit'
# PERCEPTIONS A Lack of Vision - your name here
+
  git remote add origin git@github.com:<GITHUB USERNAME>/<PROJECT NAME>.git
# ENCODERS AND MULTIPLEXERS Manipulating Memory - your name here
+
  git push origin master
# CAT SCANNING Cross-Sectional X-Rays - your name here
+
 
# TIE PARTITION PROBLEM A Pseudo-fast Algorithm - your name here
+
===Workflow===
# TURING MACHINES The Simplest Computers - your name here
+
 
# THE FAST FOURIER TRANSFORM Redistributing Images - your name here
+
* When you add a new file to the directory OR modify an existing file, add it to git tracking using
# ANALOG COMPUTATION Spaghetti Computers - your name here
+
  git add <filename>
# SATISFIABILITY A Central Problem - your name here
+
* 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
# SEQUENTIAL SORTING A Lower Bound on Speed - your name here
+
  git diff
# NEURAL NETWORKS THAT LEARN Converting Coordinates - your name here
+
* When you've made changes you're happy with and want to save (both edits and file adds), use
# PUBLIC KEY CRYPTOGRAPHY Intractable Secrets - your name here
+
  git commit
# SEQUENTIAL CIRCUITS A Computer Memory - your name here
+
* If you've made LOTS of changes and you only want to record some of them, do
# NONCOMPUTABLE FUNCTIONS The Busy Beaver Problem - your name here
+
  git add -P
# HEAPS AND MERGES The Fastest Sorts of Sorts - your name here
+
  git commit -m '<LOG MESSAGE>'
# NP-COMPLETENESS Wall of Intractability - your name here
+
* When your committed work is in a state you're happy with, 'push' (it's like uploading) it to github using
# NUMBER SYSTEMS FOR COMPUTING Chinese Arithmetic - your name here
+
  git push origin master
# STORAGE BY HASHING The Key Is the Address - your name here
+
* When you've made a bunch of changes, but you realize they suck, and you want to wipe the slate clean, use
# CELLULAR AUTOMATA The Game of Life - your name here
+
  git reset --hard
# COOK'S THEOREM Nuts and Bolts - your name here
+
 
# SELF-REPLICATING COMPUTERS Codd's Machine - your name here
+
===Support===
# STORING IMAGES A Cat in a Quad Tree - your name here
+
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]
# THE SCRAM A Simplified Computer - your name here
+
 
# SHANNON'S THEORY The Elusive Codes - your name here
+
 
# DETECTING PRIMES An Algorithm that Almost Always Works - your name here
+
==Topic Allocation==
# UNIVERSAL TURING MACHINES Computers as Programs - your name here
+
 
# TEXT COMPRESSION Huffman Coding - your name here
+
# SIMULATION The Monte Carlo Method - '''Samuel'''
# DISK OPERATING SYSTEMS Bootstrapping the Computer - your name here
+
# GAME TRESS The Minimax Method - '''Brad'''
# NP-COMPLETE PROBLEMS The Tree of Intractability - your name here
+
# MATHEMATICAL RESEARCH The Mandelbrot Set - '''Nate'''
# ITERATION AND RECURSION The Towers of Hanoi - your name here
+
# GENETIC ALGORITHMS Solutions That Evolve - '''Brad'''
# VLSI COMPUTERS Circuits in Silicon - your name here
+
# COMPUTER VISION Polyhedral Scenes - '''Brad'''
# LINEAR PROGRAMMING The Simplex Method - your name here
+
# PERCEPTIONS A Lack of Vision - '''Nate'''
# PREDICATE CALCULUS The Resolution Method - your name here
+
# ANALOG COMPUTATION Spaghetti Computers - '''Sam Leeman-Munk'''
# THE HALTING PROBLEM The Uncomputable - your name here
+
# NEURAL NETWORKS THAT LEARN Converting Coordinates - '''Samuel'''
# COMPUTER VIRUSES A Software Invasion - Brad
+
# PUBLIC KEY CRYPTOGRAPHY Intractable Secrets - '''Samuel'''
# SEARCHING STRINGS The Boyer-Moore Algorithm - your name here
+
# NUMBER SYSTEMS FOR COMPUTING Chinese Arithmetic - '''Aaron'''
# PARALLEL COMPUTING Processors with Connections - your name here
+
# CELLULAR AUTOMATA The Game of Life - '''Sam Leeman-Munk'''
# THE WORD PROBLEM Dictionaries as Programs - your name here
+
# COOK'S THEOREM Nuts and Bolts - '''Aaron'''
# LOGIC PROGRAMMING Prologue to Expertise - your name here
+
# SELF-REPLICATING COMPUTERS Codd's Machine - '''Sam Leeman-Munk'''
# RELATIONAL DATABASES Do-It-Yourself Queries - your name here
+
# STORING IMAGES A Cat in a Quad Tree - '''Nate'''
# CHURCH'S THESIS All Computers Are Created Equal  - your name here
+
# THE SCRAM A Simplified Computer - '''Dylan'''
 +
# SHANNON'S THEORY The Elusive Codes - '''Aaron'''
 +
# NP-COMPLETE PROBLEMS The Tree of Intractability - '''Aaron'''
 +
# ITERATION AND RECURSION The Towers of Hanoi - '''Dylan'''
 +
# VLSI COMPUTERS Circuits in Silicon - '''Dylan'''
 +
# THE HALTING PROBLEM The Uncomputable - '''Sam Leeman-Munk'''
 +
# COMPUTER VIRUSES A Software Invasion - '''Brad'''
 +
# LOGIC PROGRAMMING Prologue to Expertise - '''Nate'''
 +
# 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

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