The Original Liang9 with a well-worn cover

Java @ CCAC West: Unified Textbook -- The LIANG9

Jump to a section

settings_input_componentLIANG9 chapter-based study guide and CCAC course mapping
attach_moneyExactly which book to buy (ISBN, price, vendor notes)
thumb_upWhy the Liang9?

Which book to buy

Introduction to Programming Java: Comprehensive Edition 9th Edition by Y. Daniel Liang. Published by Pearson.

NOTE: This is a PAST edition; Pearson, in their usual form, updates the editions far more frequently than needed in order to charge arms and legs for their books. Get the 9th Edition!

ISBN-13: 978-0-13-293652-1

ISBN-10: 0-13-293652-6

NOTE: Your instructor has purchased over 20 of these from various sources online and has NEVER paid more than $40 for a single copy. Purchasing from the CCAC bookstore will result in a charge of over $180! Yikes! ( And shame on the Pearson corporation which is an enemy of students everywhere.)

arrow_upward


LIANG9 chapter-based study guide and CCAC course mapping

The following table maps each chapter in Daniel Liang's Introduction to Programming Java to a Java course taught at CCAC's West Hills center.

Chapter No. Title Course mapping Notes
(§ = section; * = challenge, ** = tricky)
1 Introduction to computers, programs, and Java CIT-111
core:
§1.1 - 1.9 (all)
practice:
ex. 1.2: display five messages
ex. 1.5: compute expressions
mini-projects:
ex. 1.7: approximate π (advanced)
2 Elementary Programming CIT-111
core:
§2.1 - 2.15, §2.17 - 2.18
supplemental:
§2.16, §2.19

practice:
ex. 2.1 - 2.5
mini-projects:
ex. 2.12 (physics - finding runway length)
ex. 2.14: (health application - computing bmi)
ex. 2.17: (science - wind-chill temperatures)
ex. 2.19: (distance of two points)
tricky:
ex. **2.6: (sum the digits in an integer)
ex. *2.15*: (geometry - area of a triangle)
3 Selections (if, switch) CIT-111
core:
§3.1 - 3.7 (intro - common errors)
§3.14 (switch statements)
§3.15 (conditional expressions)
§3.17 (precedence)
supplemental:
§3.8 - 3.10 (rand nums - taxes)
§3.12 (cs: leap years)
§3.13 (cs: lottery)
§3.16 (formatting console output)

practice:
ex. 3.11 (days in a month)
ex. 3.12 (check a number)
ex. 3.26 (AND, OR, and XOR)
mini-projects:
ex. *3.1 (solve the quadratic)
ex. **3.4 (learn addition - great!)
ex. **3.21 (science: day of the week)
ex. **3.22 (geometry: points in a circle?)
ex. **3.25 (intersecting points)
ex. **3.28 (geometry: overlapping rectangles)
ex. ****3.29 (geometry: overlapping circles)
4 Loops CIT-111
core:
§4.1 - 4.5 (intro - which loop to use)
§4.9 (break & continue)
advanced:
§4.6 (nested loops)
supplemental:
§4.7 (minimizing errors)
§4.10 (cs: primes)
§4.11 (dialog boxes)

practice:
ex. 4.3 (conversion table from kg to lbs)
ex. 4.4 (conversions table from mi to km)
ex. 4.10 (numbers divisible by 5 and 6)
ex. 4.12 (math: smallest n)
ex. 4.40 (one million heads?)
mini-projects:
ex. *4.18 (printing patterns with loops--cool!)
ex. **4.19 (pyramidal numbers)
ex. *4.30 (finance: compounded values)
ex. *4.1 (count pos and neg nums)
ex. **4.7 (compute future tuition)
ex. *4.14 (math: compute gcd)
ex. **4.26 (math: compute e)
ex. **4.44 (monte carlo)
5 Methods CIT-111
core:
§5.1 - 5.5 (intro - passing parameters by value)
§5.9 (variable scope)
supplemental:
§5.6 - 5.7(modularizing code - case:dec to hex)
§5.10 - 5.12(Math class - method abstraction)
advanced:
§5.8 (overloading methods)

practice:
ex. 5.8 (conversion between C and F)
ex. 5.9 (conversion between ft and m)
ex. 5.10 (isPrime(int num) method)
ex. 5.11 (finance: compute commission)
ex. 5.18 (use the Math.squt method)

mini-projects:
ex. *5.13 (sum series)
ex. *5.14 (estimate pi)
ex. *5.36 (geometry: area of a regular polygon)
ex. *5.17 (display a matrix of 0s and 1s)
ex. **5.22 (math: approximate the sq. root)
ex. **5.31 (finance: credit card num validation)

6 Single-Dimensional arrays CIT-111
core:
§6.1 - 6.2 (intro - array basics)
§6.5 - 6.7(copying - returning an array from a method)
§6.1 - 6.2 (intro - array basics)
§6.12 (the Arrays class)
supplemental:
§6.3 (case: lotto)
§6.4 (case: cards)
§6.8 (case: counting letters)
§6.9 (variable length argument lists)
§6.10 (searching arrays)
§6.11 (sorting)

