Columbia Engineering Java Boot Camp

Transcription

Columbia Engineering Java Boot CampCURRICULUM OVERVIEWJAVA BOOT CAMP - FULL-TIMEThe digital revolution has transformed virtually every area of human activity, and you can launch your careerand build up your professional arsenal by learning the latest skills for web development. This Java Boot Campis a full-time, 12-week course that gives you the knowledge and skills for object-oriented programming in Javaand creating data-driven web applications in Java.The program is rigorous and fast-paced. As you expand your skills, you’ll use what you learn on hands-onprojects. By the end of the program, you’ll have an impressive portfolio of applications, an awardof completion from Columbia Engineering, and the opportunity to tap into career development andresume building.Columbia Engineering Java Boot Camp –Powered by Trilogy Education Services, Inc.

IS THE PROGRAM RIGHT FOR YOU?Are you creative, curious, and looking to start your personal journey into thetechnology field? If so—or if any of the following describes your situation—enrolling in our coding boot camp could be a smart career move:You recognize the ever-changing nature of today’s technological economy,and want to keep up with industry changes and gain relevant skillsYou have a foundation of technical skills, but want to get back in touch withthe latest technology developments and invest in your future developmentYou would enjoy a fast-track career with the opportunity to get onsiteexperience at Fortune 500 companies**You want to acquire a new set of technological skills to transition into atechnology-related role with Cognizant****Career opportunities available to qualified graduates who successfully complete the program.Columbia Engineering Java Boot Camp –Powered by Trilogy Education Services, Inc.1

THE SKILLS YOU’LL GAINYou will complete the program with a wide range of in-demand modern, enterpriseJava development skills*, including:JavaQuality Assurance Java 8 Object-oriented principles Java data structures Unit testing Lambdas and streams Mocks and stubsSpring Framework Test drivendevelopmentBuild and Deployment Continuous integration/ Dependency injection Aspect-oriented programming Spring Boot Jenkins Spring MVC Maven Spring Security Pivotal Cloud FoundryRelational DatabasesContinuous deliveryCloud Native Architecture SQL Microservices MySQL REST Prepared statements SOAP Spring JdbcTemplates 12 Factor App Principles JPA PaaS (Pivotal Cloud Foundry)*The materials covered in this course are subject to change due to market demand.Columbia Engineering Java Boot Camp –Powered by Trilogy Education Services, Inc.2

BUILDING ON THE BASICSLearners will take the pathway of full stack web development based on a foundation of objectoriented programming (OOP) in Java. The program focuses on the language and professional,enterprise development structures and concepts including layering, dependency injection, unittesting, and more.Columbia Engineering Java Boot Camp –Powered by Trilogy Education Services, Inc.3

WHAT YOU WILL LEARNBy the time you complete the program, you can expect to be able to: Create and update stories in Jira or Pivotal Tracker Estimate story complexity usingin-memory cache such as Redis story points Participate in an IPM, standup Download, commit and branchsource coding repositories Create builds and pipelines usingJenkins or Concourse Use an IDE such as IntelliJ,Eclipse or STS Build a REST service using SpringBoot and other Spring projects Integrate a service to an RDBMSusing JPA and Hibernate Integrate a service with a messagequeue such as ActiveMQ orRabbitMQColumbia Engineering Java Boot Camp –Configure an application usingSpring Cloud Config Server meeting, sprint close/demo andretrospectiveIntegrate an application with anWrite and run unit tests usingJUnit Test using mocks and stubs Document a REST service usingSwagger Create and run a build using eitherMaven or Gradle Deploy Spring Boot services toTomcat Perform calls to HTTP apps orservices using curl Troubleshoot running servicesusing log files Perform CRUD operations on anRDBMS using SQLPowered by Trilogy Education Services, Inc.4

COURSE STRUCTUREWork is done individually, in pairs and in small groups so that learners gain experience inboth pair programming and as members of a larger project team while still allowing thefaculty to assess individual competency.The program is separated into two units and distinct modules. The two units are ObjectOriented Programming in Java and Data-Driven Web Applications in Java. At the end of theunit, a capstone/summative assessment is assigned which verifies competency on learningobjectives. All assessments must satisfy the grading rubric for the learner to move on to thenext unit. Each unit is subdivided into of a number of modules that contain the following:Practice LabsGroup ActivitiesWeekly, Project-Based AssessmentsWE’RE HERETO HELPAs you move up the learning curve,you’re likely to have questionsaround some of the conceptscovered in class. We’re here tohelp—through in-person and virtualoffice hours, as well as a dedicated#slack channel where you can getassistance from instructors, supportstaff, and your fellow learners. Allwork is done via Github, so you cancreate issues directly on your ownprojects for instructors to assist youin a truly asynchronous fashion.Columbia Engineering Java Boot Camp –Powered by Trilogy Education Services, Inc.5

