Course Textbook: A Concise Introduction to Logic
Student Reader
The individual readings will be linked through the Homework Calendar as needed
Inference Rules and Theorems
Quick Reference Sheet
Learn to play Othello (the game you will be coding with for the final project)
Slides
Week 1: Introduction to L&C
Week 2: If-Then and Data Types
Week 3: Logic and Conditional Programming
Handouts
Beginning to Think Logically
Introduction to BlueJ (BlueJ site link)
Data Types, Operators, and Conditional Branching
Exploring Conditional Programming (Starter Code)
Lab: Conditional Programming (Started Code)
Readings
Kreeft - Understanding (The Mind and Computers)
Sullivan - The Nature and Divisions of Logic
Miscellaneous Items:
Branching.java
Operators.java
Operators Reference Sheet
Slides
Week 1: Good Arguments and Proofs
Week 2: "And" and Conditional Declarations
Week 3: "Or" and Rock-Paper-Scissors
Week 4: Logic Gates
Handouts
Lab: Rock, Paper, Scissors
Logic Gates Exercises
Readings
Hillis - Chapter 1
Hillis - Chapter 2
Unit 2 Pretest
Pretest code sample: Birthday.java
Test code sample: Quadrant.java
Slides
Week 1: Reduction Ad Absurdum
Week 2: If-And-Only-If, Theorems, and Iteration
Week 3: For and While Loops
Week 4: Iteration Lab
Handouts
Exploring Iteration (Starter Code)
For Loops Exercises
Lab: For Loops (Starter Code)
While Loops Exercises
Lab: While Loops (Starter Code)
Lab: Iteration (Starter Code)
Readings
Formal Languages
Unit 3 Pretest
Test code sample: Vroomba.java
Slides
Week 1: Methods
Week 2: Arrays
Handouts
Methods Exercises
Methods Exercises 2
Methods Exercises 3
Arrays Exercises
Arrays Lab (Starter Code)
Readings
Mr. Redmond's Code Style Guide
Additional Code
Geometry.java
ReportCard.java
MathMethods.java
MathMethodsButWrong.java
SampleArray.java
Slides
Week 1: Searching and Complexity
Week 2: Sorting
Handouts
Exploring Searching (Starter Code)
Searching Lab (Starter Code and Stopwatch.java)
Complexity Analysis Exercises
Exploring Sorting
Modifying Sorts
Recursion Worksheet
Additional Code
Arrays Practice: FavoritesList
A helpful resource by one of my university professors: visualizations of various sorting concepts
Slides
Week 1: Recursion Part I
Week 2: Recursion Part II and P/NP Part I
Week 3: P/NP Part II
Handouts
In-Class Recursion Exercises I
Recursion Exercises I
In-Class Recursion Exercises II
Recursion Exercises II
Recursion Lab: Towers of Hanoi
NP-Complete Lab (starter code and Stopwatch.java)
Code
MergeSort.java
Unit 7 Pretest
Starter code for the Pretest, Test Form A and Form B
Group Feedback Form
Slides
Week 1: Names and Predicates, 'All' and 'Some'
Week 2: Reasoning with Quantifiers; Objects
Week 3: Objects Part II and Data Structures Lab
Week 4 (partial): Review and Unit 8 Test
Handouts
Square of Opposition Exercises
Modifying an Object
Memory Exercises (Student.java Version 1 and Version 2)
Circuit Routing Lab (Lab code folder)
Miscellaneous Items
Stack Sample Methods
Node.java
Stack.java (requires Node.java)
Slides
Week 1 (partial): Relations, Functions, Identity, and Multiple Quantifiers
Week 2: Logic Quiz, Inheritance, and Polymorphism
Week 3: Polymorphism Lab*
Handouts
The Tree of Porphyry
Inheritance Exercises (Code base)
Polymorphism Exercises (Code base)
Polymorphism Lab Instructions (Code base)
Readings
On Aristotle (Porphyry)
*The Polymorphism Lab is the Unit 9 test as well as a lab grade.
Slides
Week 1: Final Project Week 1
Week 2: Final Project Week 2
Week 3: Final Project Week 3
Handouts
Reversi Project Handout (Starter Code)
Reversi Tournament Rules
Miscellaneous
Othello Check-in Link
Notes on Minimax from the University of Alaska Anchorage
Slides
Week 1: Man and Technology
Handouts
Written Reflection
Readings
Forster - The Machine Stops
Postman - Amusing Ourselves to Death
AI Mimics Humans: what do our creations teach us about ourselves?
Therac-25*: is software as safe as hardware?
Uber Automation Fatality*: who is responsible when a computer commits a crime?
Mass Data Collection: how much information should institutions be allowed to collect?
*Graphic content.
Anytime
Code from the Apollo 11 space mission
Tic-Tac-Toe source code
Start out by reading the code, and once you have a good grip on it see if you can introduce your own brand new subclass of TicTacPlayer to play the game automatically!
Quarter 2
Regex Golf
A well-known set of regex problems. The regexes we learn in class are slightly different from these, so fully solving and understanding them will require some extra research!
The problem set and L&C Hall of Fame
LaTeX Essay
Using the programming language LaTeX, write a two-page essay about something that is a passion of yours and school
appropriate.
Assignment sheet (written in LaTeX)
Code that created the assignment sheet
Overleaf (free online editor for LaTeX)
Quarter 3
Coding Sorting Algorithms
Using Java, program any sorting algorithm not taught in class.
The sorting algorithms covered in class: selection, bubble, insertion, and merge sorts.
Quarter 4
On Computable Numbers
Read Turing's 1936 paper that has been discussed in class, and bring back a 2+ page paper with your thoughts.
Additional points can be earned by writing the this paper in LaTeX as well.