practice:
ex. 6.9 (smallest element)
ex. 6.10 (index of smallest element)
ex. 6.26 (strictly identical arrays)
ex. 6.1 (assign grades)
mini-projects:
ex. 6.4 (analyze scores)
ex. *6.11 (math: standard deviation)
ex. *6.12 (reverse an array)
ex. 6.15 (eliminate duplicates)
ex. **6.18 (bubble sort)
ex. **6.19 (sorted?)
ex. **6.31 (merge two sorted lists)
7 Multidimensional arrays CIT-130
core:
§7.1 - 7.4 (intro - passing [][] as params)
§7.8 (multi-dimensional arrays)
cases:
§7.5 (grading a MC test)
§7.6 (closest pairs)
§7.7 (sudoku)

practice:
ex. 7.28 (strictly identical arrays)
ex. 7.29 (identical arrays)
ex. *7.26 (row sorting)
mini-projects:
ex. *7.1 (sum elements by column)
ex. 7.5 (math: add two matrices)
ex. *7.31 (geometry: intersection points)
ex. ***7.20 (game: connect four)
8 Objects and Classes CIT-111 also used in CIT-130 and CIT-244
core:
§8.1 - 8.5 (intro - reference vars)
§8.7 - 8.11 (static vars - passing objects)
supplemental:
§8.6 (using library classes)
§8.11 (arrays of objects)

practice:
ex. 8.8 (make a Fan class)
mini-projects:
ex. **8.9 (n-sided regular polygon)
ex. *8.10 (math: quadratic equation)
ex. *8.14 (stopwatch) )
9 Strings CIT-130
core:
§9.1 - 9.2 (intro - the String class)
§9.5 (Character class)
§9.6 (StringBuilder and StringBuffer)
supplemental:
§ 9.3 (palindromes)
§ 9.4 (hex to dec)
§ 9.7 (command line arguments)

practice:
ex. 9.4 (counting occurrences of a char)
ex. 9.6 (counting letters in a String)
mini-projects:
ex. *9.1 (ssns)
ex. *9.7 (telephone keypads)
ex. *9.8 (binary to decimal)
ex. **9.11 (sorting chars in a String)
ex. ***9.25 (game: hangman)
10 Thinking in objects CIT-111 also used in CIT-130 and CIT-244
core:
§10.1 - 10.8(intro - object composition )
§10.11 (class design guidelines)
§10.12 (processing primitive data)
supplemental:
§10.8 (case: designing Course)
§10.9 (case: stack structures)
§10.10 (case: GuessDate class)
§10.14 (BigInteger and BigDecimal classes)

practice:
ex. 10.4 (design the MyPoint class)
ex. *10.15 (finding the bounding rectangle)
mini-projects:
ex. *10.11 (Circle2D class)
ex. ***10.8 (Tax class)
ex. ***10.12 (Triangle2D class)
11 Inheritance and Polymorphism CIT-130 also used in CIT-244
core:
§11.1 - 11.10 (intro - equals() )
supplemental:
§11.11 (AraryList class)
§11.12 (case: custom Stack)
§11.13 (protected)
§11.14 (preventing extending and overriding)

practice:
ex. 11.1 (Triangle class)
ex 11.2 (Person, Student, Employee...)
mini-projects:
ex. 11.8 (new Account class)
12 GUI Basics CIT-130
core:
§12.1 - 12.15 (intro - text fields)

practice:
ex. 12.1 (FlowLayout manager)
ex. 12.2 (BorderLayout manager)
ex. 12.3 (GridLayout manager)
ex. 12.4 (JPanel)
mini-projects:
ex. 12.9 (game: display three cards)
ex. 12.10 (game: display a checkerboard)
13 Graphics optional in CIT-130
14 Exception handling and text i/o CIT-130
core:
§14.1 - 14.8 (intro - chained catch clauses)
supplemental:
§14.9 (defining custom Exceptions)
§14.10 - 14.12 (file i/o)
§14.13 (reading data from the web)

practice:
ex. 14.3 (ArrayIndexOutOfBoundsException)
mini-projects:
ex. *14.1 (NumberFormatException)
ex. *14.10 (OutOfMemoryError)
ex. **14.21 (display a graph)
15 Abstract classes and interfaces CIT-130
core:
§15.1 - 15.2 (intro - abstract classes)
§15.5 - 15.8 (interfaces - interfaces v. abstract classes )
supplemental:
§15.3 (case: abstract Number class)
§15.4 (Calendar and GregorianCalendar)
§15.9 (case: Rational class)

practice:
ex. 15.7 (enable GeometricObject comparable)
ex. 15.8 (ComparableCircle class)
mini-projects:
ex. **15.20 (Mandelbrot fractals)
16 Event-Driven programming CIT-130
core:
§16.1 - 16.5 (intro - Anonymous class listeners)
§16.8 (mouse events - key events)
supplemental:
§16.6 (alternatives to defining Listener classes)
§16.7 (case: loan calculator)
§16.11 (animation with Timer)

