CS152 Fall 2021, Schedule

Computer Programming Fundamentals
Home
Schedule
Syllabus
Style Guidelines

Note: Schedule is subject to change.

Day Topic Assignment Due
Week 1: Introduction
Monday 8/23 Introduction to the class
slides
Wednesday Java and IntelliJ introduction
Compiling and running a program
How a program executes
slides
Due before class on Wednesday:
1. Download and install IntelliJ, Community version.
2. Create a post introducing yourself on Piazza.
Friday Java introduction cont.
slides
Week 2: Foundations
Monday 8/30 Graphic programs using Leah's Screen class
Coordinates in Java
Interactive drawings
Screen class
Screen example
slides
Assignment 1: Short Essay: What Excites you about Computing?
Wednesday Expressions and operations
Variables and data types
Ovals
Strings
Fonts
slides
Friday Conditionals: if
Lines
Style guidelines
slides
Week 3: Methods
Monday 9/6 NO SCHOOL, LABOR DAY

Assignment 2: First programming assignment
Wednesday Methods
slides
Friday Methods cont.
Code structure
Loops: while
Methods.java
slides
UNM DROP DEADLINE
Week 4: Loops, Arrays, and Returning to Basics
Monday 9/13 Loops: for and while
Variables and scope
Random numbers
slides
Wednesday Arrays
slides
Friday Arrays cont.
Type conversion/casting
Random ints
The tab character
Scanner and getting input
slides
Quiz 1
Week 5: Arrays + Classes and Objects
Monday 9/20 2D Arrays
Nested for loops
slides
Wednesday Classes and Objects
What is a class? What is an object?
Instance variables
Constructors
Methods
slides
Friday Classes and Objects cont.
Building graphics from the ground up
Frames and Panels
Basic frame and panel example code:
MyFrame.java
MyPanel.java
slides
Assignment 3: Arrays
Week 6: Classes and Objects
Monday 9/27 Classes and Objects cont.
Animation
Frame rate
A bouncing ball
slides
Wednesday Classes and Objects cont.
static keyword
static methods
Randomizing ball creation
slides
Friday Classes and Objects cont.
Arrays of objects
slides
Quiz 2
Week 7: Interactivity and Debugging
Monday 10/4 Collision detection
slides
Wednesday Keyboard input
Special guest speakers
slides
Friday Debugging Assignment 4: Classes and Objects
Week 8: Midterm Review
Monday 10/11 Review
slides
Wednesday Review
slides
Midterm
Friday NO CLASS, FALL BREAK
Week 9: Debugging & Interactivity
Monday 10/18 IntelliJ Debugger
Mouse Input
MouseMotionListener
Interactivity with mouse movement
slides
Wednesday Mouse Input cont.
MouseListener
Interactivity with mouse clicks
A simple drawing application
slides
Friday Finishing the drawing application
DrawingApplication.java
slides
Week 10: Recursion
Monday 10/25 Factorial
The stack
Push and pop
Leah's Simple Turtle Library for Java
BasicPanel.java
slides
Wednesday Trees and other fractals
Introduction to LOGO
slides
Friday Trees and Turtles
Introduction to L-Systems
slides
Quiz 3
Week 11: Fractals and L-Systems
Monday 11/1 L-Systems cont.
Strings and parsing text
Drawing L-Systems with a Turtle
Koch curves
slides
Wednesday More complex L-Systems
Adding rules and symbols
slides
Friday L-Systems cont.
Modeling natural structures: plants
Adding randomness
slides
Week 12: Cellular Automata
Monday 11/8 Introduction to cellular automata
1D Cellular Automata
slides
Assignment 5: L-Systems
Wednesday 1D Cellular Automata cont.
Wolfram's page on Elementary Cellular Automata
slides
Friday 2D Cellular Automata
BasicPanel.jar
BasicPanel.java
slides
Quiz 4
Week 13: Cellular Automata cont.
Monday 11/15 2D Cellular Automata cont.
Conway's Game of Life
slides
Wednesday Cellular Automata cont.
Adding a user interface
slides
Friday Cellular Automata cont. Assignment 6: Cellular Automtata
Week 14: Data Visualization
Monday 11/22 Importing data from a csv file
Using Scanner class for files
Scanning lines of text from a file
FileNotFoundException
abq_weather.csv
NOAA weather data
slides
Wednesday Parsing data cont.
Separating Strings that contain commas, split method
Getting an integer value from a String, valueOf method
slides
NO CLASS, THANKSGIVING BREAK
Week 15: Data Visualization
Monday 11/29 Data Visualization
Bar graphs
Getting an string value from an int, valueOf method
slides
Wednesday Data Visualization cont.
Scaling
Data cleaning
abq_weather_cleaned.csv
slides
Friday Data Visualization cont.
Data smoothing
Calculating and plotting a moving average
slides
Quiz 5
Week 16: Review
Monday 12/6 Review
slides
Wednesday Review Assignment 7: Data Visualization
Friday Review
Week 17: FINALS WEEK