Readings "Passive" learning opportunities

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

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

Module: Introduction to ICS 199

Guided tour of Morea course websites

How to use this website to succeed in ICS 314

Guided tour of the Introduction module

Introducing the introduction.

Introduction to ICS 199

Goals, texts, prerequisites, and more

How to watch screencasts the smart way

There is an art to watching screencasts effectively. Here are some heuristics.

ICS 199 Syllabus

Basic information about the class

Module: Javascript: Basics

Guided tour of the Javascript 1 module

Why, what, how, and when you will learn about Javascript, Phase 1.

7 reasons why Javascript is better than Java and C++

Why you want to learn Javascript (even if you don’t do web app development)

Introduction to JSFiddle

Quick introduction to the JSFiddle Javascript environment

AirBnB Javascript Style Guide

Javascript style guidelines for ICS 314

ES6: for-of, for-in

How to iterate over arrays and objects in ES6

Module: Open Source Software

Guided tour of the open source software module

Why, what, how, and when you will learn about open source software.

Open Source Software

History of open source, licenses, prime directives, how to participate effectively

Understanding Open Source Licensing

Short summary of copyright, copyleft, and the motivation for open source licenses.

Choose a (open source) license

Simple overview of several open sources licenses and their implications.

How to ask questions the smart way

The classic guide to how to participate in the open source community effectively

The Cathedral and the Bazaar

“I anatomize a successful open-source project, fetchmail, that was run as a deliberate test of some surprising theories about software engineering suggested by the history of Linux.”

Module: Ethics in Software Engineering

Guided tour of the ethics module

Overview of the ethics module

What do we mean when we talk about ethics?

Definition of ethics, ethics in software engineering, personal vs. professional ethics

ACM Code of Ethics

This Code identifies a commitment to ethical professional conduct through 24 statements of personal responsibility.

ACM Software Engineering Code of Ethics and Professional Practice

This Code contains eight Principles related to the behavior of and decisions made by professional software engineers.