Modules Topics covered in this class

For any module not marked as “Coming Soon”, click on it to go to a page containing details.

ICS 314 PreGame

1. ICS 314 PreGame

A few things you can work on to get a head start in ICS 314.

Course Preparation Prerequisites Development Tools JavaScript HTML

Introduction

2. Introduction

Overview of ICS 314, and some simple initial tasks to get oriented and ready for the course.

Course Introduction Professional Development

Professional Persona

3. Professional Persona

Concepts of a professional persona and initial steps to build and improve your online professional presence.

Professional Development Communication Portfolio Career Skills Technical Writing

Typescript 1: Basics

4. Typescript 1: Basics

Basic Typescript coding: variables, expressions, conditionals, loops, functions, arrays, objects.

Programming JavaScript TypeScript

Open Source Software

5. Open Source Software

How to participate effectively in open source software development.

Open Source Collaboration Community Technical Writing

Typescript 2: Object orientation

6. Typescript 2: Object orientation

Object orientation in modern Typescript: using the class construct.

Programming JavaScript TypeScript Object-Oriented Programming

Configuration management

7. Configuration management

Concepts of configuration management and version control, and how they are implemented using git and GitHub.

Version Control Git GitHub Development Tools

Typescript 3: Functional programming

8. Typescript 3: Functional programming

Use the Typescript Array functional programming constructs: map, reduce, filter, forEach, some, etc.

Programming JavaScript TypeScript Functional Programming

Development Environments

9. Development Environments

Introduction to Integrated Development Environments and the VSCode IDE.

Development Tools IDE VSCode

QA Part 1: Coding standards

10. QA Part 1: Coding standards

Incorporate coding standards and ESLint into your use of Javascript, VSCode, and GitHub.

Quality Assurance Coding Standards ESLint Best Practices

UI Design (Basics)

11. UI Design (Basics)

Learn to design basic web pages using HTML and CSS.

Web Development Frontend HTML CSS UI/UX

UI Design (Frameworks)

12. UI Design (Frameworks)

Bootstrap 5 is a CSS framework for building cross-browser, responsive user interfaces.

Web Development Frontend UI/UX Bootstrap CSS

UI Design (React)

13. UI Design (React)

React provides a component-based UI framework in Javascript/Typescript.

Web Development Frontend UI/UX React JavaScript

Application Design (Nextjs), Part 1

14. Application Design (Nextjs), Part 1

Overview of the Nextjs web application framework.

Web Development Frontend React Next.js Full Stack

Databases (PostgreSQL)

15. Databases (PostgreSQL)

Introduction to building PostgreSQL SQL databases.

Database PostgreSQL SQL Backend Data Management

Application Design (Nextjs), Part 2

16. Application Design (Nextjs), Part 2

Explore three simple templates for multi-user, multi-role, interactive web applications using Nextjs, PostgreSQL, React, Bootstrap 5, VSCode, and GitHub.

Web Development Frontend React NextJS Full Stack Database

Application Design (Nextjs), Part 3

17. Application Design (Nextjs), Part 3

Learn how to build “Digits”, a multi-user, multi-role, interactive web application using Next.js, PostgreSQL, React, Bootstrap 5, VSCode, and GitHub.

Web Development Frontend React NextJS Full Stack Database PostgreSQL

Unit Testing

18. Unit Testing

Unit testing is a fundamental practice in software development where individual units of code (typically functions, methods, or classes) are tested in isolation to verify they work as expected. This module covers unit testing principles and practical implementation using Jest, a popular testing framework for TypeScript and JavaScript applications.

Programming JavaScript TypeScript Unit Testing Jest

Agile Project Management

19. Agile Project Management

Agile process models, team coordination, planning, and issue management.

Project Management Agile IDPM GitHub Team Collaboration Planning

Deployment

20. Deployment

Deployment, scalability, testing, documentation.

Deployment Vercel Next.js PostgreSQL

Testing

21. Testing

Designing and implementing simple acceptance tests using TestCafe.

Testing Playwright End-to-End Testing Test Pyramid Quality Assurance Automation

Design Patterns

22. Design Patterns

Learn what design patterns are in general, as well as specific examples from your work in this class.

Design Patterns Software Architecture React JavaScript

Ethics in Software Engineering

23. Ethics in Software Engineering

Ethics: A group of moral principles or values that define or direct us to the right choice.

Professional Development Ethics Social Responsibility

Final Project

24. Final Project

Demonstrate your ability to integrate all the material in this course.

Final Project Team Collaboration Full Stack Development Project Portfolio