/amman-java-401d7

Primary LanguageJavaMIT LicenseMIT

Code 401: Java Core Syllabus

Course Information

  • Course Level: Code 401
  • 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.

Required Materials

Software

Applications

Accounts

Program Learning Outcomes

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
47 Phase 1
48 MVP
49 Final Polish, Presentation Practice
50 Final Project Presentations