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: 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

Module: Professional Persona

E03: Experience LinkedIn

Learn how to join LinkedIn and set up your profile.

E04: Experience hawaii.slack.com

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

E05: Experience a professional portfolio

Learn how to design and implement your professional portfolio.

Module: Javascript 1: Basics

E06: Intro to Javascript (FreeCodeCamp)

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

E07: Project Euler Problem 1

Solve the first Project Euler problem

E08: isUnique (CTCI, #1)

Solve the first CTCI problem

E09: Reflect on Javascript 1

Write a technical essay summarizing your learning about Javascript.

Module: Open Source Software

E11: Reflect on smart questions

Use Stack Overflow to find smart and not-smart questions

Module: Javascript 2: Object orientation

E12: Jamba Juice 1

Use classes to represent a Jamba Juice Menu

E13: Jamba Juice 2

Extend your Java Juice system

E14: Jamba Juice 3

Extend your Java 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: Javascript 3: Functional programming

Functional programming warmup

Play around with functions using Underscore

E18: Experience Functional Programming (Part 1)

Functional programming using Underscore

E19: Experience Functional Programming (Part 2)

Continue to explore functional programming using Underscore

E20: Experience Functional Programming (Part 3)

Yet more functional programming using Underscore

Module: Development Environments

E21: Install IntelliJ IDEA

Install and configure IntelliJ IDEA for this class

E22: IntelliJ Flash Card Game

Use flash cards to learn about IntelliJ Idea features

E23: Hello Javascript

Create your first Javascript project in IntelliJ IDEA

Module: QA Part 1: Coding standards

E24: Improve code quality using ESLint in IntelliJ

Use ESLint in IntelliJ with our coding standards

E25: Fix bad Javascript

Fix some sample Javascript 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.

E28-613: Reflect on Software Engineering at Google

Write a technical essay reviewing ‘Software Engineering at Google’.

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: RadGrad

E29.1: Provide pre-RadGrad Feedback

Help us understand you better prior to your RadGrad journey

E29.2: Experience the RadGrad New Student Tutorial

Get started with a step-by-step introduction to RadGrad

E29.3: Reflect on RadGrad

Write a technical essay summarizing your experience with RadGrad

Module: UI Design (Frameworks)

E34: BrowserHistory with Semantic UI

Make life wonderful with Semantic UI

E35: Island Snow with Semantic UI

Rebuild the Island Snow home page with Semantic UI

E36: Your Choice with Semantic UI

Rebuild a site of your choosing with Semantic UI

E37: Reflect on UI Frameworks

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

Experience the Semantic UI course at PluralSight

Get acquainted with Semantic UI using the PluralSight online tutorial.

Module: UI Design (React)

E38: React Quick Start Tutorial

Work through the React Quick Start 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 Semantic UI and React

Module: Databases (MongoDB)

E41: Experience the MongoDB Shell

Bring up the MongoDB shell, execute some commands.

E42: Experience Meteor Mongo

Gain experience with server and client side Mongo using Meteor.

E43: Experience Simple Schema

Gain experience with the Simple Schema package for Mongo.

Module: Application Design (Meteor), Part 1

E44: Meteor Hello World

Create a repo, put a Meteor app in there, see it in IntelliJ.

E45: Meteor React Tutorial

Work through the Meteor React Tutorial

E46: Experience Island Snow in Meteor

Implement the Island Snow Mockup using Meteor

XC: Your Choice in Meteor

Check your knowledge of Meteor, Semantic UI, and React

Module: Application Design (Meteor), Part 2

Enable Meteor plugins

Install Meteor plugins into IntelliJ and Chrome Developer Tools

E48A: meteor-application-template-react

Install meteor-application-template, play around with it.

E48B: meteor-example-form-react

Understand how to create forms in Meteor and React.

E48C: Bowfolios

Understand the Bowfolios example application.

Module: Application Design (Meteor), Part 3

E49: Digits, Part 1

Create Landing page mockup

E50: Digits, Part 2

Create List Contacts page mockup

E51: Digits, Part 3

Create Contact collection

E52: Digits, Part 4

Create AddContact and EditContact pages

E53: Digits, Part 5

Create Notes

E54: Digits, Part 6

Clean up and write simple documentation

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: Deployment

E59: Learn to deploy a Meteor app

Deploy meteor-application-template-react to Digital Ocean

E60: Deploy your final project to Digital Ocean

Deploy your final project to Digital Ocean

E60-XC: Set up a domain name and HTTPS

Give your final project a cool URL and increase security

Module: Testing

E61: Experience testing meteor-application-template-react

Write an acceptance test for our template

E62: Experience testing your final project

Write acceptance tests for your final project

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.

Reflect on your 613 project as research

Write a technical essay describing how you could develop your final project as a research proejct.

Final Exam

Update your portfolio with projects and experiences from this class