Certificate: Advanced Software Development In Java
Course Prerequisites
Code 102
Code 201
Code 301
Students with previous relevant or equivalent experience can test out of this requirement in their application.
Course Description
Students will learn to write clean, crystal-clear, well-tested, advanced Java code using industry standard software engineering patterns while building servers with Spring MVC and mobile apps with Android.
The course focuses on fundamental computer science concepts such as object-oriented programming, advanced data structures and algorithms, Big O asymptotic analysis, and the structure of statically typed languages.
Student Learning Outcomes
Upon satisfactory completion of this course, a student should be able to:
Describe and Define
Fundamentals of Java
Object-Oriented Programming
Functional Programming
REST
GraphQL
Relational Databases
ORMs
Spring MVC
Authentication and Authorization
AWS Cognito
AWS S3
AWS DynamoDB
Mobile development for Android devices
Execute
Domain modeling of real-world concepts using object-oriented programming.
Development of authenticated REST API.
Test Driven Development.
Design, develop and deploy a mobile application using Android Studio.
Publish an app to the Google Play Store.
Deploy and use AWS Services using AWS Amplify.
Course Schedule
Module 1
Class #
Topic
01
Primitives, Strings, Printing, Loops, Arrays, and Functions
02
Gradle, IntelliJ, ArrayLists, Libraries, and Unit Testing
03
Maps/Sets, Packages, Access Modifiers, File I/O, and Exceptions
04
Object Oriented Programming, Domain Modeling, Static Properties/Functions, and Bitmaps
05
Linked Lists, Big O, Resume Workshop
Module 2
Class #
Topic
06
Inheritance and Type Casting
07
Interfaces and Other Class Relationships
08
JSON/Gson and External Libraries
09
Java and The Web Request-Response Cycle
10
Stacks, Queues, Personal Pitch Workshop
Module 3
Class #
Topic
11
Intro to Spring MVC, Spring Initializr, Styling, Thymeleaf, and Deploying to a cloud service provider
12
Spring and RESTful Routing, Postgres, Hibernate, and JPA
13
One-To-Many/Many-To-One Relationships, and Testing With JUnit and Hamcrest
14
Authentication With Bcrypt
15
Trees, Job Search Workshop
Module 4
Class #
Topic
16
Authentication With Spring Security
17
Authorization With Spring Security and Error Pages
18
SQL Injection, XSS, and Many-To-Many Relationships
19
Stream Processing Using Collections And Lambdas
20
Project Kickoffs
Module 5 - Midterm Project
Class #
Deliverables
21
Wireframes, User Stories, Architecture Plan, DevOps, Documentation, Agreements
22
Phase 1
23
MVP
24
Final Polish, Presentation Practice
25
Final Project Presentations
Module 6
Class #
Topic
26
Basic Android UI, Activities, Layouts, and Event Handlers
27
SharedPreferences and Intents
28
RecyclerViews
29
Local Persistance With Room
30
Hash Tables, Behavioral Interviewing
Module 7
Class #
Topic
31
Espresso Integration Testing, AWS, AWS Amplify, Day 1 Of GraphQL and DynamoDb
32
Day 2 Of GraphQL and DynamoDb
33
One-To-Many and Many-To-One Relationships In DynamoDb
34
Publishing To The Google Play Store
35
Graphs, Technical Interviewing
Module 8
Class #
Topic
36
Authentication With Cognito
37
S3 Storage
38
Implicit Intents To And From Your Application
39
Location
40
Personal Presentation
Module 9
Class #
Topic
41
Analytics And Text-To-Speech
42
Monetization And AdMob Ads
43
Open Source Contribution
44
Ethics
45
Project Kickoffs
Module 10 - Capstone Project
Class #
Deliverables
46
Wireframes, User Stories, Architecture Plan, DevOps, Documentation, Agreements