0% found this document useful (0 votes)
7 views

Java Developer Nanodegree Program Syllabus

Java
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Java Developer Nanodegree Program Syllabus

Java
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

INDIVIDUAL LEARNERS

SCHOOL OF PROGRAMMING & DEVELOPMENT

Java Web Developer


Nanodegree Program Syllabus
Overview
The ultimate goal of the Java Web Developer Nanodegree program is to equip learners with the unique skills they need to build
enterprise-scale applications with Java.

Learning Objectives

A graduate of this program will be able to:

• Understand the fundamentals of the Spring Boot framework and associated integrations and plugins.

• Describe the differences between web services, APIs, and microservices; develop REST and GraphQL APIs,
and learn how to secure, consume, document, and test those APIs and web services.

• Build applications that read and write to relational databases using both the Java Persistence API (JPA)
and SQL.

• Use standard design patterns to make a persistence layer easy to test and integrate with a Spring Boot
application.

• Learn about Git, version control, and best practices for authorization and authentication.

• Use Jenkins to build CI/CD pipeline to deploy code to production.

Java Web Developer 2


Program information

Estimated Time Skill Level

4 months at 10hrs/week* Intermediate

Prerequisites

Learners need intermediate knowledge of Java. Some web development experience is desirable, but not required. Learners
should also be able to: initialize and use primitive Java data types (i.e. float, int, etc), select and use Collections from java.
util.Collections, design and create classes and class methods in Java, create interfaces and subclasses in Java, launch Java
applications from an IDE, and write basic queries in SQL.

Required Hardware/Software

Learners need access to the internet and a 64-bit computer.

*The length of this program is an estimation of total hours the average student may take to complete all required
coursework, including lecture and project time. If you spend about 5-10 hours per week working through the program, you
should finish within the time provided. Actual hours may vary.

Java Web Developer 3


Course 1

Spring Boots Basics


Learn the fundamentals of Java while being introduced to a Spring Boot framework and associated integrations and plugins.

Course Project

Build a Web-Based Personal Storage Application


In this project, learners will use the skills acquired in the first course to build a web-based personal storage
application: SuperDuperDrive! Learners will implement user-facing features like file, note and secure
credential storage with industry-standard, full-stack development tools. Building on Spring Boot as a base,
learners will use Spring MVC and Thymeleaf to build a Java-backed web app. Using H2 as a inmemory
database, learners will store user data with MyBatis, a deadsimple ORM library and secure that data from
unauthorized access with Spring Security. Finally, to round out the development cycle and verify that the
app is feature-complete, they will implement a series of automated user tests with JUnit and Selenium.

• Describe how the Java Application Server facilitates web development

• Identify the role of a Servlet within a Java Application Server.


Lesson 1 • Identify the role of Spring as a Servlet application tool.

Web Development in Java • Add and update project dependencies within a Maven POMfile.

• Choose appropriate starter packs for Spring depending on the application’s


requirements.

Java Web Developer 4


• Set up and configure a working Spring Boot Environment for web development.

• Configure a Spring Boot application within Java using annotations and factory
Lesson 2 methods.

• Identify Spring registered components in Java applications based on Spring


Spring Boot Basics
annotations.
for Web Development
• Annotate code to register custom components with a Spring App.

• Identify and customize essential properties for the Spring Server.

• Design HTML templates with Thymeleaf and populate HTML templates with
Spring’s MVC data model.

• Explain how a controller populates the data model for a given view.
Lesson 3 • Identify the relationship between controller endpoint return values and the
templates that are displayed.
Spring MVC & Thymeleaf
• Identify the role of the model object passed to controller endpoint methods.

• Write variable resolution expressions within a ThymeLeaf template to access


model data.

• Identify mappings between Java objects and SQL tables and leverage those
mappings to connect an application with a data store.

• Explain how ORM leverages similarities between Java data types and SQL data
types to reduce development time and programmer error.

• Write MYBatis SQL template queries using an application’s data model.


Lesson 4 • Explain how the @Mapper annotation functions in the Spring App context as a
component annotation.
Data Persistence & Security
• Securely store user credentials in a database.

• Query user information and identify accessible pages based on that


information.

• Use Spring security to automatically filter web traffic based on that


information.

Java Web Developer 5


• Use Selenium/Webdriver to automatically perform user actions in order to test
the functionality of web pages.

• Define JUnit test classes with the @Test annotation.

• Use the JUnit assertion class to test specific success or failure points.

• Run a suite of JUnit tests from their IDE and interpret the results.
Lesson 5
• Navigate to specific URLs with the Selenium web driver.

Testing • Interact with queried elements from Selenium in the manner of a user to test
that functionality exists as intended.

• Write JUnit tests using these techniques to test individual features of a web
app.

