-
Create a project mimicking real-world requirements
Assessment Strategies
Skill demonstration, self-assessment, and/or exam
Criteria
Project is created from scratch
Implement directions that don’t explicitly tell you how to code various objectives
Parse structured input
Conduct sophisticated processing
Present users with complex graphics including interactive forms
Integrate your code with pre-existing code to create animated graphics that asynchronously display what’s being processed
-
Use version control
Assessment Strategies
Skill demonstration, self-assessment, and/or exam
Criteria
Distinguish types of version control
Use modern distributed technologies
Demonstrate the typical commands in the cycle of project contributions
-
Analyze time/space complexity
Assessment Strategies
Skill demonstration, self-assessment, and/or exam
Criteria
Explain why scaling with data is best for predicting runtime
Identify the seven most common big-oh functions
Identify these functions in algorithms used in data structures
-
Examine I/O for common data types (XML and/or JSON)
Assessment Strategies
Skill demonstration, self-assessment, and/or exam
Criteria
Name the parts of an XML document
Distinguish DOM vs SAX parsers and use them to preserve program information in a structured format
-
Use IDEs/breakpoint debugging
Assessment Strategies
Skill demonstration, self-assessment, and/or exam
Criteria
Using an IDE, explain what a breakpoint is and what they do
Demonstrate stepping through code
Follow where you are in the stack
Execute arbitrary code at any point in an application
Debug complex programs with these techniques
-
Implement unit testing/testing frameworks
Assessment Strategies
Skill demonstration, self-assessment, and/or exam
Criteria
Use a unit testing framework
Use different coverages to ensure programs are working using test-driven development principles
-
Use build tools
Assessment Strategies
Skill demonstration, self-assessment, and/or exam
Criteria
Describe the steps of a typical build lifecycle
Specify project dependencies
Automate jar file creation for your project
-
Explain hashing (maps/sets)
Assessment Strategies
Skill demonstration, self-assessment, and/or exam
Criteria
Demonstrate hashing and rehashing of a map
Determine the time complexities of its operations given either open addressing or chaining techniques
Explain why objects that are equal must have the same hashcode and what makes a good hashcode
Differentiate use of a HashMap vs. a TreeMap
-
Design inner classes/lambdas
Assessment Strategies
Skill demonstration, self-assessment, and/or exam
Criteria
Identify the four types of inner classes and how they affect scope
Explain the relationship between anonymous classes, functional interfaces, and lambdas
Create custom functions which accept lambdas
-
Design graphical user interfaces
Assessment Strategies
Skill demonstration, self-assessment, and/or exam
Criteria
Create graphical forms using JavaFX by hand using plain Java code and using tools with FXML
Explain what an EventListener is and how it’s used
Describe what an MVC application entails
-
Examine trees
Assessment Strategies
Skill demonstration, self-assessment, and/or exam
Criteria
Examine properties of trees and how BSTs work
Rotate nodes of binary trees
Demonstrate in detail how AVL, Red/Black, 2-3, and B-Trees maintain balance and how this affects time complexity of their operations
-
Examine graphs
Assessment Strategies
Skill demonstration, self-assessment, and/or exam
Criteria
Explain the properties of various graph types
Describe the two types of adjacency lists and compare the time complexities of their operations
Demonstrate traversals of unweighted graphs and use Djikstra’s and Prim’s algorithms to traverse weighted graphs
-
Examine comparison and linear sorts
Assessment Strategies
Skill demonstration, self-assessment, and/or exam
Criteria
Review insertion sort, mergesort, and quicksort and their time-complexities
Explain what timsort is and how it improves on mergesort
Apply counting sort and radix sort analyzing when they’re appropriate to use and how they accomplish linear time complexity