Introduction to Computer Science (Chinatown Campus) 2020

Tomorrow is my birthday (I was born in 1986 so I'll have to guess what age I'll be turning tomorrow). Tonight, I'm proctoring quiz number one in my Introduction to Computer Science course at City College San Francisco. This is now my 4th time teaching this particular course after taking a few semester-long breaks due to budget cuts. Interestingly enough, however, those breaks have coincided with the births of my two sons: Andrew Jr. (2018) and Arthur (2019). As a part-time instructor, it's always a big deal when it comes to finding out whether or not I get to show up for class. Silicon Valley is at the heart of tech development and it is truly a privilege to be able to show up and spend time with a classroom full of students

Usually, I create some banner advertisements meant to entice students to enroll in Free City College program. Student recruitment is always a challenge for all teachers so one of the things I do to try and make sure I have a full classroom is create artwork that is attractive to potential enrollees. CCSF does not make enrollment an easy process per say but it is not expensive. Teachers don't get paid a lot and so the ones who stick with it and are dedicated care a lot about the community and are truly in pursuit of a better, more educated generation. Students themselves come from all walks of life and so there is really never a boring day when it comes to the in-class experiences.

Although I received a PhD from MIT in Course 6 in 2012 and a BS degree from UIUC in Electrical Engineering, I had never seen any courses in Shell Scripting or Introductory Computer Science in the format that City College offers. Honestly, I was a bit bummed when I was initially assigned these courses. However, after teaching these same courses multiple times, I have come to deeply appreciate and re-search how these courses can be refined. This is actually incredibly challenging given the history of their development along with some of the bigwigs of Silicon Valley who have previously taught these courses. Again, never a boring task.

This semester, in step with the birth of my two sons, I have a personal interest in the development of a program on City College campus called the Parent Exchange Program. There are a number of reasons why I believe the PEP program needs an update. Interestingly enough, these reasons may be attributed to the inspiration I have received in City College classrooms.

There are several homework assignment and in-class exercises that students must complete in my Introductory Computer Science classroom. Most of these exercises are taken from other places like Code.org, Craig Persiko's version of the CS110A class and the Interactive Python notes. However, notably, as in every notable Intro-level CS class, students are asked to complete their first homework assignment by writing a "Hello World" program. City College has made the decision to teach CS110A using Python (in the past it has been taught using C++ and Java) and so writing out those first print statements can look slightly different in the different languages despite the course itself being a language-agnostic conceptual course. Every year, students surprise me with the Hello World programs that they submit. This year, I was joyfully pumped by the myriad of submissions that I saw. The students' first programs ranged from witty to silly and I knew that we were ready to take off based on the number of submissions A+ submissions.

Due to budget cuts, there will be no Computer Science classes offered this summer. Whether or not I will have the opportunity to teach in the Fall also remains up in the air until at least April. I would like to continue to learn how to attract the best students at the Chinatown Campus. My understanding is that my course has been the first time that Computer Science has ever been taught at the Chinatown Campus despite the campus being the best located place in San Francisco (and also the best equipped). I can't explain it, but I get a great sense of accomplishment seeing my name listed amongst the other courses taught on Chinatown campus which include Child Development and Cooking courses. I somewhat abuse this in the classroom as I have students sometimes doing silly tasks like "drawing a cupcake" using the Turtle graphic plugin. Nothing is quite like a real-life tasty cupcake but the process of time-boxing a cupcake drawing to 20 minutes or so to see what one can come up with is kind of like being on a competitive cupcake cooking show. In other words, there really is a such thing as "the Joy of Coding" which I would like to pass on to my students who come through the classroom.

That said, I will leave to make another cupcake as my students finish their quiz. Result to be updated as cover image (in approx 20 minutes).

# No functions definitions all in one page top to bottom?
import turtle
import math
t = turtle.Turtle()

# Stack of Shortcakes with pastry cream in between
SHORTCAKE_HEIGHT = 9
CUPCAKE_WIDTH = 160
STACKS=7
for i in range(STACKS): # Lots of layers!
  t.penup()
  t.color("yellow", "yellow")
  t.goto(0, SHORTCAKE_HEIGHT*i*2)
  t.begin_fill()
  for i in range(2):
    t.pendown()
    t.forward(CUPCAKE_WIDTH)
    t.left(90)
    t.forward(SHORTCAKE_HEIGHT)
    t.left(90)
  t.end_fill()
t.penup()

# Dollop of whipped cream on top top
CREAMSPACE = 10
t.goto(CUPCAKE_WIDTH-CREAMSPACE, SHORTCAKE_HEIGHT*STACKS*2)
t.color("#fff0ff", "#fff0ff")
t.begin_fill()
t.goto(CUPCAKE_WIDTH/2, SHORTCAKE_HEIGHT*STACKS*2+SHORTCAKE_HEIGHT*4)
t.goto(CREAMSPACE, SHORTCAKE_HEIGHT*STACKS*2)
t.goto(CUPCAKE_WIDTH, SHORTCAKE_HEIGHT*STACKS*2)
t.end_fill()

# Strawberry jam on top
t.pensize(9)
t.color("red", "red")
t.goto(0, SHORTCAKE_HEIGHT*STACKS*2)
t.pendown()
for step in range(CUPCAKE_WIDTH):
  y = math.sin(step/5)+(SHORTCAKE_HEIGHT*STACKS-1)*2
  t.goto(step, y)
t.penup()

Written byadmin

Documenting makes the mundane seem interesting. Interesting matters seem to demand attention on their own.