Java Application Developer Certificate Program Competencies
After completing the following units, you will be able to:
Basic Programming Logic
● Explain the steps involved in the program development cycle
● Write Pseudocode statements and flowchart symbols
● Use a sentinel value to end a program
● Understand programming and user environments
● Declare and use variables and constants
● Perform arithmetic operations
● Discuss the advantages of modularization and how to modularizing a program
● Explain the features of good program design and disadvantages of unstructured spaghetti code
● Use the three basic structures—sequence, selection, and loop – to design and implement an algorithm
● Use a priming input to structure a program
● The need for structure and how to recognizing structure
● Create Boolean expressions and the selection structure
● Utilize relational comparison operators
● Construct AND, OR and NOT logic
● Make selections within ranges
● Predict precedence when combining AND and OR operators
● Explain the advantages of looping and common loop applications
● Use a for and while loop with a loop control variable while avoiding common loop mistakes
● Utilize nested loops
● Discuss the similarities and differences between selections and loops
● Explain what an arrays is and how an array can replace nested decisions
● Use constants with arrays
● Search an array for an exact match or range match
● Use parallel arrays and multidimensional arrays
● Use a for loop to process arrays
● Explain the data hierarchy
● Perform basic file operations: open, close, read, write
● Apply control break logic in appropriate circumstances
● Sort multi-field records
● Explain the parts of a method
● Create methods with no parameters or require parameters
● Create methods that return a value
● Pass arrays to methods
● Overload methods
● Use predefined methods
● Recognize method design issues, including implementation hiding, cohesion, and coupling
● Explain recursion
● Explain the principles and advantages of object-oriented programming
● Create organized classes
● Implement public and private access to appropriate members in classes
● Utilize instance and static methods in classes
● Use objects
● Understand the use of and create constructors and destructors
● Illustrate the use of inheritance
● Predict and plan for exceptions with exception handling
● Explain how the Model-View-Controller Design pattern functions Java Basics
● Compile and run your first Java program
● Recognize and debug compile-time and runtime errors
● Define the scope of variables *
● Define the structure of a Java class *
● Create executable Java applications with a main method; run a Java program from the command line; including console output. *
● Import other Java packages to make them accessible in your code *
● Process command line arguments
● Compare and contrast the features and components of Java such as: platform independence, object orientation, encapsulation, etc. *
● Write arithmetic expressions and assignment statements
● Appreciate the importance and demonstrate the use of comments and good code layout
● Develop strategies for testing your program including the use of unit testing frameworks
● Browse, utilize and write JavaDocs effectively Working With Java Data Types
● Declare and initialize variables and constants *
● Cast primitive data types *
● Differentiate between object reference variables and primitive variables *
● Know how to read or write to object fields *
● Explain an Object's Lifecycle (creation, "dereference by reassignment" and garbage collection) *
● Write statements using the Boolean data type
● Develop code that uses wrapper classes such as Boolean, Double, and Integer. *
● Understand the properties and limitations of integers and floating-point numbers
Using Operators and Decision Constructs
● Use Java operators; including parentheses to override operator precedence *
● Test equality between Strings and other objects using == and equals () *
● Compare integers, floating-point numbers, and Strings
● Create if and if/else and ternary constructs to implement decisions *
● Use a switch statement * Creating and Using Arrays
● Declare, instantiate, initialize and use a one-dimensional array *
● Declare, instantiate, initialize and use multi-dimensional array *
● Demonstrate common algorithms for processing arrays and arraylists Using and Constructing Loops
● Create and use while loops *
● Collect elements using arrays and arraylists
● Create and use for loops to traverse arrays and arraylists *
● Create and use the enhanced for loop to traverse arrays and arraylists *
● Process arrays using nested loops
● Create and use do/while loops *
● Compare loop constructs *
● Use break and continue *
Creating and working with Objects and Classes
● Understand the concepts of classes, objects and encapsulation
● Implement instance variables, methods and constructors for classes and objects
● Design, implement, and test your own classes
● Understand the behavior of object references, static variables and static methods
● Organize programs using packages Working with Methods and Encapsulation
● Create methods with arguments and return values; including overloaded methods *
● Apply the static keyword to methods and fields *
● Create and overload constructors; including impact on default constructors
● Apply access modifiers *
● Apply encapsulation principles to a class *
● Determine the effect upon object references and primitive values when they are passed into methods that change the values *
Working with Inheritance
● Describe inheritance and its benefits *
● Implement subclasses that inherit and override superclass methods
● Develop code that demonstrates the use of polymorphism; including overriding and object type versus reference type *
● Determine when casting is necessary *
● Understand the common superclass Object and its methods
● Use super and this to access objects and constructors *
● Use abstract classes and interfaces *
● Declare and implement interface types Input and Output
● Read and write text files
● Classify characters to process text
● Work with streams
● Validate user input Handling Exceptions
● Differentiate among checked exceptions, unchecked exceptions, and errors *
● Create a try-catch block and determine how exceptions alter normal program flow *
● Describe the advantages of Exception handling *
● Create and invoke a method that throws and catches an exception *
● Recognize common exception classes (such as NullPointerException,
ArithmeticException, ArrayIndexOutOfBoundsException, ClassCastException) * Working with classes from the Java API
● Create programs that read and process inputs, and display the results
● Manipulate data using the StringBuilder class and its methods *
● Creating and manipulating Strings *
● Create and manipulate calendar data using classes from
java.time.LocalDateTime, java.time.LocalDate, java.time.LocalTime, java.time.format.DateTimeFormatter, java.time.Period *
● Declare and use an ArrayList of a given type *
● Write a simple Lambda expression that consumes a Lambda Predicate expression *
Graphical User Interfaces using Swing
● Implement simple graphical user interfaces
● Add buttons, text fields, and other components to a frame window
● Handle events that are generated by buttons
● Write programs that display simple drawings
● Use layout managers to arrange user-interface components in a container
● Demonstrate familiarity with common user-interface components, such as radio buttons, checkboxes, and menus
● Build programs that handle events generated by user-interface components Recursion
● Utilize recursive helper methods
● Understand the relationship between recursion and iteration and recognize appropriate usage
● Describe when the use of recursion affects the efficiency of an algorithm
● Identify problems that are much easier to solve by recursion than by iteration
● Process data with recursive structures using mutual recursion Networking
● Explain the concept of sockets
● Create sockets
● Send and receive data through sockets
● Parse data using StringTokenizer and String.split with regular expressions
● Retrieve files from an HTTP server
● Retrieve Web documents by using the URL class
● Communicate with web servers and server-side applications through the Hypertext Transfer Protocol (HTTP)
Basic Web Design
● Create and publish a Web page in HTML5
● Validate a document
● Add main HTML elements to web pages
● Add Block-level and text-level HTML elements
● Create hypertext links
● Add images to documents
● Use DIV tags to layout HTML documents
● Create HTML Forms
● Create basic CSS for formatting pages
● Analyze the current available tools used to communicate between a server and database to update and display web pages
Deploying Applications
● Describe how the following items are deployed: Individual .class files, JAR files, OS wrapper around class files or JAR files, Applets, Java Web Start, WAR files
● Discuss server-based alternatives to deploying applications Building Database Applications with JDBC
● Understand how relational databases store information
● Read and understand a UML diagram
● Describe the interfaces that make up the core of the JDBC API including the Driver, Connection, Statement, and ResultSet interfaces and their relationship to provider implementations ^
● Identify the components required to connect to a database using the DriverManager class including the JDBC URL ^
● Query a database with the structured Query language (SQL) ^
● Connect to a database with Java Database Connectivity (JDBC) ^
● Write database programs that insert, update, and query data in a relational database
● Submit queries and read results from the database including creating
statements, returning result sets, iterating through the results, and properly closing result sets, statements, and connections ^
● Explain the purpose and benefits of an object/relational mapping tool Localization
● Describe the advantages of localizing an application ^
● Read and set the locale by using the Locale object ^
● Create and read a Properties file ^ JSP/Servlets
● Describe the role of JSP and servlets
● Describe the basic structure of servlets
● Create a servlet that generates plain text
● Create a servlet that generates HTML
● Describe the servlet life cycle
● Illustrate servlet debugging strategies
● Understand the need for JSP and evaluate the benefits
● Understand the JSP lifecycle
● Create and install basic JSP pages Scripting
● Select a scripting engine for the appropriate circumstance
● Create and execute a basic script
● Discuss the advanced features scripting engines offer Security
● Discuss the three mechanism to help ensure safety of Java code: language, access control and code signing
● Illustrate how digital signatures are utilized
● Explain code signing
● Explain how encryption works and why it is important
● Sanitize user input Git version control
● Summarize how to setup the Git environment
● Demonstrate how to set up a new project and repository
● Explain how to work with code, including checking out, committing changes, destroying unwanted changes, viewing revisions and history
Agile and Development Approaches
● Describe the players in the agile environment
● Explain the Agile development process and components, including user stories, test-driven development, SCRUM, sprints and backlog
● Identify the advantages and disadvantages of various Agile development methods, including Kanban, Scrum and Extreme Programming
● Identify other methodology of software development processes, including rapid application, prototyping and waterfall approaches
The Java Development World
● Understand the components that go into full stack development
● Distinguish the security concerns that surround application development
Notes
Competencies followed by an asterisk ( * ) are covered on the Oracle Certified Associate, Java SE 8 Programmer I exam - 1Z0-808
Competencies followed by a caret ( ^ ) are covered on the Oracle Certified Professional, Java SE 8 Programmer II exam - 1Z1-809