You rock

I had a student who wrote some notes on their recent exam that expressed frustration and embarrassment over some problems. I haven’t returned the exams yet (it’s a once-a-week class), but I sketched in their exam and left positive notes. I scanned the exam for this student and sent it to them, and let them know that these next chapters will be easier – no holiday getting in the middle of the class, I’m doing video lectures to help students out more, and we’ll work together to iron out tough bits.

The response I got back was “you rock”, so that was nice. 🙂

 

Rachel,
I really appreciate this email and thank you for your positive attachment! That was nice, but I can be really self-deprecating, so that’s where that came from.
I will let you know if I have any questions. I will get to my Discrete Math ASAP today; I’m such a procrastinator:(
You rock.

Video Lectures

A screenshot of a video being rendered

When I was a student, it was aggravating to no end, just knowing that I heard my professor say something in class, but not having it in my notes and not remembering what exactly it was.

I know I’ve dealt with being confused on a math topic and pouring through the book and examples and still not understanding; trying to find YouTube videos on the same topic that wouldn’t confuse me further.

Some teachers would record their entire in-class lecture and post those up online, but these were often over an hour long and difficult to parse; if it were a class session where the teacher was just coding the entire time, it would be hard to figure out what part of the class they said the thing I was looking for!


 

However, done right, video is a great medium for presenting information. For my CS 200 (JCCC) and CS 201R (UMKC) classes I taught in Spring 2016, I spent every weekend writing and recording lecture videos for them to watch as homework – then we’d spend the class period actually coding. This also means that I can reuse these videos – both for any other CS 200 sessions I’m teaching, but also to provide as review videos for classes after CS 200 – such as data structures, if the students need to review some core C++ topics!

More recently, as a result of having a Monday-only three-hour Discrete Math class and Labor Day nuking the class period for the week, I ended up recording a video lecture for the class that should have been that week. And, actually, I recorded video lectures for that entire chapter, to help my students study for the exam the following week. And it was pretty well received.

Part of building lecture videos is boiling down the book’s contents to its important bits; like panning dirt to find gold… or at least some cool pebbles.

An in-class lecture can be boiled down to 10 minutes when you’re building a lecture video by a script, rather than just hitting record and going for it. It also results in cleaner, easier to follow content.

The downside, however, is just that it takes time to do. For a standard lecture, I will…:

  • Go through the book, figuring out the important parts.
  • Write some presentation slides, then export them as separate images.
  • Throw those slides in my video editor (kdenlive).
  • For each slide, record narration (with audacity).
  • Then to work examples of the problems, record myself writing out and solving the problems in a paint program. (This requires GIMP, my Wacom tablet, and OBS) – If it’s a programming class, then Code::Blocks and OBS to record coding through some problems.
  • Putting it all together in the video editor, making sure it flows well.
  • Rendering!
  • Uploading to my server and/or YouTube.

Unfortunately, it can be a lot to ask any random teacher to build something like this. But I have the capability (I guess I’m from the “YouTube Generation” so a lot of us can handle a video editor), and the drive to do so. I feel like creating the video lectures also helps me understand the content even better, so that in class I can give a better lecture and answer questions better.

It also means that, even though it is a lot of work now, it will be less work in the long run.


 

You can view my educational content over at http://edu.moosader.com/

Programming Poems

Was just playing around with words to try to think of ways to get students to remember that they need == when comparing two values.

To compare if two values are equal,
Your equal sign needs a sequel. (==)

 

I posted it on FB, and was given the response “===” so then I wrote:

If you need to check the type and value both,
your equal signs will need another growth?

 

But a friend of mine, Chris M, also wrote a poem:

If checking type is on your minds,
why don’t you use three equal signs?

 

I just thought it was funny and cute. ^_^

 

Feedback during the 3rd week of my C++ class

Dang! It is always nice to get good feedback like this.

This was in one of the mini-essays I assigned in my C++ class (reading about & discussing problem solving techniques), so I wasn’t expecting it!

“Coming into the class I was very nervous. My friend who has taken this course before by other unnamed teacher said it was the worst and that if I didn’t understand this class that I would struggle going forward. Scary right? For me it was. But as I continue to read the content you have written to teach and share with us, I am put to ease. I find myself smiling and laughing at your videos and text, which is something I did not expect coming into the class. So while I am still terrified of falling on my face, I have faith that I will make it. And that is not something that I previously thought.”

Gradschool!

ku

I got accepted to KU for their Masters in Computer Science program!

Programming for Discrete Math

I like using programming in the classroom. I’ve never seen programming really used much in any of the math classes I’ve had in the past, save from some odd MatLab projects (of course I opt for NumPy or SciLab – Go FOSS!), and sometimes reading paragraphs of math problem examples in a textbook just makes my eyes glaze over. Rather than try to demonstrate this stuff on the whiteboard, I decided to write some quick Python/PyGame programs for the examples from the textbook we’re using.

Another pro of this is that it helps me “grok” the content. I might read over something and think “yeah, that makes sense”, but I don’t really know it until I put it into practice, and the best way for me to put it into practice is to make it a program. When applying it in code, it’s more likely I’ll remember the fine details much better, just through the entire process of working on the program step-by-step.

Not sure if I’ll have my students do any coding (various prereqs, they might all know different languages), but it might be nice in the future!

Fin ‘n’ Kit DevLog #7

Beyond all the other “hidden” changes going on, I’ve been working on cutscenes for the game. For now, we’re going to keep it simple with still images rather than something really animated. Here is the cutscene system implemented, but with WIP art:

(Really, it’s just reusing the menu system to make a cutscene!)

You’re ignoring the issue – Diversity in Tech

Don’t read the comments. Sometimes, when I post a link to an article on my Facebook wall, I feel compelled to add the warning, “don’t read the comments” along with the article.

This morning I posted a link to NPR’s Why Some Diversity Thinkers Aren’t Buying The Tech Industry’s Excuses article, and the comment responses are pretty much exactly the kind of responses that I still get sporadically for having the audacity to suggest that my YouTube channel needs more women viewers on someone else’s video that highlights the same problem on their channel.

comments

Scroll through the comments in the Diversity in Tech article, and you see the same mentality…

comments2

As sick as I am of hearing the same, “They’re just not interested. Stop trying to force women and people of color into tech!!!“, this isn’t what I want to post about right now. That’s a whole other long-ass topic that needs to be researched… Which I have done some research for that re: women in CS already so you can read this if you really want to.


No, what I really want to talk about is that, by making statements like “they’re just not into it”, ignoring whether or not we’re going to argue that entire demographics of people simply aren’t interested, I cannot imagine that anybody would state that absolutely, 0% of [demographic] are not interested in computer science. I think that we can all agree that at least some of these people exist, whatever people these might be. Right? There can’t be a net total 0 women, or African American people, or Latinx people, or Native American people, or gay people, trans people, intersex people, etc. etc. etc. You would have to be pretty damn specific if you wanted to come up with a demographic of people that might not exist as a person-who-is-interested-in-tech. And heck, even I fit the demographic of a “woman-or-maybe-genderfluid/queer/indifferent, asexual, panromantic, Esperanto-speaker, dandruff-haver, piano-player” programmer – I don’t mean to be facetious, I’m just trying to highlight that a person can be many things, and still interested in tech.

OK, so my first point is, there cannot be a people of any given demographic who have zero software developers among them.

Let’s look at these handy graphs I found on this article Race and Gender Among Computer Science Majors at Stanford:

Male & Female Computer Science majors at Stanford (from Medium.com)

Male & Female Computer Science majors at Stanford (from Medium.com)

So, there exist some women. It isn’t zero women. And then we have…:

Computer Science majors by race at Stanford (from Medium.com)

Computer Science majors by race at Stanford (from Medium.com)

and the Medium article even breaks down even further with more statistics.

But my point is, it isn’t zero. So let’s stop acting like all women/PoC are simply not interested in computer science.


 

So, secondly, the idea is that these people exist, but major tech companies still cannot at least build a ratio of tech employees that mirrors what’s coming out of colleges.

But they totally could – if they really wanted to.

As Martin Fowler points out in his DiversityMediocrityIllusion post,

To understand why this is an illusionary concern, I like to consider a little thought experiment. Imagine a giant bucket that contains a hundred thousand marbles. You know that 10% of these marbles have a special sparkle that you can see when you carefully examine them. You also know that 80% of these marbles are blue and 20% pink, and that sparkles exist evenly across both colors [1]. If you were asked to pick out ten sparkly marbles, you know you could confidently go through some and pick them out. So now imagine you’re told to pick out ten marbles such that five were blue and five were pink.

I don’t think you would react by saying “that’s impossible”. After all there are two thousand pink sparkly marbles in there, getting five of them is not beyond the wit of even a man. Similarly in software, there may be less women in the software business, but there are still enough good women to fit the roles a company or a conference needs.

(By the way I love Martin Fowler)


 

The people are out there, they just take more effort to find. Part of it might include how a company finds their candidates – if they weigh references heavily, then that might only support the demographic that is most heavily represented.

If they advertise that they’re the “standard nerds” who love beer and bacon, that’s going to be a turn off to certain religions, as well as people who simply don’t enjoy alcohol (*raises hand*), and the idea of having social events at work centered around alcohol simply just doesn’t sound like much fun.

It could be where they’re posting their job ads. It could be the values that they present. It could be any number of things. But to build more diversity, some effort has to be put into it, rather than just maintaining the status quo and acting like, “well gee, why can’t these women and/or PoC just fit in with our status quo? Why do we have to change?!”

 

When I interview for a software job, I usually ask the people conducting the interview about diversity. How many women work there? What about other ethnicities, religions, and backgrounds? A majority of the time, I get a response akin to “We hire for talent, not diversity”.

That isn’t what I asked about.

During the interviews and walk-throughs, how many people are present who aren’t white men? Only one time have I been interviewed by a woman – and it was because the entire team interviewed me, not because she was the boss. At my last job, I think that there were maybe two software engineers who were women (including myself) in the group of maybe 10+ teams. There were women present as BAs and QAs, but so few as the developers.

What, are women just naturally more interested in quality assurance than software development? Back in the caves up through the agricultural revolution, women biologically evolved to QA the hunts and the crops and all of that, while men evolved the ability to program those… hunts and crops? (Seriously I’m sick of the “biological” argument in a multitude of ways, especially if we consider nonbinary genders and trans people.)


 

Ugh, ok. I’m hungry now, and I have to prep for my Java class on Thursday. I need to come up with more examples of using arrays in simple programs. Ĝis la.

Offices

Have you ever had a college instructor who didn’t have an office?

Most college instructors have office hours to help students outside of class. It’s required in most cases. So, therefore, instructors need offices. Sometimes it might be a room with several cubicles, or it could be their own room with lovely lovely sheetrock on all sides and a door.

The office also provides a nice, quiet space for the instructor to get their planning, grading, etc. done.

Is being a teacher an antisocial job? No, who would say that? You have to interact with people a lot, from your students to the other teachers and faculty of the school.

Being a teacher requires a lot of people interaction, and yet, having an office isn’t seen as somehow making a teacher less able to do their job. The office is a required part of the job.

So how come software developers are thrown in open floor-plan large rooms? The justification is usually in favor of collaboration between the developers, but if teachers get offices and can still talk to people, why can’t developers?

If it helps to have quiet while an instructor is planning, grading, or otherwise doing their non-people work, why do we not treat developers the same way, giving them a nice quiet area to get their non-people work done?

And that’s not even getting into how I can choose the hours I’m in my office, and I can choose when and where I get my non-people work done as an instructor. I do most of my class preparation at home, on my laptop that runs Linux, with my kitty cat and tea and food that I can prepare in my own kitchen.

If teachers can have this freedom and get their work done, why can’t software developers?

(No title)

random test generator

random test generator

What do you do when you want to write a take-home exam, but want to discourage students from simply copying off each other?

If you’re a programmer, you write a random exam generator. 🙂 If you’re not a programmer, then you can probably find an existing one out there much nicer than mine… but oh well.

This is a C++ program that reads in text files – each question position has a “deck”, and a deck file has a list of questions that are interchangible (e.g., “declare an int”, “declare a double”), and then you have a series of decks that represent the amount of questions in the exam. Each question item in a deck has a serial number as well.

The exams are generated and output to .html files (I decided to do this because it’s easier to maintain the formatting if I copy it into a LibreWriter file), and a key is also generated, with all the decks and all the questions and their answers.

I’ll probably go extend this to list point values as well, I like putting that on exams. Then I have to go write my Programming Fundamentals exam 1. Whee!