CS56—Advanced Applications Programming

A course taught by Phill Conrad in the Dept. of Computer Science at UC Santa Barbara

Older materials can be found at the 56wiki site.

This site is maintained in this github repo: https://github.com/ucsb-cs56/ucsb-cs56.github.io

F18 M18 W18 F17 M16 W16 W15 W14 S13 S12 W12 W11 S11

Future offering: S19

Textbooks Used This Quarter

Other Textbooks

  • Rational—A class for rational numbers, and starting point for learning Java, and the Java toolchain
  • Rational: ex01—private data members, public constructors, integers from command line arguments, main methods, built in toString method, simple compilation/execution with javac/java
  • Rational: ex02—toString method, public getters, simple build.xml file for Ant, mutiple classes with main() in a single project
  • Rational: ex03—creating a jar file, automatic testing with junit, creating and publishing javadoc
  • Rational: ex04—move source to /src and .class files to /build, adjustments to Ant build.xml, discuss immutable objects
  • Rational: ex05—Addressing bugs with test-driven development (expose bug with test first, then make test pass to squash bug)
  • Rational: ex06—understanding inheritance (from java.lang.Object), linking from our javadoc to Java standard libraries, negative rational numbers, multiplying rational numbers
  • Rational: ex07—Exceptions, testing for Exceptions with JUnit
  • Rational: ex08—functions (methods) to multiply two rational numbers
  • Rational: ex09—== vs. .equals, hashCode()
  • Rational: ex10—packages: edu.ucsb.cs56.pconrad.rational
  • Rational: ex11—Using java arrays and java.util.ArrayList with Rational; running main() programs from a jar file; reading from file, constructing from string
  • Rational: ex12—Converting from Ant to Maven, adding jacoco test case coverage
  • Rational: ex13—Improved test case coverage
  • Rational: ex14—Java Lambdas
  • Rational: ex15—Sorting: Comparable, Comparators