This repository contains all notes and examples presented in class. Solutions to programming problems will be emailed out when requested.
Unit 1: Java Overview (2-3 days)
Module 1: Java Overview
- Java Syntax
- Java Basics (data types, Strings, Scanners, arrays, ArrayLists)
Module 2: OOP Review
- Objects and classes
- WritingUtensil Example
Module 3: Inheritance
- What is inheritance?
- Interfaces
- Abstract classes
- Type Casting & Memory Allocation
Unit 2: Recursion (3 days)
Module 1: Recursion
- How does recursion work?
- Tree Burning activity
- (extended) Battleship
Unit 3: Sorting (1-2 weeks)
- Module 1: Basic Sorts
- What are sorting algorithms?
- Bubble sort
- Insertion sort
- Selection sort
Module 2: Sorting Part 2
- Merge sort
- Quicksort
- Big O Notation
Unit 4: Data Structures and Searching (1-2 weeks)
- Module 1: Stacks
- What is a stack?
- What are infix, postfix, and prefix?
- Postfix and Infix Stacks activity
Module 2: Queues
- What are queues?
- How do queues differ from stacks?
Module 3: Trees and Heaps
- What is a tree? What is a node?
- Binary search trees
- Heaps
- Tree activity
Module 4: Tree and Heap Sort
- Binary search tree sort
- Heaps as arrays
Module 5: Searching Algorithms
- Basic search
- Binary search trees revisited
Unit 5: Advanced Topics (1 week)
Module 1: Android Development
- Activities and intents
- Layouts and input controls
- Advanced UI and fragments
- Material design (extended)
Module 2: JavaFX
- Windows and panes
- UI controls: buttons, inputs, etc.
- Styling with CSS
Module 3: Machine Learning (extended)
- What is machine learning?
- Artificial neural networks
Final Projects (2 weeks)
Ideas for final projects should be finalized/approved by the end of week 5.