Class log
Note: “codebook” entries below are verbatim pasting of all of the code we wrote in class. It’s possible they may not compile (i.e. may have errors) if we left things unresolved, or were writing pseudocode, etc.
- Monday, Aug. 25th: Intro
- Wednesday, Aug. 27th: Diving in
- Wednesday, Sep. 3rd: Asynch homework Q&A, Project 1 intro
- Monday, Sep. 8th: Project 1 ideation and work time
- Wednesday, Sep. 10th: Technical notes; Project 1 work time
- Monday, Sep. 15th: Project 1 work time
- Wednesday, Sep. 17th: Project 1 presentations
- Monday, Sep. 22nd: IDeATe lasercutter lesson
- Wednesday, Sep. 24th: First week of Domain-specific Skill Building
- Monday, Sep. 26th: Domain-specific skill building 1b
- Wednesday, Oct. 1st: Domain-specific skill building 2a
- Monday, Oct. 6th: Domain-specific skill building 2b
- Wednesday, Oct. 8th: Fun day and Project 2 intro
- Monday, Oct 20th: Project 2 ideation review
- Wednesday, Oct 22nd: Project 2 peer feedback, work time
Monday, Aug. 25th: Intro
- Welcome to class!
- Quick introductions: students in random pairs each answer a few questions about each other:
- Their name and pronouns
- What they’re studying and what year they’re in
- What brings them to this class
- Something fun/interesting/exciting/great/awful they did over summer break
- Review course Canvas site briefly
- Review main course site (the one you’re reading this on) briefly, going over the various sections listed in the navigation bar on the left
- Review Gantt chart of major course flow across the semester
- Quick IDeATe walking tour
- Phys Comp Lab tour. Room notes:
- Food and nonwater drink must be consumed in the Zone of Shame and are not allowed at tables
- Please use all resources within reason!
- Please use the “Name Coach” feature on Canvas today or tomorrow
- Strong recommendation: sign up for the university fire extinguisher training which is the hardest part of the process to gain access to IDeATe’s laser cutters. Link to relevant Bioraft (training system) page. There are two IDeATe-specific trainings:
- Tuesday, Sep. 9th, 3:30–4:30pm, room A4
- Wednesday, Sep. 10th, 10:00–11:00am, room A10A (Media Lab)
- Homework 1 assigned, due Wednesday 8/27
- Handing out beginning of course kit—each student gets an Arduino Uno R3 and USB cable
Wednesday, Aug. 27th: Diving in
- Reviewing asynch discussion board homework questions
- Syllabus review (as of this writing, 90% of you have read it carefully, which is awesome!)
- Weekly Feedback assignments introduction
- Weekly Feedback #1 is posted and due on Friday at 5pm
- Previous-semester projects review (this was part of Homework 1)
- Today’s music, for those who are interested: from the group “Selva de Mar,” downloaded (legally) from the Free Music Archive
- Introducing the ioRef cards and associated resources
- Lesson on using ioRef cards to diagram data flow through a system
- Drawing the equivalent diagram using the customized diagrams.net interface, accessible at https://draw.ioref.org
- Teams discuss and draw assigned devices: microwave, projector, radio-controlled toy car, refrigerator, old-school (wired) telephone
- Reminder to sign up for a fire extinguisher use training if you haven’t already. IDeATe has secret (unlisted) ones you can just show up for, no advance signup needed, on:
- Tuesday, Sep. 9th, 3:30–4:30pm, room A4
- Wednesday, Sep. 10th, 10:00–11:00am, room A10A (Media Lab)
- Handing out course kit. Everybody gets:
- 1 6 qt. plastic tub with name tag (label your tub!)
- Inputs
- 1 CdS (cadmium sulfide) photoresistor
- 1 HC-SR04 ultrasonic ranger
- 1 10kΩ potentiometer
- 1 tactile pushbutton
- Outputs
- 3 LEDs (any colors you like)
- 1 hobby servo motor
- Connectors
- 1 breadboard
- ~10 male–male jumper wires, including at least two red and two black ones
- Electronics components
- 3 270Ω resistors
- 1 5.6kΩ (5,600Ω) resistor
- 1 10kΩ (10,000Ω) resistor
Wednesday, Sep. 3rd: Asynch homework Q&A, Project 1 intro
- I haven’t yet graded your Homework 1 so: cookies next class. `
- Reviewing asynch discussion board homework questions
- Reading resistor color codes
- One reference image that works well: https://www.te.com/content/dam/te-com/images/corporate/marketing/global/infographics/resistor-color-code-bands-3-4-1024.png
- But there are many of these out there—maybe you can even design your own!
- Wiring buttons with
INPUT_PULLUP
mode - Data types in
C
bool
:true
orfalse
int
: whole number in range –32,768 to 32,767unsigned int
: the same number of values asint
, but starting at 0, so: range is 0 to 65,535long
: whole number in range approximately –2.1 billion to 2.1 billionunsigned long
: the same number of values aslong
, but starting at 0, so: range is 0 to about 4.3 billionfloat
: “floating point” number, meaning something with a decimal in it like 1.543 or –10493.25, but with limits (afloat
has 6 or 7 digits of precision, so it wouldn’t store 9872.19886757275 without truncating it). Range is about –3.4 × 1038 to 3.4 × 1038char
: short for “character,” things likea
,Q
,?
, or even8
(as a character, not the value 8)String
: a “string” of characters put together, like"Abracadabra!" she yelled.
, orq
(yes, aString
can be just one character long, confusingly), or735
—though it looks like a number, it’s aString
so it has no numerical value- Read lots more details at this section of the main Arduino reference page
- Project 1 introduced
- Demo sample project shown in class
- Schematic drawing using draw.ioref.org
- Schematics aren’t the same as functional block diagrams
- They show every wired connection
- Use ground and power nets to reduce clutter!
- Sample software sketch introduced, including:
- Opening comment block explaining the software’s purpose and including a pin mapping
- Declaration of global variables
- Four part
loop
with named functions:- Read inputs
- Make decisions
- Drive outputs
- Report back to the user
- Groups introduced (posted as announcement in Canvas)
- Ideation is due Monday 9/8 at the start of class
Monday, Sep. 8th: Project 1 ideation and work time
* Team meetings with Zach to go over Project 1 ideation
* Reminder: two IDeATe-specific, no-sign-up-needed upcoming fire safety trainings:
- Tuesday, Sep. 9th, 2:30–3:30pm, room A4
- Wednesday, Sep. 10th, 10:00–11:00am, room A10A (Media Lab)
Wednesday, Sep. 10th: Technical notes; Project 1 work time
- I’ve got a little throat thing going on, hence the mask.
- I’m sorry I got the fire safety training time wrong yesterday!! Totally my fault, I mistyped the start time. If you missed the IDeATe-specific trainings, you can sign up for the general university-wide trainings via Bioraft here: https://cmu.bioraft.com/node/284572/sessions
- Reminder about project 1: each team member can share all design (software, electrical, and mechanical) with each other; but remember you each need to build your own physical iteration of the device
- Pointing out particularly useful parts/materials for the project:
- Project 1 boards in class cubbies
- 16 x 2 I²C LCD displays in “Output” section, ioRef part #0628 (female–male jumpers are useful for these)
- Soldering parts in “Connectors” section
- Soldering instructional videos are availble on Canvas (same video series as you watched for the intro learning sequence)
- Unit building and unit testing
- Start with small, simple pieces and get them into a “known working” state
- Then, begin combining them into bigger “units” once you trust they’re working correctly
- Demoed in block-diagram form via this drawing
- “Slow is fast”—if you take your time and do these things carefully as you proceed, you may well save lots of sadness later on:
- Unit test as you go, keeping your eye on the big picture
- Choose good variable names
- Wire things with the correct colors (red for power, black for ground, other for other)
- Save test sketches with good names
- Structure your code cleanly
- Crit structure for next Wednesday
- You’ll come to the front of the room and show your project on the document camera for a couple minutes
- Then, I will reach in and mess with your middle step, to confirm that it’s actually driving the output. So be sure that you’re really, truly using that middle-step sensor to affect your output!
- At the end of class we’ll invite IDeATe and library staff to check out our attempt at a signal chain for fun
- Your final documentation will require process images, so be sure to take pictures, do screengrabs, etc., as you go.
- I forgot to post the weekly feedback for today, so it’ll be a Friday 5pm situation again this week
- Quick 2-minute check-ins with each team, then:
- Sign up on the board to request help during class (so it’s not a raise-your-hand-fastest contest)
- Our in-class transistor lesson schematic is here
Monday, Sep. 15th: Project 1 work time
- Brief review of Project 1 final critique grading (described fully here)
- Technical proficiency wants your signal to make it through the whole machine
- Skip-the-middle button should do what it says
- Physical arrangement is very straightforward
- Labeling is very straightforward
- Status display is pretty straightforward
- Soldered connections for the middle step (also please don’t solder right onto the pins of something you expect to put back into the lab stock)
- Proper wire colors is easy, too
- Quick discussion of how to juggle multiple concurrent scheduled events, with reference to Blink without blocking sketch
- Zach’s upcoming availability (email or talk with me to request an appointment):
- Tuesday 9/16 9am–1:30pm, 4–5pm
- Remember to take pictures/screenshots/etc. as you go for process documentation—both successes and failures!
Wednesday, Sep. 17th: Project 1 presentations
- Each team presents their projects from the front of the room
- We try to put the transducers together into a chain at the end!
- Due Monday 9/22: Homework 3: Prep for laser training
- Due Wednesday 9/24: Documentation for project 1
Monday, Sep. 22nd: IDeATe lasercutter lesson
- The lower left side of my jaw isn’t really working right now because I was at the dentist so I’m sorry I’m a slurring-speech person right now!
- Quick Project 1 debrief in retrospect
- Class is broken into sixths for lasercutter training (we’re following the sequence listed at this page)
- While you’re not doing the laser training, you’re welcome to use class time however you’d like (such as completing your documentation that’s due on Wednesday)
Wednesday, Sep. 24th: First week of Domain-specific Skill Building
- Project 1 documentation due at the start of class; if you had technical problems please let me know so I can help get those ironed out
- Cookies for all because I’m behind on your Project 1 grading
- Introduction to Domain-specific Skill Building
- Major steps:
- Pick a topic and submit a proposal via Canvas
- Complete a technical training sequence and document and upload via Canvas
- Complete a creative/exploratory project, document process, and upload via Canvas
- Document your work on student documentation site
- Note on our friend Chatty G and its ilk: you are permitted to use generative AI from here on out in the course to help you write code. Be sure to add comments in your code indicating where you got help!
- Team work is permitted for Domain-specific Skill Building but each team member has to submit all of their own stuff via Canvas
- Major steps:
- Proposals are submitted and Zach has two-minute conversations with people to get them rolling!
Monday, Sep. 26th: Domain-specific skill building 1b
- I mistakenly set the due date for this first week’s assignment as Wednesday at 1:30pm on Canvas. (I meant to set it for the same time today.) So I’d like to see as many projects today at 1:30pm as are ready to go, and the rest can be at the top of class on Wednesday.
- Cookies because I’m still working on Project 1 grading.
- Thoughts on this design for the skill building? How is it going? Is there anything you’d like to do differently the next time around?
- We’re going to rinse and repeat the Domain-specific skill building process starting Wednesday and running through next Monday. Please submit your round-two proposal by class on Wednesday (will be posted on Canvas).
- Build/work time followed by show-offs at 1:30pm
Wednesday, Oct. 1st: Domain-specific skill building 2a
- Cookies and you know why
- A few leftover skill demos from Monday
- A couple of new domains were added or fleshed out on the website, if anybody wants to submit a new proposal
- Please disassemble any remaining Project 1 boards and return the parts to their bins if they’re reusable; to the e-waste if they’re broken; to recycle if recyclable; and to trash if none of the above
- Fast proposal review, and work time for remainder of class
Monday, Oct. 6th: Domain-specific skill building 2b
- I’m so much closer to caught up on grades it’s really exciting
- On that note, if you aren’t happy with any documentation grade, you can resubmit within seven days from when I gave you the grade and I’ll regrade the new submission without weighing in the old grade—this means you can turn a 0 into a 100 on any subsection by fixing what I pointed out was wrong. Let me know if you have questions about how to fix a section and I’m happy to help.
- Work time until 1:20pm when we have project show-off time
Wednesday, Oct. 8th: Fun day and Project 2 intro
- Fun day explanation/guidance document
- Project 2 intro
- ideation is due on the Monday we come back from break!
Monday, Oct 20th: Project 2 ideation review
- I think I’m totally caught up on outstanding grading. Once Canvas is restored we’ll know for sure.
- Global deadline for documentation updates: Monday 10/27 at noon
- Project 2 timeline review
- Individual meetings with students to go over Project 2 ideation
Wednesday, Oct 22nd: Project 2 peer feedback, work time
- Reminder: class-wide documentation update due date is Monday 10/27 at noon. To update your documentation:
- Make the changes directly on the documentation site
- Resubmit the documentation URL via Canvas to the same assignment
- Write a comment on the assignment submission page telling me what things you changed so I know what to look for
- You should have a fairly clear idea of what you’re going to build for Project 2 by the end of class today at latest (if you’re dithering between two or more ideas, you’ll need to pick one and go with it!)
- Peer feedback on Project 2 ideas
- Students are assigned to groups of four
- Each student in the group takes 2 minutes to present what they’re thinking of making; any questions they have; and what they’d like some advice/input on
- After that 2-minute period, there are 6 minutes of feedback/help from the others in the group, who talk through the proposed project and give advice/suggestions/etc. verbally and onto this feedback document
- Those of you who enjoy my super sweet timer can read the P5js code and make your own version via this link
- Remainder of class is work time for Project 2