Tag: programming
Happy holiday season to all.
Blogging wise, I usually write up a bunch of posts on Advent of Code - a 25 day programming event where each day a new two part challenge is released. It's been running since 2015 with this being the tenth year.
Last year I wrote up five days, the year before only two but for 2021 and 2020 I wrote up around 25 of them.
# COMMENTSI stumbled upon an awesome new YouTube channel for programmers - Worst Practices. Specifically, Worst Practices in Software Development. The tagline is "we've all heard enough about everyone's best practices in software development, we're here to talk about … worst practices."
I've written about "best practices" for teaching before - I don't believe in them - I believe in practices that are good under certain circumstances. Maybe in the majority of circumstances but there's no silver bullet.
# COMMENTSSo, last post I talked about the technical interview and unquestionably students at elite private schools have yet another leg up on the other folk. Today, let's look at the core subject of those interviews and what I think should be emphasized in class.
I want to be clear - I'm only talking about in class here. There are many things that can be done at public institutions like Hunter to help better prepare students for tech careers.
# COMMENTSIt's been a while since I last wrote up a specific lesson idea so when my friend Garth asked about recursion ideas I thought I'd write this one up. This is a unit I used to teach in my intro class at Stuy using Racket (nee Scheme) but I coded up a quick and dirty Python version.
Recursion is a polarizing topic. Some people love it, others hate it. I'm sure the usual suspects of intro recursion problems doesn't help.
# COMMENTSDay 3 ended up being a quick one. That is, as long as your language supports set operations. You can do it without set operations but it's easier if you've got them.
Part 1 Input is a file of text where each line is an input.
You have to read each line, split it in half and then find the common letter between the left and right halves and then apply their scoring rules on that letter.
# COMMENTSIt's Advent of Code season again. Every day a new two part programming challenge and once again I'm taking part. At least until grading and other end of term obligations end up eating my lunch.
I wasn't planning on writing anything up but the first two days looked like nice problems for CS1 or even CS0 students and since my friend Steve was writing up his take, I thought I'd at least comment on the first two.
# COMMENTSLast time, I wrote about frustrations in trying to motivate myself to learn ocaml. I could see the strong points but given that I've been using Clojure now for a while, it didn't really hold any value added for me in my current situation.
Next, I thought I'd explore Rust. On the non-functional style, my go to languages have always been Python for scripting and small things and C professionally.
# COMMENTSThe semesters back up in full swing again - teaching 2 undergrad classes in person - CS0 in Python and CS1 in C++ along with my teacher certification class - Ethics via Zoom. Grand total of about 125 students. An error came up in the CS0 class the other day that reminded me how tough it is not only to prepare students to deal with all the things that can go wrong when learning to program but even for a teacher to realize what's going on.
# COMMENTSLike most CS educators I'm a regular reader of Alfred Thompson's blog. Alfred's latest post is spot on but there was a line in it and a particular Twitter response that reminded me that we so often forget a big reason why people learn to code.
Alfred mentions, as did that Tweet about coding to solve problems. What problem are you trying to solve. This is the mainstream push - programming helps you solve problems.
# COMMENTSTomorrow, or more practically, tonight at Midnight, Eric Wastl will once again launch the Advent of Code. As I've written before, it's a month long event where each day a new programming problem is released. The problems range in difficulty and complexity. Some are very approachable to beginners and some are crazy challenging. I've written a bunch about AOC in past years:
Solve A to Solve B Data structures and Hidden Complexity Tools can shape- how we think 2019 day 1 2019 day 2 2019 day 3 2019 day 4 2019 day 8 2019 day 8 addendum and a few more not listed.
# COMMENTS