CS241: Spring 2017 -- Lecture 20, software development, nary tree

  1. Writing Heap
    As always
    1. Select a representation: array and insertion point index
    2. operations -- write these first:
      1. constructor(s)
      2. accessors
      3. isEmpty()
      4. toString
    3. Testing before use!!
  2. n-ary trees
  3. Prototype game tree generator:
    1. tic tac toe.
    2. Assume you have a Board class (that contains the current state of the game, i.e. where there are x's and o's and whose turn it is). Assume it has these methods:
      1. boolean gameOver()
      2. BoardList generateNextLegalBoards()
    3. An NaryTree class with
      1. NaryTree(Board) constructor (which stores the Board as the root)
      2. addKids() method (which recursively builds the entire tree from this root)
      3. public String toString() that outputs the tree textually (assume Board has toString())
  4. Areas in computing
    1. Programming - learning to write programs (i.e. convert algorithms to code)
    2. Systems -- code that allows you to accomplish things
      1. Compilers - convert source code to executable code
      2. Operating systems - lowest level interface to hardware. Run apps.
      3. Networking - communication
    3. Databases - store info
    4. Computing as a tool for other fields
  5. A bit about bioinformatics
    1. Tech, nanotech, and biotech
    2. "All life on this planet is one thing"; or at least, has a common ancestor -- panspermia?
    3. DNA is the instructions for building organisms
    4. Can infer which organisms descended from which, and how long ago they split off by looking at/computing similarities between their DNA (the code is A, T, G, and C). What causes changes?
      1. Deletion
      2. Insertion
      3. Mutation
      4. Etc... but this is more than we will take on here
  6. Instead we will implement a simple bioinformatics algorithm as our last lab