• Organize tests into page objects so that the application structure is mirrored by
the test structure.

Course 2

Web Services & APIs


Explore the differences between web services, APIs, and microservices. Develop REST and GraphQL APIs and learn how to
secure, consume, document, and test those APIs and web services.

Java Web Developer 6


Course Project

Build the Backend System for a Car Website


In this course, the learner will build a backend system for a website of cars. This backend will be composed
of vehicles list services, pricing services, and location services including Vehicles API (a rest API to maintain
vehicles data), Pricing Service (a rest API to retrieve the price of a vehicle), and location API (an HTTP client
to retrieve the location of the vehicle). In the project, learners will use Java APIs and frameworks to integrate
different services using different communication styles. They will write the CRUD operations to store and
retrieve vehicle data and implement an HTTP client to retrieve the address of the vehicle given the latitude
and longitude. Learners will also integrate the clients (Vehicle API) with pricing services to retrieve the
price. Lastly, they will learn to use Swagger to efficiently create documentation for their APIs. During the
development of these steps, the learner will be guided to write unit tests, error handling, logging, and other
best practices.

Lesson 1 • Describe web services and their advantages.

• Describe how web services communicate.


Web Services &
APIs Overview • Explore the differences between web services, APIs, and microservices.

Lesson 2 • Describe the REST architectural style and the importance of data formats.

• Develop a REST API using Spring Boot and incorporate exception handling.
Develope REST APIs with
Spring Boot • Use proper HTTP response codes.

• Describe GraphQL and its advantages over REST.


Lesson 3
• Create a GraphQL schema.
Develop GraphQL APIs with • Develop a GraphQL server and API using Spring Boot.
Spring Boot
• Use GraphQL to execute queries and operations on data.

Java Web Developer 7


Lesson 4 • Describe the Microservices Architecture (MSA).

• Expose a microservice using Spring Boot.


Develop Microservices
with Spring Boot • Register a microservice.

Lesson 5 • Describe Spring Security.

• Explain the differences between authentication and authorization.


Secure API Endpoints with
Spring Security • Incorporate basic authentication practices to secure an API.

Lesson 6 • Consume a REST API.

• Consume a SOAP-based web servicer.


Consume Web Services
& APIs • Fetch and process XML and JSON.

• Describe Swagger, an open-source software framework to design, build,


Lesson 7 document, and consume RESTful web services.

• Add Swagger annotations to model.


Document REST APIs
• Generate API documentation.

Lesson 8 • Describe and explain unit and integration testing.

Test REST APIs • Incorporate unit and integration testing into a REST API.

Java Web Developer 8


Course 3

Data Stores & Persistence


Build applications that read and write to relational databases using both the Java Persistence API (JPA) and SQL. Use standard
design patterns to make the persistence layer easy to test and integrate with a Spring Boot application.

Course Project

Design the Data Model for a SaaS Application


Learners will design and implement the data model for Critter Chronologer, a SaaS application that provides
a scheduling interface for small businesses that take care of animals. This enterprise project will allow
users to create schedules that associate pets, owners and employees with calendar events. Learners will
configure their application to connect to an external database and use both JDBC and Hibernate to persist
changes to it. Basic CRUD operations will be exposed via a REST controller layer so that students can test
their application using Postman.

• Design entities that map Java data types to database structures.

Lesson 1 • Represent complex associations between entities in persistence.

Data in Multitier Architecture • Identify and select inheritance strategies.

• Isolate entity scope through the use of annotations and DTOs.

Java Web Developer 9


• Understand and utilize key concepts in object relational mapping (ORM) such
as Persistence Context and Entity Manager, and learn about the repository
design pattern.

Lesson 2 • Propagate retrievals and persists with the help of lazy loading and cascading.

• Write and execute object queries in Java using JPQL.


Java Persistence API
• Build implementations for your repository methods automatically with Spring
Data JPA.

• Control the execution of queries through transactions.

• Connect Spring Boot to both internal and external data sources.

Lesson 3 • Customize Spring DataSource construction and injection.

Connecting to Data Sources • Use Spring and Hibernate to automatically initialize your data sources.

• Configure unit tests to use different data sources.

• Learn about the differences in data object design when retrieving data with
SQL.

• Initialize data sources with SQL scripts.


Lesson 4 • Use the data access object design pattern.

Persistence Without JPA • Execute SQL queries with JdbcTemplate and automatically map the results to
your data objects.

• Decide when to use SQL and when to use Hibernate, and learn how to combine
them both in the same project.

Java Web Developer 10


Course 4

Security & DevOps


Learn about Git, version control, and best practices for authorization and authentication. Use Jenkins to build a CI/CD pipeline
to deploy code to production.

Course Project

Implement Authorization for an eCommerce Application


