Rain water catchment system: prototype routing board after a year of weathering
java main index > java @ ccac west unified series schedule

CIT-111: Introduction to Programming

The following table maps course session dates, lesson topics, LIANG9 references, and content links for all three Java courses in the series.

Course FA20 Section Wk. Sess. Session description Resources Learning Objectives Out-of-class work
CIT-111 wk. of Monday
1 n/a Setting up Java, choosing identifiers, course flow

You'll be asked in the out-of-class work to choose a public name, and a codename. Those names are described in this diagram

Do module 1 with netbeans

Can be completed in repl.it

Variables and operators

Students will register their coding environment and setup their identifers

Step 1: Order a used copy of the LIANG-9

Step 2: Forms and such

Step 2.5: Setup Java & Netbeans

Step 3: Digest and code along with Chunk 1, Modules 1,2, & 3

Target completion for modules 1-3 is now Monday 15-Feburary, 2021 @ morning light

CIT-111 2

We worked through exercise A of Chunk 1, Module 3 and uploaded screen shots of our work to OneDrive ONE DRIVE DIRECTORY

CIT-111 wk. of Monday
2 1 Setting up netbeans!
CIT-111 2 Creating projects, packages, and source files in NetBeans
Copying pre-written code and tweaking text output and variable types
CIT-111 wk. of 15-FEB'21 3 1 Variables, operators, expressions

NOTE: Instructor forgot to resume recording after break--sorry! See video in Chunk 1, Mod 4 for backup.

Liang9 Resources

  • TR.111.3.L.1: Branch execution flow of a simple program using if() controlled blocks
  • TR.111.3.L.2: Implement several layers of decision logic using if-else controlled blocks
  • TR.111.3.E.1: Create a graphical flow-chart of decision logic by designating unique shapes for: a) Flow beginnigns and endings, b) general program events, and c) branching points (a.k.a. decision points or choices)

TODO 1: Record work from Weeks 1-2

Please complete a single work reporting form for your progress during weeks 1-2. Paste in any original code you wrote. Also, upload a screen shot of your working Java development environment to our Chunk 0 Learning Artifacts.

TODO 2: Digest Chunk 1, Mods 3 and 4

Complete a second work reporting for pertaining to this Week: 3. You can upload learning artifacts in our cloud directory for chunk 1. Try for completion of the Road Trip mini-proj in Mod 3, and make a good faith effort at Mod 4. We'll continue with mods 3 & 4 next week as well.

Completion taCompletion targetrget: Monday 22 Feb@ morning light

CIT-111 2
CIT-111 wk. of Monday
4 1 Model of Might we be Friends?
  • Create a flow chart to describe program logic
  • Convert a flow chart into compilable Java

TODO: Week 4

  1. Create a flow chart of your Might We Be Friends? logic
  2. Code up your program from your flow chart
  3. Test your code thoroughly to make sure your logic is correct
  4. Upload your flow chart to the subdirectory named "spring21_mightWeBeFriends" in Chunk 1 Learning Artifacts

Completion target: Mon 1-MAR'21 at morning light

Complete a work period form to log your progress, ask questions, etc.

Create a github.com account and Java repository for Monday, 1 March

CIT-111 2 Finish up Might We Be Friends? Modeling switch{} blocks
CIT-111 wk. of Monday
5 1 If/Else review and friends turn-in

Review Operators

Wed: Looping fundamentals: the while() and for() blocks

Setting up github

When your repo is setup, link to
it in our tracker with your repl.it link

  • java.core.if.3: Create variable requirements and flow charts to implement a given problem constraint
  • TR.111.1.P.1: Clone a git repository from a remote system into a sensible location on a local system.
  • TR.111.1.P.2: Create a local git repository, add files to the working directory, stage files for commit, commit files
  • TR.111.1.P.2: Initialize an online repository with a readme.md

TODO for Wed 3-MAR'21

  1. Get github.com account and make cit-111 repository. Upload your URL to tracker.
  2. Finish your Might We Be Friends? code and upload to your github account. Then paste in the URl to your exact Friends project file in the appropriate tab in the same tracker as #1

TODO for Mon 8-MAR'21

Build working code along with Chunk 1, Mod 5: Looping through the Drawing Loops exercises (i.e. get the user input inside the loop and allow for graceful stopping with break.)

CIT-111 2 First half: Tidy up Might We be Friends? and share code with peers. Second Half: Looping intro, Chunk 1, Module 5

SP'21: Session recordings

CIT-111 wk. of Monday
6 1 Loops again

Topics covered: do/while loops, for loops, input validation

Class Session Monday 8-Mar

  • We implemented a do-while loop on a student's Might We Be Friends project
  • We created a loop based on The Truman Show using both a while and a for syntax block
  • We tinkered with user input and some scanner peculiarities that you'll want to be aware of.
  • Java.Looping.1: Use while() structures to implement looping behavior based on simple boolean condition comparison

