Course Code: typescriptbspk
Duration: 20 hours
Overview:

2.5 days (20 hours total) including breaks Day 1 & Day 2: 8 hours each Day 3: 4 hours

Course Outline:

Day 1: Foundations in HTML, CSS, JavaScript, Git, and TypeScript
 

Session 1: HTML5, CSS, and JavaScript
- Objective: Establish foundational knowledge in HTML, CSS, and JavaScript.
- Topics:
     o Key elements in HTML5 and CSS.
     o Core JavaScript syntax and concepts.
     o Brief hands-on coding exercises.
 

Session 2: Introduction to Front-End and Back-End Architecture
- Objective: Provide a high-level overview of front-end and back-end roles.
- Topics:
     o Client-server architecture and communication.
     o Front-end frameworks vs. back-end services.
     o RESTful APIs and their role in applications.
 

Session 3: Git and Version Control Basics
- Objective: Familiarize the team with Git for project version control.
- Topics:
     o Setting up Git locally and creating repositories.
     o Core commands: add, commit, push, pull, branching.
     o Introduction to using Git with Bitbucket/TFS.
     o Hands-on exercises to practice Git basics.
 

Session 4: TypeScript Fundamentals and Setup
- Objective: Introduce TypeScript, emphasizing benefits and installation.
- Topics:
     o What is TypeScript, and why use it?
     o Setting up a TypeScript environment and configuring tsconfig.json.
     o Hands-on practice with initial TypeScript setup.


Day 2: In-Depth TypeScript Training
 

Session 1: Introduction to TypeScript and Project Setup
- Objective: Kick off the day with an introduction and environment preparation.
- Topics:
     o Brief overview of TypeScript essentials.
     o Installing TypeScript and setting up a new project.
     o Project structure and configuration.
 

Session 2: Typing, Variables, and Functions
- Objective: Understand and use TypeScript’s type system.
- Topics:
     o Variables with basic and advanced types.
     o Type inference, type annotations, and function types.
     o Hands-on: Practice defining types and using functions in TypeScript.
 

Session 3: Working with Classes and Interfaces
- Objective: Explore TypeScript’s object-oriented features.
- Topics:
     o Classes, interfaces, and inheritance.
     o Using interfaces for type contracts.
     o Hands-on: Building classes and implementing interfaces.
 

Session 4: Organizing Code with Namespaces and Modules
- Objective: Learn techniques for structuring code effectively.
- Topics:
     o Namespaces for logical grouping.
     o Modules for code reuse, imports, and exports.
     o Hands-on: Applying modular organization to the project.
 

Session 5: Compiling, Testing, and Running TypeScript
- Objective: Compile, test, and execute TypeScript code.
- Topics:
     o Transpiling TypeScript to JavaScript.
     o Simple testing practices.
     o Running and verifying code execution.
 

Session 6: Debugging TypeScript
- Objective: Develop debugging skills in TypeScript.
- Topics:
     o Setting up TypeScript debugging in Visual Studio Code.
     o Practical debugging techniques.
     o Hands-on debugging exercises.
 

Session 7: Launching Your Application
- Objective: Prepare the TypeScript project for deployment.
- Topics:
     o Final steps for project launch.
     o Considerations for deployment environments.
 

Day 3 (half day): Bitbucket for Collaboration and Project Management 


Session 8: Bitbucket for Collaboration and Project Management
- Topics:
     o Connecting Bitbucket to Visual Studio Code: Initial setup and integration.
     o Working with Repositories: Creating and managing repositories directly in Bitbucket.
     o Collaboration through Pull Requests: How to create and manage pull requests, assign reviewers, and handle approvals.
     o Branching Strategies: Using feature branches, best practices, and branch protection.
     o Code Reviews and Merging: Conducting code reviews, merging branches, and resolving conflicts within Bitbucket.
     o Hands-On Exercise: Create a new repository, make a pull request, review, and merge changes to simulate a real project workflow.