Last Updated: 2014 December 1
    
    
On Learning and studying
    
    What students should know, but don't
        
    
      On learning 
    How to study
    How not to study for exams
    
    
What one person from the real world wrote about learning
    
    
Useful books
    
      - How we Learn: The Surprising Truth About When, Where, and Why it Happens,
        Benedict Carey, Random House, 2014.
 
      - Probably Approximately Correct: Nature's Algorithms for learning and
        Prospering in a Complex World, Leslie Valiant, Basic Books, 2013.
 
      - Risk Assessment and Decision Analysis with Bayesian Networks,
        Norman Fenton, Martin Neil, CRC Press, 2013, p43
 
    
    About course exams
    
    Exam questions can be based on the following sources: (1) the textbook(s), 
    (2) readings, (3) lectures, (4) reports, (5) exercises, and (6) on-line notes 
    and slides.  They are based on topics from the beginning of the year up to, and
    including, the class before the exam.
    Consider all concepts and terminology used in the text book, reports, slides
    and lectures and ask the typical  questions - how, why, when, where and what -
    individually and in combination.  In particular, variations are based on
    "describe", "explain", "define", "what is meant by", etc.
    Some programming exercises in the example programming exercises have been and
    may be asked as exam questions.
    
    
      - Exam instructions for class exams
        and the final exam.  It is useful to become familiar with them.
 
      
      - Prolog description questions
 
      
      - Prolog basic questions
 
      
      - Prolog accumulator questions
 
      
      - Prolog cut and not questions
 
      
      - Prolog chat questions
 
      
      - Prolog operator questions
 
      
      - Prolog logic questions
 
      
      - Search questions
 
      
      - Expert and knowledge base questions
 
      
      - Bayesian questions
 
    
    
    Example programs
    
    
    
    IDA* with instrumentation write statements
    
    
      Prolog programs from the book Prolog Programming for Artificial
        Intelligence, Fourth Edition, by Ivan Bratko, as prepared by the author.
 
    Prolog programs
      provided by the course instructor contain the following files.
    
      - binaryTree.pl — an example definition of a binary tree
 
      
      - chatBasis.pl — the support environment used to produce programs such
        as in chatExample.pl.
 
      
      - chatExample.pl — an example program demonstrating how English
        sentences can be used to construct Prolog queries.
 
      
      - cuttest.pl — examples that show the effects of the cut operator '!'.
 
      
      - engFreDictionary.pl — example predictes showing how you can define
        prefix, postfix and infix operators in Prolog.
 
      
      - examplePlUnitTesting.pl — an example that shows how, within one file,
        Prolog predicates can be defined, and tested using PlUnit.
 
      
      - listUtilities.pl — Gives definitions of some predicates defining
        utility operations on lists.
 
      
      - maze.pl — example predicates showing show a graph search program can
        be developed and various problems that can occur.
 
      
      - operator.pl — operator examples.
 
      
      - ring.pl — example predicates based on Wagner's ring cycle operas that
        you can use to experiment with.
 
      
      - sendMoreMoney.pl — Crypt arithmetic problem done with Basic
        Prolog and using CLP.  Multiple variations show that checking constraints
        at appropriate points in a constrained logic program can significantly
        increase the efficiency of an algorithm.
 
      
      - set_print_options.pl — a predicate that changes the amount of a list
        that will be displayed.
 
      
      - sortingAlgorithms.pl — A selection of sort algorithms: bubble, binary
        tree, insert, selection, merge, quicksort.
 
      
      - tower.pl — example predicates showing how compound structures are used
        to build data structures.
 
      
      - zebra.pl — The traditional "Who owns the zebra" logic problem written
        in two different ways.
 
    
    
    
      Bayesian Network Examples provided by the course instructor contain
      the following files.
    
      - burglarAlarm_fig_14_4.pl — Burglar alarm model Fig 16.4 in
      Bratko's book'
 
  
      - burglarAlarm_multistate.pl — Burglar alarm model using yes-no states
 
      
      - child_food_choices.pl — a multistate model computing how much
      food to buy depending upon children's statistical preferences
 
      
      - f16_4_BayseianNet.pl — the program in Figure 16.4
 
      
      - harvardMedical.pl — the Harvard medical model for disease & test
 
        
      - ModelsForBayesianExamples.pdf — the Bayesian models for the
      examples in this package
 
      
      - normanLate.pl — the Norman late model from the book
      Risk Assessment & Decision Analysis with Bayesian Networks
 
      
      - normanMartinLate.pl — the Norman and Martin late model from the book
      Risk Assessment & Decision Analysis with Bayesian Networks
 
      
      - prosecutorsFallacy.pl — a prosecutor's fallacy model
 
      
      - terroristAttack.pl — a terrorist attack model
 
    
    Example report style
    
    An annotated version of the 
      Sequence ADT describing the structure of a stand-alone report.