Completion target: Monday 15-March'21 at morning light

  1. Choose one of the following mini-projeects in the looping module to develop into a program: Exercise 1: Password authentication, Ex 2: Quality Control, Proj: Math quiz
  2. Register your choice in our master tracker on the Sheet/tab called Looping_miniProj
  3. Upload your code for your looping project by Monday morning, 15-March'21, when we'll start methods, chunk 2!
  4. Complete a weekly work form below to register your time and questions, etc.
CIT-111 2
CIT-111 wk. of Monday
7 1 Review Loops, Start methods

Session Recording

Mid-Term Letter Grade Proposals

Please email Eric at edarsow@ccac.edu with a letter grade proposal and a reason this is a fair proposal based on work completed, attendance, and extenuating circumstances. DUE BY preferably WED 17-MAR'21 at 09:00am!

Methods, Finally!

  • 7.L.1: Organize code into simple methods
  • 7.L.2: Execute methods by calling their name

Finish, upload, and post your Might We Be Friends? project

Make an entry in the appropriate tab in our tracker when your MightWeBeFriends? project is complete.

Weekly work reporting form

CIT-111 2
CIT-111 wk. of Monday
8 1
Film Credit: Jake Gyllenhaal in Enemy(2013). Clip used under educational fair use principles.

Monday: Practice Chunk 2, Mod 1 concepts

Wednesday: Chunk 2, Mod 2

Write and call methods that require input parameters and return a value to their caller

Chunk 2, Module 2 miniproj

Dedicate time to creating a unit converter mini project with a simple user interface. Follow our example geometric shapes program for a guide. When complete, fill out a weekly work form and make an entry in our master tracker on the "UnitConverter" sheet/tab

Unit converter completion target: Monday 5-APR'21

CIT-111 2
Film Credit: Tom Hanks in Castaway(2000). Clip used under educational fair use principles.
CIT-111 wk. of Monday
- - nope! Spring break; zero class! nada! Work on chunk 2, module 2 mini project: unit converter with a completion target of Monday 5-APR'21 at morning light
CIT-111 - naught!
CIT-111 wk. of Monday
9 1

Review unit converter mini-projects

Finish Chunk 2, Mod 2

Jump head-first into Chunk 2, Mod 3

Design classes composed of both member variables and member methods

Completion target for Chunk 2, Mod 3 Kennywood Ride Tracker and/or Payment Processor project: Monday 12-APR'21 @ morning light

The module mini projects of creating a Kennywood Ride Tracker tool in Chunk 2, Module 3 is critical and fun. Optionally, you could do the payment processor instead, the formal mini-project if you are feeling confident in your class structure.

CIT-111 2
CIT-111 wk. of Monday
10 1

Fundamentals project

Design and implement a novel project in Java, from scratch or building upon other students' past work

Sample code and diagrams from class


Check out the sample we made during class on Monday, 12-APR'21 related to a student's interest in the game series Skyrim


Check out our Blackjack sample class diagram on Loretta's GitHub and the associated half-baked .java source file.

Past projects

Choice 1: Kennywood Ride Tracker

Choice 2: Order Tabulator

Choice 3: Design your own project

Compose a novel program in java using class member variables and methods.

Completion target for fundamentals project: Monday 19-APR'21 @ morning light

Bring a packaged food item (i.e. a can of soup, box of pasta, bag of chips) to class on Monday! For Object Modeling!

CIT-111 2
CIT-111 wk. of Monday
11 1

Session Recording

Objects Primer: Grade Bribe Envelopes

Introduction to Java Objects! (Wednesday)

  • 11.L.1: Design in diagrams and code in Java a simple class to model a real-world object
  • 11.L.2: Create an instance of a custom class and demonstrate its essential features.

Step 0: Finish your fundamentals project

The target completion date for the fundamentals project has been extended a week since it seems folks need more time to do a thorough job. Please prepare to share in small groups your fundamentals project on Monday, 26-APR'21

Step 1: Model a Donut or Food Item

Create working code either along with Eric and the class modeling a generic FoodItem or follow Chunk 3, Mod 1 exactly and model a Donut.

Step 1: Work form

CIT-111 2

Session Recording

This recording got chopped off accidentally--sorry Asyncs!

CIT-111 wk. of Monday
12 1

Session Recordings

Film Credit: Matthew McConaughey (Cooper) and David Gyasi (Romilly) in Interstellar (2014). Clip used under educational fair use principles.

Small group sharing of fundamentals project

Java Object!: Java Objects Continued

  • 12.L.1: Create
  • 12.L.2:

step 1: fundamentals project review

Check out the fundamentals_project tab on our master tracker. Choose a peer's project to explore. Complete an instance of this form for each project you decide to review.

