First, a note about learning style:

It’s been brought to my attention that some of what I’ve been interpreting as, well, bad or (assuming good intent, which I do) disorganized teaching is actually something called “flipped classroom” which I’d heard about in my previous job. I think it’s a not uncommon style for college-level teaching. The gist is: students read the material beforehand and come prepared with questions and ready to teach it back. The professor is then more of a coach/mentor, and by having students teach the material you hit on some really high level learning objectives. There’s not a lot of teacher-driven demos/lecture during class time (which, inconveniently, is something I find really helpful for my own learning style and wrote about in learning and watching people code).

So, this helps me with perspective. And, again, it’s a shame that I’ve been without working internet at home for 3/4ths of the class (not planned), and have not had as much time as I’d like to really play in the material. These are things *solely on me*.

There are other things that are still problems, like if you’re expecting to front-load the learning on students before class, but they can’t follow the directions in the notes/text because of development environment conflicts, or if the notes link to dead resources, or if your instructors are not approachable/available etc. etc. Those are class problems, and the organization has been VERY (dare I say, yes I shall: aggressively) responsive to that feedback, which is great. The aggressive part not so much. If I turn in my weekly survey and it says “BAD. NOT GOOD. 2 OUT OF 10.” and that’s all, then yes, by all means, ask me clarifying questions to understand my concerns. But if my weekly survey is a carefully considered and positively-worded multi-sentence NAY multi-*paragraph* account of my own progress and strengths and weaknesses of the class, and also I mention that I’m feeling crunched on work time, then it is not necessarily the best thing to request more of my time to discuss my concerns. Ask me if I want to check in? Sure! (I might say no.) Request that I come early to office hours? Nope. That just makes me feel like I’m in trouble for being honest, and that is not a good feeling.

TL/DR: A lot of people trying to make me happy, when really what I would like is for them to just make the class better.

*That said* let’s talk donor database! 😀

I started with this ugly code yesterday that produced nested tuples which, I don’t know if there’s anything worse than nested tuples, they are REALLY REALLY bad, worse than starting up your laptop in a packed, silent classroom and having Taylor Swift’s “How You Get The Girl” start blaring (because you are a Serious Coder and that is absolutely the first impression you want to make).

But I find it helpful sometimes to start with the wrong, bad thing, just to get something going, and then work it to be a not-bad thing. That’s what beginners do. There doesn’t seem to be a lot of tolerance or humor for that in my current class, which is maybe unfortunate? But also, you know, training wheels are OFF, DUDE.

Anyway, after I got the horrible nested tuples going, I asked my former TA / now classmate how he tackled the assignment, and he has used nested dictionaries. Which, hmmm, that could work. He incorporated dates into his version, which I was not going to bother with, so I decided to try *additive lists* instead and after some fiddling, got a working database up and running.

So now, instead of:

def add_donation(name, dict, amt):
    for key, value in dict.items():
        if key == name:
            dict[key] = (value, amt)
        elif name not in dict.keys():
            dict[name] = amt
    return dict

Mary has 1 donation of $50.
Mary has 2 donations of $50, $100.
Mary has 2 donations of ($50, $100), $75.
Mary has 2 donations of (($50, $100), $75), $50. # oh god, it’s so bad my eyes are bleeding

we have:

def add_donation(name, dict, amt):
    for key, value in dict.items():
        if key == name:
            dict[key] = dict[key] + [amt]
        elif name not in dict.keys():
            dict[name] = [amt]
    return dict

Mary has 1 donation of $50.
Mary has 2 donations of $50, $100.
Mary has 3 donations of $50, $100, $75.
Mary has 4 donations of $50, $100, $75, $50. # SO BEAUTIFUL DO NOT BREAK

(my real notes ^^^)

Do you see the change? Moving from ( ) (tuples) to [ ] [lists] means that now we’re making lists, and lists can be added together, whereas tuples can only be stacked. This is because lists are *mutable* (changeable) and tuples are not.

***

Is this useful at all to you, readers? It’s useful to me. I’ve been really questioning, like, what am I doing here, how candid can I be? Is this one long extended job interview or can I *get real*? That’s a rhetorical question for our times, not one for which I expect you to have an answer. But, I’m interested in opinions.

Anyone been in a flipped classroom? How’d you make it work for you?

Is anyone going to just tell me how to fix my bot or do I have to figure that out on my own? *sigh*

<3
Mary