CS152 Fall 2021, Schedule 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 Wednesday Cellular Automata cont. Friday Cellular Automata cont. Assignment 6: Cellular Automtata Week 13: Data Visualization Monday 11/22 Data Visualization Wednesday Data Visualization cont. NO CLASS, THANKSGIVING BREAK Week 14: Data Visualization Monday 11/29 Data Visualization cont. Wednesday Data Visualization cont. Friday Data Visualization cont. Quiz 5 Week 15: Review Monday 12/6 Review Wednesday Review Assignment 7: Data Visualization Friday Review Week 16: FINALS WEEK