step 2: Study Liang9 Chapter 8

Study chapter 8 on objects and classes: suggestion to run all sample code in the chapter on your own machine, tinkering as you go.

step 3: model a vehicle

Get the base Car class working in CarLand. Then choose a mini project described in the Module 4 and implement the changes in your code. Prepare to share first thing Monday.

step 4: complete a work log

CIT-111 2


CIT-111 wk. of Monday
13 1


Film Credit: Matthew McConaughey (Palmer Joss) and Jodi Foster (Dr. Arroway) in Interstellar (2014). Clip used under educational fair use principles.
  • 13.L.1:
  • 13.L.2:

Step 1:

Use our Arrays module to create an array of a set of related items of your choosing. Use a for loop to display the items. Extension: create a mini-program that allows the user to enter values and store them in the array. Super cool mini project: Create a way the user can fill up the array, view the array, and EDIT values in the array from the console.

CIT-111 2

Session Recording

CIT-111 wk. of Monday
14 1 No class Monday

Final session is Wed, 12-May'21 from 10:30 to 12:30

Synchronous students MUST attend, asyncs don't have to attend anything. All students "submit" their project by including links to their code in our master tracker's tab called "Object_Project_final" and write "Done" in the column called Status.

Eric will start call at normal 10 am so we've a half hour for final debugging.

CIT-111 2

Final object project submission

Submit your final object project

Email Eric a Final Grade Proposal Card

All work and grade proposals due @ morning light on Monday, 17-MAY'21

Submit last work form

CIT-130: Object-oriented design in Java

The following table maps course session dates, lesson topics, LIANG9 references, and content links for all three Java courses in the series.

Course SP21 Est. Wk. Sess. Session description Resources Learning objectives Out-of-class work
-1 1

Introduction to course

Review material: from CIT-111

Create a simple Java program that demonstrates your abilities in the language at the start of our course
  • Install your favorite JVM and IDE: Suggested to use NetBeans 11
0 1 TUE-26-JAN
Java array manipulation
Create and manipulate single and multi-dimensional arrays using object-oriented design techniques of an object class and a client class.

Tuesday's TODO for Thursday

1) Populate our collected item array and demonstrate the methods on CollectedItems
2) Create a second instance of CollectedItems and load it up with the titles of a few of your favorite songs

Thursday's TODO for next week

  1. Create a user interface that allows them to create a list of a desired size, with a desired name, and add elements to that list, and display its contents.
  2. Optional Extensions: Create additional methods on CollectedItems such as clearList(), randomlyOrderItems(), or an appropriately named method to rename a given item and show that the change took effect in memory.
2 User-input groupwork
1 1

Collected items code submission

Code submission form

Multi-Dimensional Arrays in-class code

Applying multi-dimensional arrays

Create multi-dimensional arrays and access their elements with nested for-loops

TODO for Thursday 4-FEB-21: Create a more useful output as you loop over the multi-dimensional arrays. See comments in the code posted on github from class. Optional: Create a grid-based layout for a multi-dimensoinal array of your own creation.

TODO for Tuesday, 9-FEB: Begin work on our LyricMachine using our sample LyricMachine and SongLand as a guide. Links are two columns left <--

2 Applying multi-dimensional arrays to song lyrics
2 1 Multi-dimensional array project work

Building out Multi-Dim Array Project with Objects

LIANG-9, Chapter 7: Multi-Dim Arrays (11ed:ch.8)

Applying multi-dimensional arrays

Create and Manipulate Multi-Dimensional Arrays

2 Git essentials
3 1 Github.com essentials and object modeling

Java API: Strings

Differentiate between git repositories and github.com

Document your code in markdown syntax on github.com

TODO task: Create a github.com account and repository for CIT-130

Submit MD-Array Project

(Revised) Submission target: Thu-18-FEB'21 at morning light

4 1

Regular expressions!!!

  • Utilitizing the features of java's String class, including regular expressions

Completion target for Password Project: Thursday, 4-MAR'21


Exceptions in Java

5 1
  • TR.130.5.L.1: Create a class hierarchy diagram by hand of your chosen API classes including all relevant interfaces and super-classes
  • 5.L.2:

Password project due Thursday, 4-MAR'21 at 0900h

Please upload/push to git and include URL in our tracker on the Passsword Strength tab/sheet

2 Introduce Inheritance
6 1

Inheritance & Collections project design; software engineering techniques

  • Java.collections.1: Convert array-based data structures into LinkedList structures
  • Java.collections.2: Implement all major methods on LinkedList class

For Thursday, 11-MAR

  • Complete writing getters and setters for our private member variables on our object classes
  • Create a third subtype of TransportVehicle, such as a balloon or a barge, and make it inherit from the parent, and test that it can be passed into our coputeTravelTimeMethod