COURSE CURRICULUM BY MODULEThe Data-Driven Web Applications modules build upon the foundation of object-orientedprogramming and demonstrate how enterprise, full stack applications come together whileutilizing common tools and frameworks such as Spring Boot, Spring MVC, and MySQL. Again,projects, labs, and assessments are completed individually, in pairs, and in small groups andevery module contains assessments. There is both a group and individual capstone to becompleted for the final assessment and certification is conferred upon satisfactory completion.Unit 1 of 2: Object-Oriented Programming in JavaModuleJava Toolsand LanguageConcepts(Week 1)DescriptionWhat You’ll LearnEvery craftsman needs to learn their tools. Weintroduce you to the IntelliJ IDEA integrateddevelopment environment (IDE) and explore howreal applications come together. We also set yourcoding foundation with variables, loops, conditionals,and methods. The module also introduces the Mavenbuild management tool. C reate, debug, and compile Java terminalapplications. W rite simple applications that utilize coreJava types and syntax. U se Maven to compile and run terminalapplications. Basic code push/pull with Git.OOP Basics(Week 2)Data Structures,Collections, andExceptions(Weeks 3)Modular class design is the heart of object-orientedprogramming. We cover interfaces, composition, andinheritance and show you how these concepts areused in modern development practices.In this module we will teach you to use objectoriented principles to separate your code intocohesive classes that are primed for testing andre-use. Design Java classes.Working with large sets of data is essential in all butthe most trivial applications. In this module we willlearn to effectively load, sort, and filter large sets ofdata using Java streams and lambdas. Understand the advantages anddisadvantages of common collectionstructures such as Lists, Arrays, Stacks, &Queues. C ompare and contrast interfaces,composition, and inheritance. I nstantiate and reference common JavaTypes. Load data from the file system. Use streams and lambdas to process data. Capture and gracefully handle applicationerrors without crashing your program. Explain and use basic algorithms used inenterprise development.Columbia Engineering Java Boot Camp –Powered by Trilogy Education Services, Inc.6

COURSE CURRICULUMModuleSpring Core,JUnit, andDevelopmentPatterns(Weeks 4-5)Descriptioncontinued.What You’ll LearnThis module introduces the Spring Framework andJUnit. You will learn to use the Spring dependencyinjection (DI) and aspect-oriented programming(AOP) frameworks to build loosely coupled,extensible, and testable applications followingindustry standard patterns. You will also learn touse the JUnit framework to create unit tests foryour code. U se the Spring DI container and interfacebased code to create loosely coupledapplications. Use JUnit to test code for correctness. Use mocks and stubs in unit testing. U se Spring AOP to implement crosscutting concerns. Understand SDLC and Agile concepts. Use Jira for basic development tasks. Estimate work using story points.Capstone(Week 6)It’s time to bring it all together and demonstratewhat you’ve learned. The capstone project bringstogether all of your hard work and lets you showyour competency at completing a real applicationusing professional tools and techniques. T ake a concept from specification tocompletion.Unit 2 of 2: Data-Driven Web Services in JavaModuleBeginning WebApplications andServices withSpring Boot andSpring MVC(Week 7)DescriptionWhat You’ll LearnThe web is a ubiquitous platform for deliveringapplications to distributed users. This moduleintroduces the popular Spring Boot and Spring MVCframeworks and shows how they are used to buildweb services. Students are also given an overviewof the various frontend frameworks and technologiessuch as Angular, VueJS, React, jQuery, HTML, andCSS. C ompare and contrast the variousfrontend JavaScript frameworks in usetoday. C reate, configure, and leverage SpringBoot to create REST endpoints thatrespond to HTTP GET, POST, PUT, andDELETE requests. R oute incoming requests to controllers forprocessing. Test REST endpoints. o mpare and contrast REST and SOAP webservices. E xpose Java code (in Spring Boot) as aSOAP service. V alidate incoming data requests andrespond to clients with validation errormessages. E xplain caching and integrate with acaching provider.Columbia Engineering Java Boot Camp –Powered by Trilogy Education Services, Inc.7

COURSE CURRICULUMModuleRelationalDatabaseModeling andQuerying(Week 8)Descriptioncontinued.What You’ll LearnRelational databases are the dominant methodfor storage and retrieval of application data. Inthis module we explore how relational modelsare designed, how to create them using the SQLLanguage. Read and explain an ERD. Explain primary keys. Explain foreign keys. C ompare and contrast first, second, andthird normal form. Write insert, select, update, and deleteSQL queries. Write join queries.Data Access inJava(Weeks 9)Now that we understand how databases arestructured and queried, it’s time to connect ourapplications. Build a data access layer using SpringJdbcTemplates. Executing SQL from Java code using SpringJdbcTemplates. Configuring and using SpringJdbcTemplates. Use prepared statements. Explain SQL injection attacks.Advanced WebServices withSpring Boot andSpring MVC(Weeks 10-11)We covered the basics, now it’s time to dive deep. Inthis module we learn how to configure Spring Boot asa data service using REST architecture patterns. Wealso learn to secure our applications using role-basedsecurity and tokenization for authentication andauthorization using Spring Security. Create secure REST endpoints. I dentify and mitigate the most commonsecurity exploits from OWASP. E xplain message queueing and integratewith a queue provider. I ntegrate service layer and data accesslayer components into a service. I ntegrate build and deployment of aservice with Jenkins. Use 12 factor principles in an application. E xplain service registry, circuit breaker,and proxies and how they are used inenterprise architecture. B uild larger service from collection of finegrained services. C onfigure and deploy service using PivotalCloud Foundry.Capstone(Weeks 12)It’s time to bring it all together and demonstratewhat you’ve learned. The capstone project bringstogether all of your hard work and lets you showyour competency at completing a real applicationusing professional tools and techniques.Columbia Engineering Java Boot Camp – Convert a monolithic web application intoa modern 12 factor app based on SpringBoot, microservices, and Cloud Foundry.Powered by Trilogy Education Services, Inc.8

JUnit. You will learn to use the Spring dependency injection (DI) and aspect-oriented programming (AOP) frameworks to build loosely coupled, extensible, and testable applications following industry standard patterns. You will also learn to use the JUnit framework to create unit tests for your code. Use the Spring DI container and interface-