Monday, May 15. 2023
Final Project Launcher
Dean Game : Press SPACE to take out your phone. Don't get caught by Mr. Grable!
Pacwoman: Eat the coins and avoid the men. Use WASD to move. Waka waka waka.
Rift Battle: Fight three opponents in this board game. Use the mouse to select a piece and move.
The Thaw: Click to move between rooms and collect items to prevent the Cold War. Can you find all the secret endings in this very historically accurate game?
Car Game: Race around the track! Use WASD to move.
Italian Bros: Use SPACE to jump and use the arrow keys to move the Italian Brother to the ending! Any resemblance to other Italian-themed platformers is purely coincidental.
Cat Jump Game: Use WASD to move the cat and SPACE to jump. Can you collect all of the cat food in this purrfect platformer?
Fun Time Game: It's raining pancakes! Use the arrow keys to move and collect as many as you can. Be sure to avoid the falling forks.
Pancake Pros: Use the WASD keys to move the Tetris pieces and SPACE to drop them. There are special pancake pieces to help you fill the gaps!
ThugSim: Can you find a way to escape the prison? Use WASD to move your character.
Crossy Gym: Move through the gym with WASD and collect all of the coins. Watch out for the treadmills!.
The Hacker: Type the sentence as quickly as you can to hack into the mainframe. Don't make any tyops and don't let the time run out!
Knock Out Kenzie: Click to see different scenes of this interactive story and pursue the love of your life.
Pokeman: Use WASD to move around the field. Enter tall grass for a chance to encounter a "Pokeman". Press C to add it to your inventory. Can you catch 'em all?/
Room Rushers: Move around the room with WASD to dodge enemy bullets. Aim with the mouse and click to shoot. Look out for that game over sound effect!
Wednesday May 3, 2023
Picture Story Template
Friday, April 28, 2023
Tile Mover Template
Thursday, April 20, 2023
Mini Projects
Period 3: SpaceFighters
Friday, April 14, 2023
Lab: Experimenting with a Large Language Model
Lab Assignment: Experimenting with a Large Language Model
In this lab, you will pick three of the five short projects to try with ChatGPT.
The instructions are available in the link above. Please note: You will submit the assignment three times in total, once for each project that you choose.
Thursday, April 6, 2023
Turn in the Paint Application on Github
Accept the assignment and upload your .java
file to the repository.
Monday, April 3, 2023
Add features to the Paint Application
Get the starter code from where we left off in class:
PaintProgram.java
Thursday, March 30, 2023
Bouncing Ball Animation
Get the two classes here:
Animation.java and Ball.java
Wednesday, March 22, 2023
GUI Programming
Hi folks. Please continue working through the notes and challenge problems from earlier this week.
For those who are finishing up or are ready to move on, take a look at this next topic: creating graphical user interfaces in Java.
Tuesday, March 21, 2023
Continue ArrayList Notes
Hi all, please continue to work through the material posted yesterday.
Quick correction: Where it says ArrayIndexOutOfBoundsError
in the notes, it should have said ArrayIndexOutOfBoundsException
.
Feel free to send me an email if you have any questions. Thanks!
Monday, March 20, 2023
Exploring Data Structures
Hi everyone! I hope you have enjoyed your break. I will be returning next Monday and I look forward to seeing you all then.
For this week, we will learn how to create a useful data structure called an ArrayList. It can hold a collection of items like a normal array, but can also change its size as needed.
I have prepared a series of guided notes for this topic. Please follow along with these notes with BlueJ open to a new project called DataStructures. Whenever you see a section of Java code, please add this code to your project.
- Data Structures Introduction
This first slideshow does not have any Java code to add to your project. (Press spacebar to go to the next slide or use the up, down, left, and right arrows to navigate).
- Building an ArrayList from Scratch
This second slideshow has many sections of code to follow along with. Please create a class called DynamicArray in your BlueJ project and follow along as you read the slides.
- Using ArrayList Methods
This last section of notes has some code examples and then challenge problems for you to complete at the end.
Friday, March 3, 2023
Implications of the Halting Problem
So far we have seen that there is a Turing Machine (a Universal Turing Machine) that can simulate the operations of other Turing Machines. And Turing used this idea to give a surprising proof that there are some things that computers cannot do.
A Turing Machine (or computer) cannot decide if another Turing Machine (or computer program) will run forever on its given input or eventually halt.
This result stands for all times. Even if we are able to make computer hardware with as-yet unimaginable technology, this limit of computation will never be overcome.
For today's lesson, please read this description of more implications of the Halting Problem's undecidability.
Thursday, March 2, 2023
The Universal Turing Machine
Hi everyone. I forgot to present this lesson to you first, which is background knowledge to make more sense of the halting problem, which you learned about yesterday.
Today's readings establish a way for one Turing Machine to interpret another Turing Machine's instructions. As you will see, it is possible to build a "Universal" Turing Machine that can be reprogrammed with the "blueprint" of another Turing Machine. Most Turing Machines can perform only a very specific task, but the Universal Turing Machine can do anything that any Turing Machine can do. In that sense it is like a general computer.
The videos that you watched for homework rely on this idea—that one Turing Machine can simulate another one.
I find this idea extremely fascinating, and I hope that you will too!
Please read the following:
There is no homework today. Thank you.
Wednesday, March 1, 2023
The Halting Problem
Please read the following online lessons closely and make an attempt to answer the questions for yourself before moving on.
The two lessons for the day are to introduce "The Halting Problem" before we later set up Turing's ingenious proof of it's inability to be solved with Turing Machines.
The videos for lesson two are not included for today's in-class lesson. Please view them at home for homework:
- Turing & the Halting Problem - Computerphile
- Proof that Computers can't do Everything (The Halting Problem)
Tuesday, February 28, 2023
Yay! I'm a dad!
Hi class, as you might have heard by now, my baby arrived a little sooner than expected! Her name is Aletta Ruth Haney Kanim. She is named after important people in our families and is getting a doubled last name. We're calling her Allie.
Allie is in perfect health and so is Ms. Kanim. I feel amazingly blessed by that.
I will return to class the second week of quarter 4 on Monday. In the meantime, I will leave some assignments posted on the website for you guys to complete independently while you have a sub.
Here's a picture of me holding her on her birthday:
Thanks guys!
Finish up the Designing Turing Machines problem set
We have one day left to finish the Turing Machines problem set. Please have this ready to turn in by tomorrow morning. I will ask the sub to collect them and place them on my desk in the faculty office.
Please complete it for homework if you run out of time today. If you are already done, you may use this period as a study hall. Thank you!
Monday, February 13, 2023
Correction to getNearest()
method
Replace the getNearest()
method in the Organism class with the corrected code below:
Correction:
Tuesday, February 7, 2023
Ecosystem Inheritance Lab
We are beginning a lab to practice inheritance and to see how a system can be designed with a hierarchy of classes.
Download the starter code here and complete the todo items that are left as comments in the code:
Monday, January 9, 2023
Regular Expression Lab
We are beginning a lab that will exercise our ability to write regular expressions in Java. It will also review a bit of iteration and File IO
Get the starter code from Github classroom:
Tuesday, December 6. 2022
Logic Midterm Study Guide
We are reviewing for the cumulative logic midterm this week. Use this study guide as an opportunity to review the content from this semester.
Thursday, December 1, 2022
Advent of Code
Join people around the world in celebrating the holidays with fun programming challenges: Advent of Code.
Each day until Christmas, two new puzzles unlock in this advent calendar. They get progressively harder each day, but they are a good opportunity to practice using some of the skills we have been learning recently like iteration, arrays, and file io.
Wednesday, November 30, 2022
GuessTheNumber Game
Code from the first day:
Monday, November 28, 2022
File IO Examples
Today we introduced file input and output in Java.
We covered reading text from a file with a Scanner and writing to a file with a PrintStream.
Example code:
Monday, November 21, 2022
Turn in Arrays Lab
Turn in instructions:
- Click the link for your class period to accept the assignment:
- When it directs you to github, you should see an empty repository.
- Click the Add Files button and select Upload files
- Drag the folder containing your project into the upload zone on github.
-
Example:
- Press commit changes when finished.
Monday, November 7. 2022
Iteration Strategies Handout
Arrays Mixed Practice
We began working in groups on this problem set to practice processing arrays using the iteration strategies.
Wednesday, November 2, 2022
Arrays and Computer Memory
The limitations of arrays make sense when we understand how they are backed by the memory of our computer. Take a look at the slides from today and the code examples that we created together.
Array Processing Code examples:
Tuesday, November 1, 2022
Arrays Introduction
Today we introduced arrays in Java. You can find the slides and exercises below.
Monday, October 31, 2022
Sub Plans:
Sorry I can't make it in today folks. I'm not feeling very well :(
Please work on the following activities while I am out. They will help you prepare for the quiz tomorrow and for our next unit in programming: arrays.
Logic Problem Set
Answer the following questions in your notebook to review for the Conjunctions Quiz.
Translate the following sentences into logical symbols:
- "All animals are equal, but some animals are more equal than others." - Animal Farm by George Orwell
- "Nowadays people know the price of everything and the value of nothing." - The Picture Of Dorian Gray by Oscar Wilde
- "If we respected only what is inevitable and has a right to be, music and poetry would resound along the streets." - Walden by Henry David Thoreau
- "To produce a mighty book, you must choose a mighty theme. No great and enduring volume can ever be written on the flea, though many there be who have tried it." - Moby Dick by Herman Melville
Prove the following:
- Premises: (P -> Q) ^ (R -> S), -Q ^ -S. Conclusion: -P ^ -R.
- Premises: P ^ ((-Q -> R) ^ (Q -> -P)). Conclusion: R.
Programming Research Task:
Search for the following information online. (Websites only. No videos, please).
Feel free to try out any code you find in BlueJ on the code pad.
- What is an array used for in Java?
- How do you make an array of integers that holds the values 2, 4, 6, 8, and 10?
- How do you make an array of Strings that holds the values "moo", "quack", and "meow"?
- How do you see a single value in an array by its index?
- What number index is "moo" in your String array? What number index is "meow"?
- How do you change what is in an array at a particular slot? Change "quack" to "oink".
- How do you create an empty array of doubles that has space for 500 numbers?
- What is the best way to print an array? What happens when you do the obvious: System.out.println(animalNoiseArray);
Silent Study Hall
When you are finished, please work on something else quietly for the rest of the period. Maybe your Senior Thesis?
Wednesday, October 26, 2022
Turn in Objects Lab
Directions to turn in lab:
- Log in to github.com
- Look for your project in the sidebar
-
Example:
- Drag your folder into the upload files screen and click commit at the bottom.
-
Example:
Monday, October 24, 2022
Objects Lab Challenge Problem
When you are finished with the first two activities, try the small project below for an additional challenge.
You will be making an application that simulates a planet orbiting its sun. Copy the files into their own classes and complete the TODO items in the Planet class
Solar System App
Tuesday, October 18, 2022
Objects Lab
Begin the objects lab. Get the starter code from your Github account after clicking the link below for your class period.
Thursday, October 13, 2022
Object Examples
We created classes that modelled real-world things. This was our first introduction to object-oriented programming.
In this style of programming, related data is bundled together in an object defined from a class. Over the course of the program, the data changes (mutates) through its methods.
Example 1: Radio
Radio class:
Example 2: Mover object
Mover class:
Mover World
World class:
Wednesday, September 28, 2022
Programming Syntax and Semantics Review
Classwork group activity: Programming Syntax and Semantics Review
Monday, September 26, 2022
Project Euler
More programming challenges are available at projecteuler.net.
Create an account to check your answers and track your progress.
Tuesday, September 20, 2022
Study Guide: Logical Validity
Study Guide: Logical Validity Test Study Guide
Monday, September 19, 2022
Classic Programming Challenges
Problem Set: Classic Programming Challenges
Thursday, Spetember 15, 2022
Methods with While Loops
Code examples:
Wednesday, September 14, 2022
Logical Validity
Classwork/Homework Activity: Checking Logical Validity
Friday, September 9, 2022
Submit Circuits Lab
Turn in your lab by sharing the google doc of your screenshots.
Tuesday, September 6, 2022
Begin Circuits Lab
Lab Instructions: Logic Gates Lab
Friday, September 2, 2022
Methods Practice Problems
Problem Set: Methods Practice Problems
Wednesday, August 31, 2022
Boolean Algebra Test Study Guide
Classwork/Homework Activity: Boolean Algebra Test Study Guide
Tuesday, August 30, 2022
Static Methods
Code Examples:
Monday, August 29, 2022
Truth Tables
Classwork/Homework Activity: Truth tables exercises
Friday, August 26, 2022
Turn in lab assignments on github
When you have made your github account, click the link below for your class period:
Wednesday, August 17, 2022
Begin Classes and Conditionals Lab
Work with your group to complete the three parts of the lab.
- Instructions: lab-designing-classes-with-conditionals.pdf
Monday, August 15, 2022
Classes with Constructors
Code examples:
Wednesday, August 10, 2022
Data Definitions and Designing Classes
Problem Set: Data Definitions Practice
Tuesday, August 9, 2022
Designing Classes
Code examples:
Monday, August 8, 2022
Definitions by Genus and Difference
Classwork/Homework Activity: Definitions by Genus and Difference
Thursday, August 4, 2022
Paradox Activity
Group Activity: Classic Paradoxes