In this project, learners will add authorization using Spring Security with OAuth and username/password
combinations to an eCommerce web application created in Spring Boot. Proper security and hashing will
need to be implemented to store this data as well. Learners will identify the right metrics for an effective
analytics environment and use either Splunk or ELK to analyze the metrics. They will also automate the
configuration and deployment of these systems and the application. They will use Jenkins to integrate with
their version control and deploy their application to AWS.

Lesson 1 • Learn the basics of git such as branching, pull requests, and merging.

Git • Describe what version control means.

• Identify the need for security in modern day web applications.


Lesson 2
• Describe best practices for authorization and authentication.
Authorization &
• Implement modern authorization and authentication technologies such as
Authentication
password hashing and JWT.

Java Web Developer 11


• Learn and use testing frameworks such as junit.
Lesson 3
• Describe the concept of code coverage and its importance.
Testing
• Implement negative testing as well as happy path testing.

• Identify important application metrics and log them.


Lesson 4
• Send logs to Splunk.
Loggin & Analytics
• Create visualizations and dashboards in Splunk to display those metrics.

• Describe and explain CI/CD.

• Create a build pipeline using Jenkins.


Lesson 5
• Build a Docker Image.
Jenkins & CI/CD
• Create a CI pipeline for a Docker Image.

• Deploy Docker container in production.

Java Web Developer 12


Meet your instructors.

Peter Zastoupil
Enterprise Developer

Peter Zastoupil is an enterprise developer and technical administrator. He has seven years of
on-the-job experience building features for massive enterprise Java servers, and over four years of
teaching those skills to new developers.

Kesha Williams
Software Engineering Manager at Chick-fil-A

Kesha has over 20 years experience in software development and is a software engineering
manager at Chick-fil-A, routinely leading innovation teams in proving out the use of cloud
services to solve complex business problems. She was recently named an Alexa Champion by
Amazon.

Alex Pritchard
Senior Software Engineer at CPA Global

Alex is a senior software engineer for CPA Global. He is excited to combine his background as
a music educator with more than a decade of enterprise Java experience to help create this
hands-on course about testing and deploying Java applications.

Sareeta Panda
Senior Developer at Walmart eCommerce

Sareeta is a Java enthusiast and senior developer at Walmart eCommerce. She specializes in
enterprise application development with Java and Kafka, NoSQL, Spring security, and CI/CD.
Sareeta has over a decade of experience, spanning recently acquired startups to top Fortune
500 companies.

Java Web Developer 13


Udacity’s learning
experience

Hands-on Projects Quizzes


Open-ended, experiential projects are designed Auto-graded quizzes strengthen comprehension.
to reflect actual workplace challenges. They aren’t Learners can return to lessons at any time during
just multiple choice questions or step-by-step the course to refresh concepts.
guides, but instead require critical thinking.

Knowledge Custom Study Plans


Find answers to your questions with Knowledge, Create a personalized study plan that fits your
our proprietary wiki. Search questions asked by individual needs. Utilize this plan to keep track of
other students, connect with technical mentors, movement toward your overall goal.
and discover how to solve the challenges that
you encounter.

Workspaces Progress Tracker


See your code in action. Check the output and Take advantage of milestone reminders to stay
quality of your code by running it on interactive on schedule and complete your program.
workspaces that are integrated into the platform.

Java Web Developer 14


Our proven approach for building
job-ready digital skills.
Experienced Project Reviewers

Verify skills mastery.


• Personalized project feedback and critique includes line-by-line code review from
skilled practitioners with an average turnaround time of 1.1 hours.

• Project review cycle creates a feedback loop with multiple opportunities for
improvement—until the concept is mastered.

• Project reviewers leverage industry best practices and provide pro tips.

Technical Mentor Support

24/7 support unblocks learning.


• Learning accelerates as skilled mentors identify areas of achievement and potential
for growth.

• Unlimited access to mentors means help arrives when it’s needed most.

• 2 hr or less average question response time assures that skills development stays on track.

Personal Career Services

Empower job-readiness.
• Access to a Github portfolio review that can give you an edge by highlighting your
strengths, and demonstrating your value to employers.*

• Get help optimizing your LinkedIn and establishing your personal brand so your profile
ranks higher in searches by recruiters and hiring managers.

Mentor Network

Highly vetted for effectiveness.


• Mentors must complete a 5-step hiring process to join Udacity’s selective network.

• After passing an objective and situational assessment, mentors must demonstrate


communication and behavioral fit for a mentorship role.

• Mentors work across more than 30 different industries and often complete a Nanodegree
program themselves.

*Applies to select Nanodegree programs only.

Java Web Developer 15


Learn more at
www.udacity.com/online-learning-for-individuals →

12.09.22 | V1.0

You might also like