Tangible Computing
2. The Course, aka CMPUT 296/297, CMPUT 114/115




2.1 Introduction to the Scaled Up Pilot

In 2011-2012 we offerred CMPUT 296/297 as an intro course for Honors Computing Science students at the University of Alberta. It was a pilot with only 18 students. Despite the chaos normally associated with a new course, the results were very satisfying, at least to us the professors. We observed that students enjoyed the course more, and learned more, in the studio-style setting then in the traditional lecture with separate labs style.

As a result we scaled up to offering 2 sections in 2012-2013, with two distinct demographics. We continue to have the section for 1st year Honors Computing Science students, but have broadened it to include Specialization degree students. We also have a section consisting of most of the Computer Engineers in second year. The main distinguisghing feature between the two sections is the additional year of university experience for the Engineering students. The range of computing experience seems to be equally broad across both sections. No particular section appears to have an advantage with respect to technical background. Both have novice and experienced programmers.

In the future, we will be giving the course a permanent number, CMPUT 274/275 with these tentative course descriptions:
CMPUT 274 - Intro to Tangible Computing 1 *3 (fi 6) (3-3-0) This is part 1 of a 2 sequence intensive problem-based introduction to Computing Science. In part 1, the key concepts of procedural programming, basic algorithm design and analysis (lists, queues, trees, sorting, searching), and reactive interfacing with the world are learned by solving a series of problems using the Arduino platform and C/C++. The use of a resource-limited processor with no operating system opens up the inner workings of computing. Development is done using the Linux operating system with the exposed compiler tool chain.
Pre-requisites: No specific programming experience or discrete-math background is assumed. Math 30 or 30-1.

Note: this course is taught in studio-style, where lectures and labs are blended into 3 hour sessions, twice a week. Enrollment is limited by the capacity of the combined lecture/lab facilities.

CMPUT 275 - Intro to Tangible Computing 2 *3 (fi 6) (3-3-0) This is part 2 of a 2 sequence intensive introduction to Computing Science. Part 2 expands to add object-oriented programming, a higher level language (Python), and more complex algorithms and data structures such as shortest paths in graphs; caching, memoization, and dynamic programming; client-server style computing; recursion; and limited distributed of computation tasks between the Arduino platform and the traditional desktop in order to explore design tradeoffs.
Pre-requisite: CMPUT 274

Note: this course is taught in studio-style, where lectures and labs are blended into 3 hour sessions, twice a week. Enrollment is limited by the capacity of the combined lecture/lab facilities.


2.2 IMPORTANT NOTE TO THE STUDENT

You will only learn this material by playing with it. Don't just read, it will not help. Try things. Make sure you are progamming while reading. Just because you have done it once does not mean you understand it. Go back and do it better. The key to succeeding in computing is to have this read it, try it, do it again until you get it approach.

2.3 The Story So Far - 2012-09-24

We have convered an astounding number of concepts in the first 2 and a half weeks of class. The 4 Arduino Intro Labs introduce you to key computing concepts, along with important hardware ideas. We didn't expect everyone to complete them. Their purpose was to get used to basic programming ideas, modifying existing code, and generally becoming familiar with the Arduino world. It pays to revsit these labs later to see how you would improve your approach to the problems.

The labs have been split off into a separate document: Arduino Intro Labs for Tangible Computing

We also introduced you to the notion of a virtual machine, and the one in particular that we have assembled for this course.

More summary to follow ...


2. The Course, aka CMPUT 296/297, CMPUT 114/115
Tangible Computing / Version 3.20 2013-03-25