All information in the future is subject to change, though this calendar represents my aims.

#

Date

Topic

Assignments

Examples

Extras

1

1/23

  • Introductions
  • Fields of computer science
  • Administrivia

L1

  • Installing Eclipse

Lab 1

2

1/25

  • Writing a Java program
  • Drawing
  • Coordinates
  • Colors

Colors.java
Drawing.java

Collaboration scenarios

These describe various useful Java commands:

3

1/30

  • Mouse interaction
  • Data fields
  • Types
  • Custom classes

CenteredCircle.java
GrowingMovingRectangle.java
Lollipop.java
MovingRectangle.java
Rectangles.java
RobinBonanza.java
RobinObject.java
ShowRobin.java

Warmup examples

L2

  • Interactive programming
  • Classes

RobinObject.java
Square.java
SquareStep7.java
SquareStep8.java
Step1.java
Step10.java
Step2.java
Step3.java
Step4.java
Step6.java
Step7.java
Step8.java
Step9.java

Lab 2

4

2/1

  • Methods
  • Conditionals
  • Constants

BlackHole.java
GrowingArrow.java
Intersections.java
MovingGrowingArrow.java
Pinocchirobin.java
ShowP.java
TwoColors.java

5

2/6

  • Boolean values
  • Animation
  • Parameters

BlinkingLight.java
ClickCounter.java
Clock.java
DroppingBall.java
LightSwitch.java
MovingRight.java

L3

  • Methods

Cat.java
FrowningPhil.java
GrowingPhil.java
Katie.java
KatiesPlaypen.java
Phil1.java
Phil2.java
PhilBody.java
Robot.java

Lab 3

6

2/8

  • Parameters
  • Gravity
  • Random numbers

BouncingBallObject.java
FallingBall.java
FallingBallObject.java
RandomNumbers.java
RandomRectangles.java
ShowBBObject.java
ShowFBObject.java

7

2/13

  • Return values
  • Handling keystrokes

Colors2.java
MovingSquare.java
NumberControl.java
Slingshot.java
SlingshotApp.java

L4

  • Midterm project time

8

2/15

  • Console programs
  • User input
  • Loops

FiveStar.java
Greater.java
HelloWorld.java
SayMyName.java
UserInput.java

9

2/20

  • More loops

Arithmetic.java
DivisibleBy3.java
Perfect.java
Square.java

while Exercises

L5

  • Loops

Lab 5

10

2/22

  • Midterm project time

11

2/27

  • ArrayLists

List.java
Min.java
Reverser.java
Summer.java

Summer exercise

L6

  • ArrayList exercises
  • The Eclipse Debugger

Imperfect.java
Number1.java
Number2.java
Number3.java
Number4.java
Number5.java
Number6.java

Lab 6

12

3/1

  • Strings
  • Exam review

13

3/6

EXAM 1

L7

  • Files
  • Working with files

Multiplier.java
Number1.java
Number2.java
Number3.java
ReadFile.java

14

3/8

  • Data visualization

Multiplier.java
Number3.java
ReadFile.java
Valid.java
Validate.java

3/13

SPRING BREAK

3/15

SPRING BREAK

3/20

COMMUNITY DAY OF LEARNING

(no class)

L8

  • No lab this week

15

3/22

  • Data classes
  • Data visualization demo

DataPoint.java
Visualization.java

16

3/27

  • ArrayLists in GraphicsPrograms

BlackHoles.java
DarkeningCircle.java
GrowingRectangles.java
LeftRightSquares.java
ManyLines.java
Roster.java
ShowDarkeningCircles.java
Student.java

ArrayLists in GraphicsPrograms exercise

L9

  • Time for data visualization project

17

3/29

  • Two-dimensional arrays
  • Array exercises

EnhancedForLoop.java
ForLoop.java
Grid.java

Array exercises

18

4/3

  • Final project discussion

HowFastCanUClick.java

L10

  • Array and string exercises

Lab 10

19

4/5

  • State machines
  • Review

Review questions

20

4/10

EXAM 2

L11

  • Final project design discussions

21

4/12

  • Images and sounds
  • Text fields and graphical elements

BackgroundMusic.java
Hitchhiker.java
Moo.java
TextField.java

22

4/17

  • Recursion
  • Deployment

Recursion.java

L12

  • Recursion

NO LAB THURSDAY

23

4/19

  • Web design
  • HTML
  • CSS
  • JavaScript

24

4/24

  • Blockchain
  • Software engineering

Read about Tor for Thursday

L13

25

4/26

  • Security
  • “Dark web”

26

5/1

  • Exam review

L14

  • Exam review

27

5/3

EXAM 3

Final project presentations will happen on Wednesday, May 9, 9:30am-12:30pm in Park 229. Projects will be due at that time. Papers will be due Friday, May 11, at noon.