Note: Schedule is subject to change.
Day |
Topic |
Assignment Due |
Week 1: August 17, Introduction |
Monday |
Introduction to the class
slides
|
Survey, due Monday 8/17 by midnight. |
Wednesday |
Introduction cont.
Compiling and running a program
How a program executes
Processing
Setup and Draw
Coordinate system
Interaction
Comments
slides |
Due before class on Wednesday:
1. Download and install Processing.
2. Create a post introducing yourself on Piazza.
3. Create an account on repl.it.
See Learn for more important details. |
Friday |
Processing introduction cont.
Color
Lines
Shapes
Randomness
slides
| |
Week 2: August 24, Foundations |
Monday |
Variables and data types
Rectanges
Basic text
slides
| Assignment 1: Short Essay: What Excites you about Computing? |
Wednesday |
Expressions and operations
Conditionals: if else
slides |
|
Friday |
Iteration, loops: while
Style guidelines
slides |
|
Week 3: August 31, Functions |
Monday |
Functions introduction
Variable scope
slides |
Assignment 2: First programming assignment |
Wednesday |
Functions cont.
Variable scope cont.
For loops
Trigonometry review
slides |
|
Friday |
Functions cont.
For loops cont.
Simple animation and phyics: a bouncing ball
slides |
|
Week 4: September 7, Arrays |
Monday |
NO CLASS, LABOR DAY |
|
Wednesday |
Intro to Arrays
Arrays and for loops
slides
|
Assignment 3, on Learn |
Friday |
Arrays cont.
Graphs
Visualizing arrays
slides |
|
Week 5: September 14, Arrays Cont. |
Monday |
Simple data visualization
Importing and parsing data files
NM Covid data
e.e. cummings poem
[i carry your heart with me(i carry it in]
Bar charts
slides |
|
Wednesday |
Simple data visualization cont.
Calculations with arrays: max
Plotting different sets of data
map() function
slides |
|
Friday |
Simple data visualization cont.
Calculations with arrays: moving average
Array Data Type
slides |
Assignment 4 |
Week 6: September 21, Classes and Objects |
Monday |
Introduction to classes and objects
Return to the bouncing ball program
slides
|
|
Wednesday |
Classes and objects cont.
Classes, arrays, and type
Reference vs. value
slides |
|
Friday |
Classes and objects cont.
Additional methods
Collision detection
Objects as parameters
slides |
|
Week 7: September 28, Classes and Objects Cont. |
Monday |
Arrays of objects
Strings
Collision detection, many objects
slides |
Assignment 5 |
Wednesday |
Arrays of objects
Strings
Constants and the final keyword
String comparisons and the equals() method
Arrays and objects as method parameters and outputs
trees.txt
slides |
|
Friday |
Copying objects and arrays, the clone() method
Sorting items in an array
slides |
|
Week 8: October 5, Midterm Review |
Monday |
Review
slides |
Assignment 6 |
Wednesday |
NO CLASS, UNM BREAK |
|
Friday |
Review
slides |
Midterm Exam
3 hour exam
24 hour window: Friday 1pm - Saturday 1pm |
Week 9: October 12, Recursion and Fractals |
Monday |
Midterm solutions
Introduction to recursion
Factorial
slides
| |
Wednesday |
Introduction to fractals
Trees
slides |
|
Friday |
Fractals cont.
Trees cont.
Saving images
Fractal structures in nature
slides |
|
Week 10: October 19, "Regular" Java
Oracle's Java reference
W3schools Java reference |
Monday |
Introduction to Java
Processing vs. Java
Introduction to the command line
javac and java
Jaeren's handy command reference
slides |
|
Wednesday |
Java cont.
Scanner class
Fibonacci sequence
Strings
Searching for a letter in a string
Counting letters example
slides
|
|
Friday |
Counting letters example cont.
Tester code for Assignment 7
slides
|
|
Week 11: October 26, Cellular Automata |
Monday |
Introduction to Cellular Automata
One Dimensional Cellular Automata
slides
|
Assignment 7 |
Wednesday |
One Dimensional Cellular Automata cont.
Wolfram's page on Elementary Cellular Automata
We worked through Rule90 in class
1D CA patterns in nature
slides
|
Download and install IntelliJ Use the Community version. |
Friday |
Guest lecture: Drew Trujillo |
|
Week 12: November 2, Cellular Automata cont. |
Monday |
Introduction to IntelliJ
IntelliJ Tutorial
2D Cellular Automata
Game of Life
slides
|
|
Wednesday |
Game of Life cont.
Wolfram's A New Kind of Science
slides |
|
Friday |
Engineering Student Success Center
Game of Life cont.
Cellular Automata as models of complex systems
slides
|
|
Week 13: November 9, Program Organization |
Monday |
Using formatting and comments as you write code
Consistently using variables and methods to create clear readable code
slides |
Assignment 8 |
Wednesday |
Designing a program
1. Defining Classes
2. Defining variables
3. Defining methods (no code in them, just names and parameters)
Introduction to keyword "static"
slides |
|
Friday |
Program design cont.
slides |
|
Week 14: November 16, Interactivity |
Monday |
Program organization cont.
Writing methods for the monster program
slides
|
Assignment 9 (on Learn) |
Wednesday |
Interactivity
Using input from the keyboard
Listeners in Java
KeyListeners
SampleCode.java: sample code for class and lab
slides
|
|
Friday |
Interactivity cont
Implementing "wrap around" movement for on-screen objects
Collision detection
slides
|
|
Week 15: November 23, Interactivity and Animation |
Monday |
Collision detection cont.
Moving and animating objects on screen
slides
|
Assignment 10, part one |
Wednesday |
Creating arrays of objects in your game
Making objects disappear
Keeping track of your score
slides
|
|
Friday |
NO SCHOOL THANKSGIVING BREAK |
|
Week 16: November 30, Review |
Monday |
Buffering
Organizing game code
Create your own website: https://webhostinginfo.unm.edu/
slides |
|
Wednesday |
Review for final: Static
slides |
Assignment 10, part two |
Friday |
Review for final
slides |
|
Week 17: December 7, Finals Week |
Tuesday December 8th, 2-3pm, Final Exam Review
In our regular Zoom room |
|
Wednesday December 9th, Final Exam
4 hour exam
24 hour window: Wednesday 10am - Thursday 10am |
Final Exam |