Weekly Outcomes

At the end of each week, students should be able to do the following:

Week 1

Writing Computer Software

  • Describe the steps involved in creating and running a Java program
  • Describe the contents of source (.java) and class (.class) files
  • Explain what happens (at a high level) when a Java program is compiled
  • Explain what happens (at a high level) when a Java program is run
  • Describe the difference between compilation and execution errors
  • Explain why a Java Virtual Machine (JVM) is required in order to run a Java program
  • Describe how bytecode makes Java programs portable
  • List the basic steps involved in software development

Primitive datatypes, Variables, Identifiers

Java Programming Basics

Week 2

Standard Java Classes

  • Demonstrate the use of String.substring()
  • Demonstrate the use of String.length()
  • Demonstrate the use of String.charAt()
  • Use Oracle's Java documentation to ascertain if a method is part of a given class

Arithmetic expressions

Input/Output

Algorithms and Design

Week 3

Selection statements

Selection statements

  • Use a switch statement to control program flow
  • Rewrite a switch statement with one or more (potentially nested) if statements
  • Explain the purpose of the case, break and default reserved words

Iteration statements

Week 4

More Standard Java Classes

  • Define an Application Programming Interface (API)
  • Use Oracle's Java documentation to ascertain the capabilities of a given standard java class
  • Use the Javadoc page for the Math class to perform calculations involving the following mathematic operations:
    • Absolute value
    • Trigonometric functions (in degrees and radians)
    • pi - ratio of the circumference of a circle to its diameter
    • xy
    • logarithmic functions
    • maximum/minimum of two numbers
    • Square root
  • Generate random numbers

More Standard Java Classes

Week 5

Java Packages

Coding Standards

Object Oriented Design / Object Oriented Programming

Week 6

UML

  • Correctly annotate and interpret fields (name and type) on a class diagram
  • Correctly annotate and interpret methods (with arguments and return type) on a class diagram
  • Generating class diagram from a verbal description of a class
  • Use visibility modifiers to denote the visibility of a field or method

Class creation basics

Week 7

Defining your own classes

  • Describe the role of the garbage collector
  • Compare the equality of two different objects
  • Swap the data in two different objects

Week 8

Design Techniques

Design Techniques

  • Simplify complicated algorithms by encapsulating subordinate tasks
  • Be familiar with various design approaches such as top-down, bottom-up, and case-based
  • Use mechanisms in IntelliJ to refactor software

Week 9

Class Members

Arrays

Enhanced for loop

  • Design and write code that makes use of the enhanced for loop, a.k.a, the for-each loop

Week 10

ArrayLists