Experiential Learning "Active" learning opportunities

This page collects together all of the “experiences” associated with individual modules.

In this site, experiences represent “active” learning opportunities, as opposed to readings, which represent “passive” learning opportunities. In many courses, readings and experiences together constitute the “assignments”.

Module: ICS 314 PreGame

Laptop requirements

The hardware you need to succeed in software engineering

Introduction to the command line

Learn how to use the command line.

Introduction to HTML and CSS

Get familiar with HTML and CSS

Introduction to Javascript And Typescript

Get some initial familiarity with Javascript and Typescript

Introduction to VSCode

Get some initial familiarity with VSCode

Join the ICS 314 Discord

Get comfortable with the class communication system

Module: Introduction

E00: Learn the command line

Learn how to use the command line.

E01: Environment configuration

Learn how to configure your development environment.

E02: Introduce yourself

Get started with the ICS 314 Discord server

E03: Create 3 SMART Goals for this class

Create personal goals for this class

Module: Professional Persona

E04: Experience LinkedIn

Learn how to join LinkedIn and set up your profile.

E05: Experience hawaii.slack.com

Learn how to join the Hawaii Slack workspace and participate in discussions.

E06: Experience a professional portfolio

Learn how to design and implement your professional portfolio.

Module: Typescript 1: Basics

E07a: Intro to Javascript (FreeCodeCamp)

Basic syntax: functions, loops, if-then-else, arrays, objects

E07b: Intro to Typescript (FreeCodeCamp)

Basic Typescript typing syntax

E08: Project Euler Problem 1

Solve the first Project Euler problem

E09: isUnique (CTCI, #1)

Solve the first CTCI problem

E10: Reflect on Typescript

Write a technical essay summarizing your learning about Typescript.

Module: Open Source Software

E11: Reflect on smart questions

Use Stack Overflow to find smart and not-smart questions

Module: Typescript 2: Object orientation

E12: Jamba Juice 1

Use classes to represent a Jamba Juice Menu

E13: Jamba Juice 2

Extend your Jamba Juice system

E14: Jamba Juice 3

Extend your Jamba Juice system to represent stock and a store.

Module: Configuration management

Experience the GitHub Student Developer Pack

Sign up for free developer tools and private repos

E16: Experience Local Portfolio Management

Use git to manage your professional portfolio locally

Module: Typescript 3: Functional programming

Functional programming warmup

Play around with functional programming

E18: Experience Functional Programming (Part 1)

Functional programming using Array functions

E19: Experience Functional Programming (Part 2)

Continue to explore functional programming

E20: Experience Functional Programming (Part 3)

Yet more functional programming

Module: Development Environments

E21: Install VSCode

Install and configure VSCode for this class

E23: Hello Typescript

Create your first Typescript project in Visual Studio Code

Module: QA Part 1: Coding standards

E24: Improve code quality using ESLint in VSCode

Use ESLint in VSCode with our coding standards

E25: Fix bad Typescript

Fix some sample Typescript that violates our coding standards

E26: Five problems every software engineer should be able to solve (Part 1)

Solve some simple software engineering interview problems

E27: Five problems every software engineer should be able to solve (Part 2)

Solve some simple software engineering interview problems

E28: Reflect on Coding Standards

Write a technical essay summarizing your learning about Coding Standards.

Module: UI Design (Basics)

E29: FreeCodeCamp HTML5 and CSS

Learn about HTML and CSS using FreeCodeCamp

E30: BrowserHistory1

Develop a web page using basic HTML.

E31: BrowserHistory2

Develop a web page using basic CSS and Google Web Fonts.

E32: BrowserHistory3

Develop a funky multi-column web page with a navbar.

Module: UI Design (Frameworks)

E34: BrowserHistory with Bootstrap 5

Make life wonderful with Bootstrap 5

E35: Island Snow with Bootstrap 5

Rebuild the Island Snow home page with Bootstrap 5

E36: Your Choice with Bootstrap 5

Rebuild a site of your choosing with Bootstrap 5

E37: Reflect on UI Frameworks

Write a technical essay summarizing your experience doing the UI Frameworks practice WODs.

Module: UI Design (React)

E38: React Quick Start Tutorial

Work through the React Quick Start Tutorial

E38A: React Foundations Tutorial

Work through the React Foundations Tutorial

E39: React Tic-Tac-Toe Tutorial

Work through the React Tic Tac Toe Tutorial

E40: React Island Snow Tutorial

Work through the React Island Snow Tutorial

XC: Your Choice in React

Check your knowledge of Bootstrap 5 and React

Module: Databases (PostgreSQL)

E41: Install pgAdmin

Install pgAdmin and connect to your PostgreSQL server

E42: PostgreSQL: Getting Started

Follow the PostgreSQL Getting Started guide

E43: Prisma (ORM): Getting Started

Follow the Prisma Start from scratch relational databases guide

Module: Application Design (Nextjs), Part 1

E44: Nextjs Hello World

Create a repo, put a Nextjs app in there, see it in VSCode.

E45: Nextjs Tutorial

Work through the Nextjs Tutorial

E46: Island Snow in Nextjs

Implement the Island Snow Mockup using Nextjs

XC: Your Choice in Nextjs

Check your knowledge of Nextjs, Bootstrap 5, and React

Module: Agile Project Management

E55: Team Bonding

Learn about your team members

E56: Create a GitHub organization and home page

Form an organization for your final project

E57: Experience Issue Driven Project Management

Set up your first milestone plan for this project.

E58: Experience a team presentation

Present your team and project to the class

Module: Ethics in Software Engineering

What are the professional codes of software engineering ethics?

How do professional codes help us to be ethical in our working lives?

Doing harm as a software engineer

What kinds of harm can software engineers cause? What kinds can they prevent?

Doing good as a software engineer

How can software engineers contribute to the good life for others?

To whom are software engineers obligated?

Who is ‘the public’ that deserves an engineer’s professional concern?

Where do ethical obligations come from?

Why do software engineers have ethical obligations to the public at all?

How can software engineers act ethically?

How can software engineers live up to their ethical obligations, both professionally and in their private lives?

Case Study: Harrassment

Explore ethical implications of online harrassment for software engineers

Case Study: Privacy

Explore ethical implications of privacy for software engineers

Case Study: Autonomous Cars

Explore ethical implications of self-driving vehicles

Case Study: The code I'm still ashamed of

Explore ethical implications of blindly following customer requirements

Case Study: Facebook Whistleblower

Explore ethical implications of Facebook’s behavior as revealed by a whistleblower

Case Study: The University of Minnesota is banned from Linux

Explore ethical implications of UMN security research on the Linux kernel

Module: Design Patterns

E63: Reflect on Design Patterns

Write a technical essay summarizing your learning about design patterns

Module: Final Project

Final Project: Milestone 1

Set up the team, create initial issues, build M1

Final Project: Milestone 2

Continue managing the project and implementing functionality

Final Project: Milestone 3

Potentially finish the project?

Reflect on Software Engineering

Write a technical essay summarizing your learning about Software Engineering.

Final Exam

Update your portfolio with projects and experiences from this class

Module: HACC

XC: Experience HACC Kickoff

Attend the HACC Kickoff Event

XC: Present your app at HACC

Attend the HACC Judging and Awards ceremony