practice:
ex. 16.2 (which button?)
ex. *16.7 (set background color with click)
ex. *16.8 (display the mouse position)
ex. *16.9 (draw lines with arrow keys)
mini-projects:
ex. *16.4 (create a calculator)
ex. *16.4 (create an investment value calc)
ex. **16.6 (alternate two messages)
ex. *16.11 (display a character)
ex. *16.19 (geometry: inside a circle?)
ex. ***16.25 (game: hit balloons)
ex. ***16.28 (simulation: self-avoiding random walks)
17 GUI Components CIT-244
core:
§17.1 - 17.8 (all)

practice:
ex. *17.6 (mile/km converter)
ex. *17.14 (JComboBox and JList)
mini-projects:
ex. **17.4 (text viewer)
ex. **17.8 (select a font)
ex. **17.10 (Mandelbrot fractal)
ex. **17.15 (use JScroller to create colors!)
18 Applets and Multimedia deprecated API
19 Binary I/O extension to CIT-244
20 Recursion CIT-244
core:
§20.1 - 20.5 (intro - helper methods)
supplemental:
§20.6 - 20.10 (directory size - tails)

practice:
ex. 20.4 (sum series)
ex. 20.6 (sum series)
ex. *20.7 (Fibonacci series)
ex. *20.8 (print digits recursively)
ex. *20.9 (display digits backwards)
mini-projects:
ex. *20.1 (factorial of BigInteger objects)
ex. *20.8 (towers of Hanoi)
ex. *20.8 (towers of Hanoi)
ex. *20.20 (display circles)
ex. *20.22 (decmial to hex)
ex. **20.27 (Koch snowflake fractal)
ex. ***20.27 (Hilbert curve)
21 Generics CIT-244
core:
§21.1 - 21.7 (intro to wildcards)
supplemental:
§21.8 - 21.9 (erasure - generic matrix)

practice:
ex. 21.3 (distinct elements in ArrayList)
mini-projects:
ex. 21.1 & 21.2 (GenericStack revisions)
22 Lists, Stacks, Queues, and Priority Queues CIT-130 also used extensively in CIT-244
core:
§22.1 - 22.6 (intro - Static methods for Collections)
supplemental:
§22.7 (case: bouncing balls)
§22.8 - 22.10 (Vector & Stack- eval expressions)

practice:
ex. 22.6 (iterating over 1m numbers)
mini-projects:
ex. ***22.7 (game: hangman)
ex. **22.14 (prefix notation)
ex. **22.16 (convert infix to postfix)
ex. *22.21 (directory size)
23 Sets and Maps CIT-130 also used extensively in CIT-244
core:
§23.1 - 23.2 (intro - Sets)
§23.4 (case: counting keywords)
§23.5 - 23.6 (maps - case: occurrences)
supplemental:
§23.3 (comparing performance)
§23.7 (singleton and unmodifiable)

practice:
ex. 23.1 (perform set operations)
ex. 23.2 (display nonduplicate words)
mini-projects:
ex. 23.4 (count consonants and vowels)
ex. **23.8 (count occurrences of words in a file)
24 Developing Efficient Algorithms CIT-244
core:
§24.1 - 24.10 (all)
practice:
ex. *24.3 (pattern matching)
ex. *24.4 (pattern matching)
mini-projects:
ex. **24.24 (divide and conquer)
25 Sorting CIT-244
core:
§25.1 - 25.7 (intro - external sort)

practice:
ex. 25.1 (generic bubble sort)
ex. 25.2 (generic merge sort)
ex. 25.3 (generic quick sort)
ex. 25.4 (improve quick sort)
mini-projects:
ex. 25.13 (execution time for sorting)
26 Implementing Lists, Stacks, Queues, and Priority Queues extension to CIT-244
27 Binary Search Trees CIT-244
core:
§27.1 - 27.3 (intro - deleting from a BST)
supplemental:
§27.4 (tree visualization)
§27.5 (BST is Iterable!)
§27.6 (case: data compression)

practice:
ex. 27.1 (add methods to BST)
ex. 27.2 (test full BST)
mini-projects:
ex. **27.6 (find leaves)
ex. **27.7 (find nonleaves)
28 Hashing optional in CIT-244
29 AVL Trees optional in CIT-244
30 Graphs and Applications optional in CIT-244
31 Weighted Graphs and Applications optional in CIT-244
32 Multi-threading and parallel programming CIT-244
core:
§32.1 - 32.7 (intro - case: clock)
§32.9 - 32.12 (synchronization - producer/consumer)
supplemental:
§32.8 (Thread pools)
§32.13 - 18 (blocking queues - parallel programming)

practice:
ex. 32.5 (bouncing balls)
mini-projects:
ex. 32.9 (demo ConcurrentModificationException)
ex. 32.10 (fix 32.9 with synchronization)
33 Networking extension to CIT-244
34 Java Database Programming CodeConnect project

arrow_upward


About the Liang9

To facilitate continuity across courses, reduce student cost, and drastically simplify logistics, all three courses will be centered on the 9th edition of Daniel Liang's Introduction to Java Programming textbook.

Unifying the java series around the LIANG9 as several advantages:

arrow_upward