Skip to content
/ main Public

Overall information about the course; use this repository for general scheduling, syllabus questions, or anything else that doesn't fit into a particular project repository.

Notifications You must be signed in to change notification settings

phoebem/main

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

Creative Explorations in Screen-Based and Physical Computing

Course DGMD E-15, Spring 2014, Harvard University Extension School

Overall information about the course; use this repository for general scheduling, syllabus questions, or anything else that doesn't fit into a particular project repository.


Course Syllabus

You can find a PDF of the syllabus here; it is reproduced below in its entirety. This copy of the syllabus is the canonical one since we may revise it throughout the course.

COURSE DESCRIPTION

This course offers an introduction to the fundamentals of computing and programming through prototyping, exhibiting and critiquing interactive visualizations and physical creations that participants design, build and refine. Through weekly projects students gain extensive experience with the Processing programming language and its various extensions for incorporating rich data sets available on the web, and with the BeagleBoard hardware platform for an introduction to prototyping interactive physical systems. The Processing section of the course serves as conceptual and practical preparation for learning programming languages such as JavaScript and the process behind developing modern, HTML5 web applications. The BeagleBoard section of the course introduces electronics and embedded design for prototyping interactive physical systems incorporating rich sensors and actuators. The physical computing section of the course also covers combining BeagleBoard and Processing sketches to build more sophisticated web applications. Formerly CSCI E-9. Limited Enrollment. 

COURSE PREREQUISITES

General experience with Macintosh, Windows or Linux systems. This course requires a considerable time commitment to problem solving. Prior programming experience, while helpful, is not required. (4 credits)

COURSE STAFF

Bakhtiar Mikhak and Alec Resnick. You can also reach both of us at the course email, [email protected].

COURSE CALENDAR

Class Times: Thursdays beginning January 30, 5:30-7:30 pm. 

Required Sections: Thursdays, 7:40-9:40 pm.  

Final Presentations: Thursday, May 15, 5:30-9:40 pm.

Spring Break: March 16 - March 23, 2014.

COURSE SCHEDULE

This is a project-based course organized as a series of two- and three-week projects.

Introductions (Project 0; due by Week 2, February 6)

Courses and classes feel less like courses and classes if everyone knows each other. Especially since you'll be working in groups later in this course, and because discussion and small group work will figure prominently in class work itself, we'd like for you to introduce yourself to the class (preferably before our first meeting) and no later than the night before our second meeting. We'll be sending out some details about how to do this in the coming weeks.

In the first meeting we plan to provide an overview of the goals and content of the course and introduce some of the tools we plan to use + and discuss the prerequisites of and our expectations for the course.

We'll be sure to get your feet wet immediately with a couple activities and demos introducing you to some of these tools and content, as well.

#####Infrastructure (Project 1, due by Week 3, February 13)

Throughout this course, our canvas will often involve a screen. We're going to be spending most of our time inside of a single page web application. This first project will explore the basic structure and design process which will serve as an overview of the basic technologies we will be relying on in the course (i.e. HTML, CSS, JSON, JavaScript, and Processing).

In Project 1, we'll develop a specification for a single-page web application which will serve as an evolving template for course projects. Not only will this template introduce us to the basic structure, but it will also allow us to design an API for working with the content of your projects, letting us do things later on like build portfolios showcasing your projects.

Presentation (Project 2, due by Week 5, February 27)

But of course, single page web applications are pretty boring if they can't interact with the outside world. In this second project, we'll start incorporating data from external sources into our single-page web application. Using sources like flickr, Yahoo!, and the NYTimes, we'll take their API's and pull their content into projects, learning how to work with images, text, and basic user interactions in Processing.

In Project 2, we'll develop an introductory, data visualization application for exploring some Harvard-centric data, though you won't be limited to this. We will focus on the various techniques in both Processing and HTML/CSS/JavaScript for presenting and interacting with data from external sources and what these technologies can do for making complex datasets accessible.

Interactivity (Project 3, due by Week 8, March 27)

Just as going from a static web page to adding user interactions is a significant step, going from a basic visualization to one with interactive elements requires new techniques and materials. In this project, we'll be extending previous work on presenting data to include map-based and geographic visualizations, adding a greater emphasis on interaction with different data representations, which will in turn call for an introduction to tools for collecting and preparing data for visualization.

In Project 3, we'll design and build installations for Harvard Square locations starting with information about events in Harvard and the broader Cambridge community cultural centers. Whether the Harvard libraries, programs like HGSE and IOP@KSG, the Harvard Information Center at Holyoke, or local courses and events at places like ART & CAE, the focus of the project will be giving passerby interactive, screen-based lenses into the events and resources around them.

Objects (Project 4, due by Week 11, April 17)

There are few domains where abstraction figures as prominently as in software engineering and screen-based design. Much of the effort involved in becoming a more capable builder of digital artifacts involves learning about and mastering new ways of managing complexity and encapsulating information. This project will begin to explore one paradigm for this--'object oriented programming'--in more detail. We'll introduce more general data structures and ways of organizing code with an emphasis on modeling behavior and interactions between computational objects in the application as well as interactions with the users.

Concretely, in Project 4 you'll design a virtual world with its own behavior and dynamics with which users can interact--e.g. one possibility is developing a basic game, but you shouldn't feel limited by that frame. We'll also introduce some of the most basic ingredient for adding physical interactivity, inputs, and outputs to your project, meaning this project will also serve as an introduction to the basics of physical computing.

Physical Prototyping (Project 5, due by Week 13, May 1)

Continuing our development of the basics of physical computing, in this last project we'll make interactive/responsive computational gifts for people we care about, incorporating sensing (e.g. light, sound environmental conditions) and actuation (e.g. light, motion, sound).

Final Project Refinements (due by Week 15, May 15)

We'll continue refinements to our final projects, documenting them and hopefully their use and reception by their intended audiences as part of compiling our final portfolios.

COURSE RESOURCES

We will take advantage of a range of resources (books, websites, development tools, and web application and services) in this course. There are no required books for this course. We however anticipate that you will each find a book or two that you will find to fit your learning style and therefore may want to purchase and keep handy.

Processing
HTML/CSS/JSON/JavaScript
Beagle Board
Development Tools

About

Overall information about the course; use this repository for general scheduling, syllabus questions, or anything else that doesn't fit into a particular project repository.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published