
|
Package Description
This Certification Success Package is for Java programmers interested in expanding their knowledge of the Java programming language to develop complex, production-level applications, and then demonstrating advanced proficiency by becoming a Sun Certified Java Developer. The package includes Sun Authorized courseware delivered in a classroom and over the web, and a voucher for the actual certification exam. This package also includes an opportunity to resubmit your assignment just in case you need it. NOTE: You must first be a Sun Certified Java Programmer to become a Sun Certified Java Developer.
Package Components
Developing Applications With the Java SE Platform (SL-285-SE6)
The Developing Applications With the Java SE Platform course provides students with practical experience in designing a vertical solution for a distributed, multi-tier application. Students use graphical user interface (GUI) design principles and network communications capabilities to code a functional Java application that interacts with a networked database server. The blended approach of designing and developing programs for applications has been clearly emphasized in this course. New features that blend with the special IDE GUI building capabilities, such as Matisse, are covered. The Java Management Extensions (JMX) and the JUnit tool are also covered. The course features the Java Platform, Standard Edition 6 (Java SE 6) technology and utilizes the Java SE Development Kit 6 (JDK 6) product. The students perform the course lab exercises using the NetBeans Integrated Development Environment (IDE) 5.5.
Languages
English
Back to top
Who Can Benefit
Students who can benefit from this course are programmers already familiar with the basic structure and syntax of the Java programming language and who need to further expand this knowledge to develop complex, production-level applications. Completing this course also assists individuals preparing for the Sun Certified Developer for the Java 2 Platform examination.
Back to top
Prerequisites
To succeed fully in this course, students should be able to:
- Develop applications by using the Java programming language
- Understand basic Unified Modeling Language (UML) diagrams
- Understand basic Structured Query Language (SQL) statements
- Understand how to implement interfaces and handle Java programming exceptions
- Use object-oriented programming techniques
- Understand GUI design
- Understand basic Transmission Control Protocol/Internet Protocol (TCP/IP) communication
- Program with sockets or streams
- Understand the monitoring framework that is provided by Java
- Develop testing methodologies and test procedures
Back to top
Skills Gained
Upon completion of this course, students should be able to:
- Apply Model View Controller (MVC) design pattern to create reusable classes
- Implement unit testing using JUnit
- Implement a program from the ground up that could be used in a commercial intranet application
- Develop classes to connect programs to Structured Query Language (SQL) database systems using the core aspects of the Java Database Connectivity (JDBC) application programming interface (API)
- Organize and set up the GUI generation and event handling to support a Java technology project
- Implement the Logging API to generate log messages in GUI
- Create two-tier and three-tier Java technology applications
- Create a multithreaded server
- Create remote objects using Java Remote Method Invocation (Java RMI)
Back to top
Related Courses
Before:
After:
Back to top
Course Content
Module 1 - Introduce the BrokerTool Application
- Explain the problem statement of the BrokerTool application
- Creating and populating the StockMarket Database
- Executing SQL Statements on the StockMarket Database
Module 2 - Apply the Model View Controller (MVC) Design Pattern
- Explain design patterns
- Explain the MVC design pattern
- Analyze how the MVC design pattern can be used in applications
- Add MVC Interaction Code
Module 3 - Implement Unit Testing
- Develop unit testcases using JUnit
- Execute Unit testcases
- Open the InfoTool Project
- Prepare JUnit Test Cases for the InfoTool Project
- Analyze the JUnit Test Cases of the InfoController class of the InfoTool Project
- Create and Analyze Test Methods Inside InfoToolTest.java File
- Create a TestSuite of all the Test Cases of the InfoTool Project
Module 4 - Design the BrokerTool Application
- Apply the MVC design pattern
- Begin the analysis and design of the project under study
- Develop a build plan for the project
- Create the MVC Participants
- Establish the BrokerTool MVC Baseline
Module 5 - Implement the Java Database Connectivity (JDBC) API
- Describe the JDBC API
- Explain how using the abstraction layer provided by the JDBC API makes a database front end portable across platforms
- Describe the five major tasks involved with the JDBC programmer's interface
- State the requirements of a JDBC driver and its relationship to the JDBC driver manager
- Describe the data access objects (DAO) pattern and its applicability to a given scenario
- Identify the Workflow and Object Interactions
- Implement a Database-Connected Broker Model by Using the DAO Pattern
Module 6 - Create Graphical User Interfaces (GUI)
- Apply the principles of good GUI design
- Design and implement a GUI for the project using Matisse
- Apply the Composite Design pattern to build the BrokerTool GUI
- Use JTable and JTabbedPane classes in your application to build a sophisticated GUI
- Add AllCustomerTablePanel to the Palette Window and drag-and-drop to the BrokerGui Class
- Create the CustomerPanel Class, add to the Palette Window and drag-and-drop to the BrokerGui Class
- Change the Order of the Tabs
- Compile and Test the BrokerGui Class
Module 7 - Handle GUI Events
- Implement a view class
- Implement a controller class
- Create the BrokerTool view Class
- Create the BrokerTool Controller Class
- Compile and Testing the BrokerGui Class
- Add Event Handling Functionality
Module 8 - Log Messages in GUI
- Use the logging API
- Examine a logging example
- Write a custom handler
- Set filters to a particular handler
- Create the Custom Handler Class
Module 9 - Implement Multiple-Tier Design
- Compare the BrokerTool two-tier design with the three-tier design for the same application
- Explain how you can use the Java technology package, java.net to implement networking applications
- Demonstrate how to use the Command design pattern in the application
- Apply the Strategy design pattern to create reusable code
- Describe how you can implement the network client
- Describe how you can implement the network server
Module 10 - Implement Advanced Multiple-Tier Design
- Use the new Java concurrency APIs to create a multithreaded server
- Examine a thread pool
- Identify integrity problems in multithreaded servers
- Create a Generic Network Client Class
Module 11 - Communicate With Remote Objects Using Java RMI
- Create remote objects
- Use Java RMI to create a multi-tier application
- Deploy a Java RMI Implementation of the BrokerModel Interface
- Create a Java RMI Implementation of the BrokerView Interface
Back to top
Java Programming Language (WJB-275-SE6)
The Java Programming Language course provides students with information about the syntax of the Java programming language; object-oriented programming with the Java programming language; creating graphical user interfaces (GUIs), exceptions, file input/output (I/O), and threads; and networking. Programmers familiar with object-oriented concepts can learn how to develop Java technology applications. The course features the Java Platform, Standard Edition 6 (Java SE 6) platform, and utilizes the Java SE Development Kit 6 (JDK 6) product. The students perform the course lab exercises using the NetBeans Integrated Development Environment (IDE)
Course Length
14 hours
Languages
English
Back to top
Who Can Benefit
Students who can benefit from this course are programmers who are interested in adding the Java programming language to their list of skills and students who are preparing for the Sun Certified Programmer for Java examination.
Back to top
Prerequisites
To succeed fully in this course, students should be able to:
- Be competent in creating programs in any programming language or have completed the WJB-110-SE6: Fundamentals of the Java Programming Language course.
- Create and edit text files using a text editor
Back to top
Skills Gained
Upon completion of this course, students should be able to:
- Create Java technology applications that leverage the object-oriented features of the Java language, such as encapsulation, inheritance, and polymorphism
- Execute a Java technology application from the command line
- Use Java data types and expressions
- Use Java flow control constructs
- Use arrays and other data collections
- Implement error-handling techniques using exception handling
- Create an event-driven graphical user interface (GUI) using Swing components: panels, buttons, labels, text fields, and text areas
- Implement input/output (I/O) functionality to read from and write to data and text files and understand advanced I/O streams
- Create a simple Transmission Control Protocol/Internet Protocol (TCP/IP) networked client that communicates with a server through sockets
- Create multi-threaded programs
Back to top
Related Courses
Before:
After:
Back to top
Course Content
Module 1 - Getting Started
- Examine Java technology
- Analyze a simple Java technology application
- Execute a Java technology application
Module 2 - Object-Oriented Programming
- Define modeling concepts: abstraction, encapsulation, and packages
- Discuss Java technology application code reuse
- Define class, member, attribute, method, constructor, and package
- Use the access modifiers private and public as appropriate for the guidelines of encapsulation
- Invoke a method on a particular object
- Use the Java technology API online documentation
Module 3 - Identifiers, Keywords, and Types
- Use comments in a source program
- Distinguish between valid and invalid identifiers
- Recognize Java technology keywords
- List the eight primitive types
- Define literal values for numeric and textual types
- Define the terms primitive variable and reference variable
- Declare variables of class type
- Construct an object using new
- Describe default initialization
- Describe the significance of a reference variable
- State the consequence of assigning variables of class type
Module 4 - Expressions and Flow Control
- Distinguish between instance and local variables
- Describe how to initialize instance variables
- Recognize, describe, and use Java software operators
- Distinguish between legal and illegal assignments of primitive types
- Identify boolean expressions and their requirements in control constructs
- Recognize assignment compatibility and required casts in fundamental types
- Use if, switch, for, while, and do constructions and the labeled forms of break and continue as flow control structures in a program
Module 5 - Arrays
- Declare and create arrays of primitive, class, or array types
- Explain why elements of an array are initialized
- Explain how to initialize the elements of an array
- Determine the number of elements in an array
- Create a multidimensional array
- Write code to copy array values from one array to another
Module 6 - Class Design
- Define inheritance, polymorphism, overloading, overriding, and virtual method invocation
- Use the access modifiers protected and the default (package-friendly)
- Describe the concepts of constructor and method overloading
- Describe the complete object construction and initialization operation
Module 7 - Advanced Class Features
- Create static variables, methods, and initializers
- Create final classes, methods, and variables
- Create and use enumerated types
- Use the static import statement
- Create abstract classes and methods
- Create and use an interface
Module 8 - Exceptions and Assertions
- Define exceptions
- Use try, catch, and finally statements
- Describe exception categories
- Identify common exceptions
- Develop programs to handle your own exceptions
- Use assertions
- Distinguish appropriate and inappropriate uses of assertions
- Enable assertions at runtime
Module 9 - Collections and Generics Framework
- Describe the general purpose implementations of the core interfaces in the Collections framework
- Examine the Map interface
- Examine the legacy collection classes
- Create natural and custom ordering by implementing the Comparable and Comparator interfaces
- Use generic collections
- Use type parameters in generic classes
- Refactor existing non-generic code
- Write a program to iterate over a collection
- Examine the enhanced for loop
Module 10 - I/O Fundamentals
- Write a program that uses command-line arguments and system properties
- Examine the Properties class
- Construct node and processing streams, and use them appropriately
- Serialize and deserialize objects
- Distinguish readers and writers from streams, and select appropriately between them
Module 11 - Console I/ O and File I/O
- Read data from the console
- Write data to the console
- Describe files and file I/O
Module 12 - Building Java GUIs Using the Swing API
- Describe the JFC Swing technology
- Define Swing
- Identify the Swing packages
- Describe the GUI building blocks: containers, components, and layout managers
- Examine top-level, general-purpose, and special-purpose properties of container
- Examine components
- Examine layout managers
- Describe the Swing single-threaded model
- Build a GUI using Swing components
Module 13 - Handling GUI-Generated Events
- Define events and event handling
- Examine the Java SE event model
- Describe GUI behavior
- Determine the user action that originated an event
- Develop event listeners
- Describe concurrency in Swing-based GUIs and describe the features of the SwingWorker class
Module 14 - GUI-Based Applications
- Describe how to construct a menu bar, menu, and menu items in a Java GUI
- Understand how to change the color and font of a component
Module 15 - Threads
- Define a thread
- Create separate threads in a Java technology program, controlling the code and data that are used by that thread
- Control the execution of a thread and write platform-independent code with threads
- Describe the difficulties that might arise when multiple threads share data
- Use wait and notify to communicate between threads
- Use synchronized to protect data from corruption
Module 16 - Networking
- Develop code to set up the network connection
- Understand TCP/IP
- Use ServerSocket and Socket classes to implement TCP/IP clients and servers
Back to top
Developing Applications for the Java SE Platform (WJB-285-SE6)
The Developing Applications for the Java SE Platform course provides students with practical experience in designing a vertical solution for a distributed, multi-tier application. Students use graphical user interface (GUI) design principles and network communications capabilities to code a functional Java application that interacts with a networked database server. The blended approach of designing and developing programs for applications has been emphasized in this course. New features that blend with the special IDE GUI building capabilities, such as Matisse, are covered. The Java Management Extensions (JMX) and the JUnit tool are also covered. The course features the Java Platform, Standard Edition 6 (Java SE 6) technology and utilizes the Java SE Development Kit 6 (JDK 6) product. The students perform the course lab exercises using the NetBeans Integrated Development Environment (IDE) 5.5.
Course Length
10 hours
Languages
English
Back to top
Who Can Benefit
Students who can benefit from this course are programmers already familiar with the basic structure and syntax of the Java programming language and who need to further expand this knowledge to develop complex, production-level applications. Completing this course also assists individuals preparing for the Sun Certified Developer for the Java 2 Platform examination.
Back to top
Prerequisites
To succeed fully in this course, students should be able to:
- Develop applications by using the Java programming language
- Understand basic Unified Modeling Language (UML) diagrams
- Understand basic Structured Query Language (SQL) statements
- Understand how to implement interfaces and handle Java programming exceptions
- Use object-oriented programming techniques
- Understand GUI design
- Understand basic Transmission Control Protocol/Internet Protocol (TCP/IP) communication
- Program with sockets or streams
- Understand the monitoring framework that is provided by Java
- Develop testing methodologies and test procedures
Back to top
Skills Gained
Upon completion of this course, students should be able to:
- Apply Model View Controller (MVC) design pattern to create reusable classes
- Implement unit testing using JUnit
- Implement a program from the ground up that could be used in a commercial intranet application
- Develop classes to connect programs to Structured Query Language (SQL) database systems using the core aspects of the Java Database Connectivity (JDBC) application programming interface (API)
- Organize and set up the GUI generation and event handling to support a Java technology project
- Implement the Logging API to generate log messages in GUI
- Implement monitoring functionalities using JMX
- Create two-tier and three-tier Java technology applications
- Create a multithreaded server
- Create remote objects using Java Remote Method Invocation (Java RMI)
Back to top
Related Courses
Before:
After:
Back to top
Course Content
Module 1 - Introduce the BrokerTool Application
- Explain the problem statement of the BrokerTool application
- Creating and populating the StockMarket database
- Executing SQL Statements on the StockMarket database
Module 2 - Apply the Model View Controller (MVC) Design Pattern
- Explain design patterns
- Explain the MVC design pattern
- Analyze how the MVC design pattern can be used in applications
- Add MVC Interaction Code
Module 3 - Implement Unit Testing
- Develop unit testcases using JUnit
- Execute unit testcases
- Open the InfoTool Project
- Prepare JUnit Test Cases for the InfoTool Project
- Analyze the JUnit Test Cases of the InfoController class of the InfoTool Project
- Create and Analyze Test Methods Inside InfoToolTest.java File
- Create a TestSuite of all the Test Cases of the InfoTool Project
Module 4 - Design the BrokerTool Application
- Apply the MVC design pattern
- Begin the analysis and design of the project under study
- Develop a build plan for the project
- Create the MVC participants
- Establish the BrokerTool MVC baseline
Module 5 - Implement the Java Database Connectivity (JDBC) API
- Describe the JDBC API
- Explain how using the abstraction layer provided by the JDBC API makes a database front end portable across platforms
- Describe the five major tasks involved with the JDBC programmer's interface
- State the requirements of a JDBC driver and its relationship to the JDBC driver manager
- Describe the data access objects (DAO) pattern and its applicability to a given scenario
- Identify the Workflow and Object Interactions
- Implement a Database-Connected Broker Model by Using the DAO Pattern
Module 6 - Create Graphical User Interfaces (GUI)
- Apply the principles of good GUI design
- Design and implement a GUI for the project using Matisse
- Apply the Composite Design pattern to build the BrokerTool GUI
- Use JTable and JTabbedPane classes in your application to build a sophisticated GUI
- Add AllCustomerTablePanel to the Palette Window and drag-and-drop to the BrokerGui Class
- Create the CustomerPanel Class, add to the Palette Window and drag-and-drop to the BrokerGui Class
- Change the order of the tabs
- Compile and test the BrokerGui class
Module 7 - Handle GUI Events
- Implement a view class
- Implement a controller class
- Create the BrokerTool view class
- Create the BrokerTool Controller class
- Compile and test the BrokerGui class
- Add event handling functionality
Module 8 - Log Messages in GUI
- Use the logging API
- Examine a logging example
- Write a custom handler
- Set filters to a particular handler
- Create the Custom Handler class
Module 9 - Implement Multiple-Tier Design
- Compare the BrokerTool two-tier design with the three-tier design for the same application
- Explain how you can use the Java technology package, java.net to implement networking applications
- Demonstrate how to use the Command design pattern in the application
- Apply the Strategy design pattern to create reusable code
- Describe how you can implement the network client
- Describe how you can implement the network server
Module 10 - Implement Advanced Multiple-Tier Design
- Use the new Java concurrency APIs to create a multithreaded server
- Examine a thread pool
- Identify integrity problems in multithreaded servers
- Create a Generic Network Client class
Module 11 - Communicate With Remote Objects Using Java RMI
- Create remote objects
- Use Java RMI to create a multi-tier application
- Deploy a Java RMI Implementation of the BrokerModel Interface
- Create a Java RMI Implementation of the BrokerView Interface
Back to top
Sun Certified Developer for the Java Platform, Standard Edition: Essay (Step 2 of 2) (CX-310-027)
The Sun Certified Developer for the Java Platform, Standard Edition: Essay (Step 2 of 2) certification exam is for programmers who are already familiar with the basic structure and syntax of the Java programming language, and who have a need to further apply this knowledge to developing complex, production-level applications. Certification is available for the Java 2 platform.
Languages
Back to top
Sun Certified Developer for the Java Platform, Standard Edition: Assignment (Step 1 of 2) (CX-310-252A)
Description of the Developer Assignment
This is a description of the nature, scale, and scope of the problem you will be required to solve in the Developer assignment. These notes do not form any part of the actual assignment, and if you find a contradiction between these notes and the actual assignment instructions, you must adhere to the instructions in the assignment documents.
Nature of the assignment
The assignment requires that you write working code for a small but plausible business system. To keep the amount of work involved to a reasonable level, the programs you create will be much more restricted in capability, and much cruder in overall presentation, than anything you would actually create for a paying customer. However, the essence of the problem will be the same. You will be graded on correctly solving the technical requirements, not on the "polish" of the finished product. Note however, that some aspects of ease of use, for example how easily the program may be started or configured, will be part of the scoring criteria. Pay careful attention to any such requirements and be sure to adhere to them.
The problem is likely to be something along the lines of a simple booking system, allowing users to view available resources, then book them. The system will not require complex business rules, but will require access to persistent storage, typically in a flat-file format, for reading and modification. You will be expected to make effective use of many of the core Java APIs, but you will not be expected to use more advanced APIs. Below you will find a list of APIs that you will be expected to use, as well as a list of APIs that you may not use. Any APIs that do not appear in either list may be used at your discretion. In fact, using more advanced APIs is likely to be specifically prohibited, as these APIs are often the subject of other certifications. You should use a consistent set of programming style conventions for your entire project. Preferably, these should be the style conventions described at http://java.sun.com/docs/codeconv.
Scale of the assignment
Obviously, the amount of time taken by a candidate to create a working solution to the assignment varies greatly. Brooks, in "The Mythical Man Month," noted years ago that programmer productivity varies by at least ten-to-one. However, a fast programmer might create a solution in about twenty hours. A more typical expectation of a time requirement might be in the order of a working week. If you spend a lot more than two weeks on the project, you might well be creating something that is more detailed than is really required, and you might want to review the scoring criteria and problem statement provided in the assignment.
Perhaps a more consistent measure of the scale of the assignment might be derived from the average number of lines of code submitted in typical passing assignments. Again, this is subject to substantial variation, but as a guide, 3500 lines of code is a reasonable estimate of the mean size of passing assignments.
Scope of the assignment
The problem set by the assignment typically requires that you create a small client-server system. You must code both the client and the server, and you probably have to create a "standalone" mode that allows a client user interface to be started that connects directly to the persistent storage with a single system and no networking.
Therefore, you should expect to create a fairly simple user interface, a network protocol with associated client and server code, a multi-user server that accesses flat files on the local file system and provides for a locking mechanism to protect the integrity of the data in the face of concurrent access from multiple clients.
The user interface will generally have to provide only limited functionality. For example, viewing all records, viewing records matching a set of criteria, modifying a record, and perhaps deleting a record.
Scoring Criteria
Your project will be evaluated on a large number of objective criteria, which fall into 6 categories:
1) General Considerations: This category covers criteria that deal with how easy it is to use and maintain your code.
2) Documentation: This includes your user instructions, Javadoc tool, and comments.
3) Object-Oriented Design: This covers the quality of your object-oriented design, especially as demonstrated in the structure of your classes and your use of variables and methods.
4) GUI: In this category you are graded on how well your GUI conforms to specification, and how easy your GUI is to use.
5) Locking: This category covers your implementation of the locking scheme which is described in detail in your assignment documentation. This part of your assignment deals with multi-threaded coding.
The maximum number of possible points is 400. The minimum passing grade is 320. The maximum points per category are:
Categories - Maximum points
General Considerations - 80
Documentation - 50
Object-Oriented Design - 50
GUI - 70
Locking - 80
Language Fluency - 70
APIs relevant to the assignment
The assignment generally requires that you can write code using the Java programming language, using any and all constructions. You must also be able to make reasonable use of the following additional facilities and APIs:
- Thread handling and synchronization
- Swing (and AWT to the extent necessary to support Swing)
- Standard file IO (java.io, not java.nio)
- Either: Socket-based network programming and serialization _or_ Java RMI (Java Remote Method Invocation) (your choice of one or the other, not both).
The following APIs and facilities may not be used:
- Enterprise JavaBeans
- Servlets, JSP technology, or any other web-oriented APIs
- NIO, the New IO facilities
- Java DataBase Connectivity (JDBC) and SQL
- Java IDL API and CORBA
- Third party software libraries or tools (such as browsers)
Languages
Back to top
Browse Other Course Topic Areas
|
Can't Travel for Training?
Sun eLearning and On Demand Labs give you easy access to the training you need.
Get an iPod touch
For a limited time: order qualifying Sun training and get an iPod touch®.
|