For Tuesday 16-MAR'21

  1. Study the Liang9 Chapter on Inheritance, Edition 9, Chapter 11
  2. You should have created a sub-type for a transport mechanism of your choice. Continue our pattern in the computeTravelTime method in our TransportSafetySimulator class to use instanceof operator and type casting (CastClass) to determine when your subclass is passed in to this method. Test your code to determine that you can in fact cast a TransportVehicle typed object into your chosen subclass (i.e. RaceCar or Balloon, or Barge)
  3. If you're excited about inheritance, try creating a new interface specific to your chosen subclass, such as our Derailable interface for trains.
7 1 MT Grade proposals and LinkedLists

Inheritance & Collections

  • LL1Create a LinkedList object and use its methods to populate its elements with String objects
  • LL2 Use an Iterator object to visit each item in the LinkedList

TODO for 18-MAR'21

  • Create a LinkedList that stores String objects and popoulate it with an ordered set of events that occur in a favorite film of yours. Test out the add(String s) and add(int i, String s) methods to create custom ordering of your items. Use a ListIterator object to loop over and display.
  • Extension Exercise Idea: Rig up a user interface to allow the user to build an action sequence in a LinkedList and can choose where to put each item in the list, and could even be allowed to edit that list.

TODO for 23-MAR'21

  1. Tinker with maps by creating key/value pairs of your choosing
  2. Create a class called something like TransportSource that can model a location from which our TransportVehicle sublcasses can depart. It will need member variables that can store a bunch of objects waiting to enter the transport siulation. Hint: One of your member variables will be typed List<TransportVehicle>
  3. Also design a TransportDestination class to hold vehicles that have undergone the simulation of traveling
2 Apply LinkedList to our TransportVehicle inhertitance hierarchy.
8 1

Session Recording

Transport Simulation Spec "Deep Dive"

Write Java which makes use of the Java inheritance facilities.

TODO for Thu 25-MAR: Read and re-read the specs for our transportation simulator and prepare questions to ask Eric on the Zoom call Thursday so you'll have what you need to code like the wind over spring break.

Target completion date for Transport Simulator: Tuesday, 6-APR'21 at Morning Light


Session Recording

- - Spring break: No Class
  • 10.L.1:
  • 10.L.2:
  • CCAC.130.LO.2: Apply Java language elements to create Swing GUI components with event handling
2 No Class
9 1 Introduction to Graphic User Interfaces

GUI & Inheritance project workshop

Create simple User Interfaces using the AWT Library Classes


Session Recording

Film Credit: Mark Wahlberg and John Malkovich in Deepwater Horizon (2016). Clip used under educational fair use principles.
10 1

Session Recording

  • 11.L.1: Select Swing components to build desired user interface elements in a program.
  • Choose a movie or game screen that you can model. Take a screen shot and upload to your git repo, and include a link in the master tracker.
  • Choose two more components from Liang9 Chapter 17 to integrate into our class GUIEventDemo class that we wrote together.

Session canceled due to instructor's grandmother's funeral preparations.

11 1

Session Recording

Design patterns: Model-View-controller structures

  • 12.L.1:
  • 12.L.2:
  • Populate your dedicated section in our MVC organizer based on our notes from class on Tue/Thu. Remember: business objects are the "things" your program manipulates. Controller classes store rules or logic associated with your program. And View provides user interfaces.
  • Make a wireframe (i.e. a diagram) that shows which Swing components you'll use to recreate the features of your chosen user interface screen. Export your diagram as an image, and upload to our master tracker. See Eric's Rough Sample made with diagrams.net a google drive app
12 1

Session Recording

Movie GUIs planning worktime

  • 13.L.1:
  • 13.L.2:
  • Convert your GUI wireframe into a working project in Java: use your LIANG-9 Sections as a guide! We want your JFrame with its panels and components loaded by Tuesday 4-MAY so we can wire up event handlers.


13 1

Exceptional term projects: design and workshop time

  • Exception handling and throwing
  • For Thursday, Please upload to your git account WHATEVER code you have written for your GUI project. Remember, if you're stuck, start by getting our sample code working on your system, and upload that with a not in the code comments that most of the contents was written in class. . THEN, please post the URL in our MOVE_GUI sheet tracker.
2 *Session abbreviated due to instructor Java programming deadline
14 1

Final project debugging makeup session from Tuesday 6-May'21

The movie GUI project is your Final project

Project list: To justify an 'A' grade, you'll want to have posted code you wrote in our tracker by final day.
  • Song lyrics in arrays
  • Password Strength Checker
  • Inheritance--Transport sim
  • Movie GUIS

* Bring fully-baked
projects to share.

The movie GUI project is your Final project

Sharing term projects and final checkout

  • 14.L.1: