Tie And Jeans

Thinking Concretely around the CS IA

I know many IBCS teachers who try to run a “mock” IA in spring and then ask students to complete a first draft (of software, I assume) over the summer. I am not in that camp. But I do spend some summer time trying to explain what I mean by “think about your IA.”

It’s great to hear from you!  I appreciate the interruption to summer, so i will avoid Mr Carle Discursive chat.

Things you should be doing

1) Thinking about your IA.

    This is a meaningless instruction.  The verb “think” is too thin, to invisible.
    What you should be doing now is thinking through the “full stack” of your IA idea. 
    The problem is that you … don’t really have a good sense of what the “full stack” means.

Well.  That wasn’t a very helpful list.  Let’s try again.

1) Think deeply about the structure and FLOW of the IA project.  Flow for Users and for Data.
      Better phrasing.  Still uncheckable.
 Verify your work on step 1 by 
A)
Building some tiny toy version of the IA skeleton.  This means if it’s a Flask app, set up a new hello world in flask.  If it needs a DB, make a DB.  If it needs to send email, make a Flask route that sends an email. 
   This is not DOING the IA.  this is clearing the field where the IA will be built. 

B)
Talking about the IA with someone who knows … some stuff.   
Yes, of course, you could chat with your CS teacher.  But you don’t always need to talk to “experts.”  There’s a real, profound value in writing/talking our your ideas.  harass the group chat. Check in on Elena. Join a Discord.  Find a place where you can talk about the ideas and comfortably say “and $THING is supposed to happen, but I have no idea how to do any of that.”  


B.2) Also, talk about the client and solution CONCEPT, preferably with people familiar with the task but not familiar with the CompSci

C)
Draw it. Use A3 or larger, take pictures as you go. Leave lots of space between what you think are core elements of the system. Leave lots of space for question marks and cross outs. Sure, this is because it’s super, super useful to have a bunch of crap drawings in Crit B.  But the reason Crit B asks for a bunch of drawings is that it’s a really good way to lay out your ideas and SEE them.  We haven’t talked much about UML, but that whole system is designed to help visually clarify all of this complex stuff. 
 Don’t worry about trying to “learn UML” to get started.  Just draw, English class brainstorm style, all the things your IA will DO. Draw the people who will use it. Make stick figures. Make them rude and send the pics to the group chat.  Do whatever it takes to make it feel real. Draw your questions and your solutions.

Here’s the problem. You can DO any of option ABC without doing the planning and thinking.  They make mediocre HW assignments. 
But they are the best ways I know to take the fuzzy (but real!) work of inside the brain and push ideas up against the productive parts of reality, and get something useful to toss back to the internal maelstrom. 

When I was at a SnapCon event in Barcelona, I met some great old nerds. When they describe “locking in on a problem for a few weeks” that’s the social/intellectual learning cycle they’re describing.  In IB tradition, we’ve built an elaborate system of mazes and deathtraps (the actual IA paper)  around this powerful, reflective intellectual practice (writing code).

This summer, I hope you can try to develop some of those productive loops, to learn how to think CONCRETELY around your IA.

Single Post Navigation

Leave a comment