A Conversation with Professional Programmer and Educator, Dave Briccetti

In this interview with Dave Briccetti, we discuss Dave’s background in programming and education, advice for learning a programming language, suggestions for encouraging kids to think ethically (e.g., how to respond to potentially plagiarized content), why Dave prefers professional programming tools in educational settings, and much more.

  • Welcome back to another episode of the

    csk8 podcast my name is Jared O'Leary in

    today's episode I'm interviewing Dave

    Righetti in our conversation we

    discussed Dave's background as a

    professional programmer and his

    experiences working with kids some

    advice for learning a new programming

    language suggestions for encouraging

    kids to think ethically for example we

    discuss how to respond to potentially

    plagiarized content that a student

    presents as their own work we also

    discuss why Dave prefers professional

    programming tools and educational

    settings and much more there are a lot

    of show notes in this particular episode

    so if you're interested in it you can

    find them hopefully in the link inside

    the description wherever you're

    listening to this or by visiting jared

    O'Leary com before we get started with

    the episode I just want to make a short

    story even shorter and point out that

    about 1/3 of the way through

    Dave's microphone switches over to his

    internal microphone so the recording

    sounds a little weird at that point

    however the rest of the recording it

    uses the external microphone which

    sounds much better I hope you enjoyed

    this conversation and I hope you

    consider sharing it with others and we

    will begin the episode with Dave

    introducing himself I'm Dave Righetti

    I'm 60 years old I've been living in the

    San Francisco Bay Area since 1979 I've

    been a professional programmer since

    computers PCs and Mac's with many

    different operating systems languages

    and tools I've had about 45 clients and

    about five employers so far in my career

    some of my favorite projects were in the

    areas of satellite imagery analysis

    social networking I wrote a now-defunct

    Twitter client video conferencing

    mechanical engineering semiconductor

    manufacturing I also write free

    open-source software to help teachers

    for example music gradebook for music

    teachers and room helper 3000 to help

    manage kids in a lab with computers

    I've been a part-time programing teacher

    since 1987 I currently have about 15

    private students who come to the house I

    teach computer science one morning a

    week to about 75 junior high kids at

    private school here in Lafayette and I

    teach computer science summers at the

    Athenian School in Danville yeah I mean

    that's a wide range of areas to get into

    and having looked at your YouTube

    channel there are there's a wide range

    of stuff that you demonstrate in those

    videos how did you get into computer

    science education what I'm going to tell

    you how I came to love computers and

    then how I came to be inspired to teach

    around 1971 when I was about 12 our

    family was visiting my uncle albert

    shetty and he was a doctor and in the

    basement of his house he had a terminal

    with paper connected to a time-sharing

    system for medical research and he let

    me play with it and I loved it I didn't

    know what I was doing it had a

    command-line interface you could type

    help and try out various commands and it

    would also print pictures of Snoopy made

    out of character graphics several years

    later in the 7576 school year my

    sophomore year of high school in Fort

    Wayne Indiana

    we had terminals in a room in the school

    that we would connect to an IBM

    mainframe a 370 running at Notre Dame

    University and the terminals used

    acoustic couplers so we picked up the

    telephone we spoke to a human operator

    who gave us a phone connection to Notre

    Dame and then these these beeps and

    whistles and sounds came out and we put

    the own handset in a acoustic coupler

    just a device to kind of receive the

    sounds and send sounds to it so that our

    terminal could connect to a remote

    computer

    and we did basic programming and it was

    just fantastic I loved it and I knew

    this would be my career at an age when

    kids often don't have a lot of control

    over their lives or lots of rules and

    things for me it was just great fun to

    be able to create my own worlds with

    rules and invent it was a really fun

    time the terminals ran I think at 10

    characters per second so they were super

    slow I wrote one program that would

    randomly generate arithmetic problems

    and later I learned that them my teacher

    had shown the program to the head of the

    math department who was impressed and of

    course that made me feel good

    in 1976 through 78 my junior and senior

    years at Arsenal Technical High School

    in Indianapolis we had an IBM system

    three with 16 kilobytes of random access

    memory or random access memory the

    actual physical magnetizable cores with

    wires running through them to read them

    and write them a memory

    and there we learned RPG Fortran and

    COBOL and I wrote a program that would

    make big signs and the character images

    like the shape of the letter a and B and

    so forth were all punched on to punch

    cards and so you would punch on a card

    what the message was that you wanted to

    be made on the signs and then you'd run

    that whole stack of cards through the

    reader into them into the computer and

    then a big paper would come out with

    your message and I was running for

    senior class treasurer at the time and

    one day I noticed in the cafeteria that

    we were gonna have spaghetti for lunch

    so I ran to the computer room and I made

    a sign that says if you love spaghetti

    veggetti and I hung the sign up at the

    cafeteria that day and i won

    all right how was I inspired to teach in

    California which is was later bought by

    Wells Fargo and I was an application

    program or on the checking account

    system and then later kind of a

    lightweight systems programmer not

    maintaining the operating system but

    supporting the 400 applications

    programmers and developing tools and

    running a helpdesk and one day one of my

    colleagues brought his child and the

    child's schoolmates on a field trip into

    the our data center where the big

    mainframe computers were and they went

    to see the big computers behind the

    glass walls with magnetic tape drives

    and disk drives and Printers and

    operators and terminals and I was one of

    the few people to have an IBM color 32

    brought the kids by and asked me to show

    them some graphics and I showed them

    some color bar graphs and pie charts

    things that today would not be terribly

    impressive but it was fun at the time

    and the kids loved it and I think that

    event helped spark my interest in

    teaching and later around 1983 I was

    friends with a nice family in Petaluma

    California and

    one of their sons was in I think

    elementary or middle school at the time

    and I visited the classroom where they

    had an early 8-bit computer I think

    maybe a trs-80 and I helped them with

    that this was at the time when magazines

    would publish these long basic language

    programs that we would all type in in

    order to play a game and if you were

    lucky you would get it right or right

    enough that the game would play and

    finally in in 87 I started teaching it

    the Feather River computer camp outside

    of Quincy California in the beautiful

    Plumas National Forest and this camp was

    run by the Oakland Department of Parks

    and Recreation and we would do regular

    camp things for much of the time and

    then in the afternoons we'd jump on the

    bus and for the short ride into town and

    at a college there we had computers and

    we did some some programming and I did

    that for several summers as I recall and

    then in 1992 I started teaching at the

    Apple Valley College in Pleasant Hill in

    a summer program for kids in grades four

    through ten I did that until 2014 and we

    learned several languages one I started

    with basic I think three different kinds

    of it and then C++ and JavaScript and

    Java and Python and then I learned about

    squeak etoys from Alan Kay the one of

    the creators of small talk and we used

    that for awhile and then scratch was

    built on top of squeak and I switched to

    scratch primarily because the interface

    of it was more familiar to kids who are

    used to Mac's

    in Windows machines and then tinker came

    out Tyn keer

    and that's like scratch but it has

    physics features and some other features

    so we used that for a while

    and then Alice from Carnegie Mellon we'd

    like that but the graphics were not

    really up to the dais standards and the

    the evolution of the product was very

    slow so I didn't use that for long and

    finally Kojo which jo-jo

    which is

    an environment where the language is

    Scala and you could do some interesting

    graphical things with it including

    turtle graphics and during that time we

    had special guests including will write

    from Maxis who created Sims and Spore

    and in 94 I started offering private

    programming lessons to individuals and

    pairs of kids if you don't know who will

    write is he's basically a legend so it's

    like as high profile as you can get in

    the gaming world so what's something

    that you've believed when you first

    begin working with kids but you no

    longer believe this is an interesting

    question a belief that I've held that

    I'm I think I'm losing and I'm want to

    hear your I used to think that certain

    kids have an aptitude for programming

    and others don't and that some kids

    maybe just should do other things and

    maybe shouldn't do program yes they

    don't have sort of a natural world

    unlike yourself I am not really well

    aware of the research in the literature

    and the standards and things like that

    is that special to it but I did read

    some jewelers book I forget the name

    with one but the idea is that everyone

    can be like a learner or so you don't

    say I'm bad in math to say I'm curious

    what what do you think are there people

    who just shouldn't shouldn't try to

    program or should we try to teach

    everyone I mean from an interest

    standpoint I think there are some people

    who just aren't gonna be interested in

    learning how to program and I don't know

    if they finish that necessarily be

    forced if they don't want to learn

    something however from a whether or not

    somebody can or cannot learn something

    unless there's some kind of a

    neurological difference that's like

    preventing somebody from learning the

    sequencing involved with figuring out

    how to program I think pretty much

    anyone can learn how to do it so as an

    example when I first started music I

    started in eighth grade and usually you

    start in that district in like fourth or

    fifth grade so I started really late and

    when I started I was horrible like

    couldn't keep like just a solid tempo

    going like that kind of bad but then

    when I got into college I got a full

    ride so within a five year span

    I went from as bad as you can be

    starting to getting a full ride in

    performance so it's just a matter of

    whether or not you are willing to and

    able to devote the amount of time

    necessary to become an expert in

    something and every domain is different

    but having worked with kids who were

    really bad at programming to start with

    and then eventually became really good

    at it I haven't seen examples yet where

    I'm like yeah you're just not cut out

    for this but I have seen examples of

    yeah you're just not really interested

    in this so you're not putting in the

    effort to learn it uh-huh

    I've had some students recently who had

    the interest but we're moving kind of

    slowly and that's been good for me

    because I think that makes me a better

    teacher

    I've been lucky that most of my students

    have been pretty quick and highly

    motivated and have been able to learn

    really well and that might mask

    deficiencies that I have as a teacher

    and especially now as a formally trained

    teacher I have certainly had a lot of

    instances where kids might be moving at

    a different pace than others and if

    they're moving slowly sometimes there's

    it's just a matter of like reframing and

    looking at something from different

    perspectives so let's say they don't

    understand conditionals having them try

    and incorporate if-else statements or

    case statements or whatever in different

    kinds of programs for different purposes

    might eventually help them understand it

    but if they just keep trying to apply it

    in one way that's not working for them

    then it might be heading down a path

    that's not gonna be fruitful I don't

    know if that makes sense

    so how did you learn how to teach and

    how do you continue to refine your

    abilities as an educator I'm different

    from most computer science teachers in

    that I don't have formal training in

    fact I was a miserable high school

    student and barely graduated I was not

    motivated I think a traditional learning

    environment wasn't wasn't right for me I

    only cared about computers and music

    French warren and piano but since

    graduating high school I've taken a few

    college courses but mostly in psychology

    si language compiler design but nothing

    on teaching I've read some books I have

    a mentor Baba Thade who is a local

    professional musician and educator over

    the last 20 years

    I've spent a lot of time in his band

    room at Stanley middle school here in

    Lafayette helping him with technology

    and music things and sometimes sitting

    in with the bands I like to joke did my

    French horn playing is at the middle

    school level which these days it is used

    to maybe at the college level but from

    Baba theta I've learned I've learned a

    lot about inspiring and motivating

    students I find them good at explaining

    and I've picked up classroom management

    techniques over the years but I'm more

    I'm more polished definitely as a

    programmer and skilled then as a teacher

    I'm pretty sure like what do you do to

    keep reflecting on and improving what

    you're doing well one thing is if there

    are other professionals around who are

    observing I get feedback from them and

    then observing what other teachers do

    like for instance Bob afaid if he sees a

    student losing interest as he's

    explaining something you know they'll

    say in a positive tone no Billy stay

    with me stay with me and then you know

    Billy here's his name and perks up and

    we're back on track yeah I think that

    practice of observing other people and

    having people observe you to get

    feedback is invaluable it's one of the

    things that we recommend doing in the

    professional development that we do at

    boot up is we often record teachers

    across the district and kind of share

    recordings with people so that way they

    can see what others are doing in similar

    classes that's great do you want to talk

    about how you went from initially being

    afraid of middle schoolers to where you

    are now sure I think when I started

    volunteering at Stanley with Bob fade I

    was a little intimidated by the rooms

    full of these middle school kids just

    remembering my own middle school years I

    suppose partly through watching Bob and

    how how natural and now comfortable he

    is despite their awkwardness and and

    nervousness and just seeing him act

    silly and seeing and just be unconcerned

    about how they might think of him and

    what he's doing and just you know from

    my own case I just I just own that I

    might appear if you did that goofy to

    them or or whatever and you know just

    the other day in class I was we were

    doing music with sonic pie and I was

    singing along with it and the kids were

    singing and so I've gotten over that

    so my full-time first full-time gig was

    teaching K through six and then at night

    I taught nine through twelve

    drumline and so I missed out on the

    middle school kids but I felt like I had

    this balance of like you could get deep

    with high school kids and then with the

    elementary kids you could just explore a

    lot of really fun things and the middle

    school kids I initially was just like

    well they're really hormonal and can be

    Moody and I don't know if I want to deal

    with that but then when I worked at a

    k-8 school they ended up being some of

    my favorite groups of kids to work with

    uh-huh it's weird how perceptions can

    change yeah so on your YouTube channel

    you have a ton of examples that cut

    across different disciplinary areas so

    like you give examples in arts and math

    computer science etc I'm wondering how

    do you help kids develop an interest in

    these creative intersections a lot of

    this comes from thinking of my private

    students a lot of what we do together is

    driven by my own interests and the

    things that I'm currently learning about

    and exploring you know most recently

    it's just the past couple weeks it's

    been sonic PI so we're doing Ruby

    programming to make make sound

    before that it was computer vision and

    drawing little paintings in 3-space with

    colored papers taped to our fingertips

    against against a camera with with a

    group of kids doing that at the same

    time since I don't have to follow any

    prescribed curriculum or standards with

    my basically enrichment and private

    classes we just follow our interests and

    that's great because it overlaps with

    with so many things the computer vision

    motors for a while we were doing speech

    synthesis and speech recognition and

    using the oscillators did modern web

    browsers and use the if you look over my

    youtube channel over the years you just

    you're kind of seeing a reflection of my

    my interests over time yeah and not just

    your interests you also mentioned our

    interests so I love that in an email you

    mentioned that you let the kids interest

    kind of guide the direction that you go

    into it's one of the nice things about

    not having to adhere to standards yes I

    am grateful for that that we can just

    follow our interests and in most of the

    classes I've taught

    I have developed my own curriculum

    essentially in real time or you know one

    day at a time so that we can base it on

    the abilities of the kids in the

    interests of the kids and what do you

    hope that people whether it's the kids

    engaging in that curriculum or even

    adults who watch your YouTube videos

    what do you hope that they do with the

    concepts that you're exploring there are

    a lot of channels to methodically teach

    subjects so here's a Python class we're

    starting with print and here's if and

    here's a loop and so forth and you would

    watch all those in sequence to learn

    something mine is more to share fun

    things that I'm doing and so I just hope

    to inspire and give examples and when I

    recently reached a thousand subscribers

    my students got very excited and said oh

    you should turn on ads and and I said no

    that's not at all why I'm doing it in a

    way this is my gift I benefit from a lot

    of other people and things that they've

    made I build on other's work this is my

    gift and then one thing that I do hope

    to increase benefit from is attracting

    some more talented private students

    might see the videos and who then live

    in the area and then come and study with

    me now you've you've mentioned in the

    summer school classes you had I've

    taught a lot of languages with the kids

    and in your own professional programming

    I know you've used a lot of languages

    one of the things that I've really liked

    when I was in the classroom is because I

    knew several languages I could help

    facilitate different platforms or IDs to

    kind of help guide kids towards

    different languages that might be more

    conducive to certain things like you

    mentioned ruby with sonic pie it's it's

    it's great for making music but it's not

    great for making a video game you can't

    do that but Swift is great for if you

    want to make an app and then like the

    scratch is great for if you want to make

    a game etc etc so I'm wondering because

    you know so many languages and most

    teachers don't if you were to kind of

    like all of a sudden lose your memory

    what would you do or where would you

    start to regain the mastery of quickly

    learning a programming language I think

    Python would be a good start I were to

    have lost all my knowledge of my

    languages it's because it's a good

    general purpose

    language javascript' is widely used in

    browsers although many people are

    transpiling to it so you write the code

    in another language and then it gets

    changed into JavaScript so you think of

    the JavaScript more as a machine code

    than a language that a that a human

    would read and then I think we're gonna

    have Java around for quite some time but

    possibly one of its I don't want to

    necessarily say the word replacements

    but something that many people would use

    instead like cotton or Scala learning

    multiple languages helps develop the

    ability to learn languages which is good

    because languages change yeah you know

    five years ago I don't think we had

    Colin 15 years ago we didn't have Scala

    learning how to learn by the way that's

    there's a Coursera course called

    learning how to learn and for a while it

    was the biggest most popular massively

    online course MOOC whatever they call

    that thing a lot of research from brain

    researchers in there I recommend

    learning how to learn and in that vein

    learning how to learn programming

    languages I think it's a it's a good

    thing to do I'll put that a link to that

    in the show notes one of the my favorite

    things to do when I was learning a new

    language is think through how I would do

    something in that language so if I was

    playing a video game I would try and

    imagine okay what might the code be for

    this particular thing that I'm engaging

    with her this particular function or

    even if it's just like a program that

    are is using and I'd think through it

    like okay what would it be in scratch

    what would it be in Ruby what would be

    in Swift etc so that's something that I

    might recommend so what do you think is

    important for kids to know about

    programming and why well assuming

    they're motivated to do it because they

    want to write a game or something

    they'll need to know enough about a

    particular language or tool to

    accomplish what they want if they're

    wanting to be a programmer professional

    programmer they need to know the

    elements common to languages you know

    variables and types and iterative

    constructs and conditions and things

    like that maybe functional stuff if

    you're taking a AP computer science

    course I guess you need to know Java and

    the subset of Java that they teach how

    do you simultaneously take into

    consideration what you think is

    important for kids to know with what

    their

    interested in or excited about well I

    guess that comes from the goals it's

    interesting I was just watching a video

    this morning from Mitch Resnick yeah

    sure you know have you maybe even met

    him with your work with scratch and he

    said that he had the pleasure of

    teaching a child about how to use

    variables because the kid had a game

    were maybe you've even seen the same

    video where a shark eats a fish and he

    wanted to have a scoreboard so each time

    the shark eats the fish the point goes

    up the kid learned about variables

    because he was motivated to do so and

    Mitch talked about how that was a great

    way to go as opposed to someone sitting

    in a lecture hearing a lot of words

    about variables they said some of his

    thoughts about that came from Seymour

    Papert

    there's a tendency for whatever reason

    for a lot of educators do think they

    have to go in a prescribed order with

    things one of the things that I love

    about Resnick and pepper

    and some other people is that they just

    talk about you know if if kids interest

    kind of guide their own learning they'll

    eventually learn the things it might be

    out of order for what might be

    considered an ideal way of learning it

    but they will enjoy the process that's

    kind of something that I feel is missing

    in school sometimes definitely the other

    idea that that I learned recently from

    some of those folks and it could come

    from I think Mitch Resnick may be

    mentioned Montessori and the idea of not

    separating learning into these silos

    like here's your English here's your

    music here's your math and that's a

    great fun thing about programming is it

    does kind of blend those things together

    yeah I mean especially with what you

    mentioned earlier in terms of your scope

    in your career you haven't been siloed

    into one area or one field that's true

    and I think being a contract programmer

    with generally shorter projects helps to

    keep that that all very exciting so we

    had talked before this about how you

    think it's important to be very specific

    with the symbols that are used when

    programming and I was wondering if you

    could share some of that conversation

    with the audience when my students come

    often they will say parenthesis instead

    of parenthesis there's no such word and

    in fact I've

    met very few adults even who would say

    parentheses and then they will say - and

    you'll hear this all over the place

    people say - and if you just have a

    mechanical old typewriter that's fine

    because you don't have any real dashes

    you just have a - but the real symbol

    that we use in programming is called the

    - - which acts as a - or a subtraction

    symbol there are also two dashes there's

    an n - e n and then an M - which is a

    little bit wider than M - so I just

    think it's good for kids who were

    working in this medium it's like when we

    speak English we try to know the

    spelling and punctuation if you're doing

    programming and you're using symbols we

    should know the names of the symbols

    I've heard other computer science

    teachers doing C programming have asked

    kids to type in hashtag include which

    just is not a thing because the symbol

    in that language for the preprocessor is

    the hash also known as the pound sign

    also notice the octave Thorpe which I

    teach my students just kind of as a fun

    thing and I argue that to be a hash tag

    you have to have a hash and a tag and

    the symbol by itself is just it's

    definitely not a hash tag it's a hash

    I'm a little nutty about that and I

    think my students kind of think that's

    fun well I mean when you've got a

    language that if it's checking maybe a

    user input or something you need to know

    if I should include a lot of or

    statements that take into account that

    somebody might use something different a

    different type of - or - or whatever

    that's true so I definitely think it's

    important and even just for

    communicating with people because if

    someone takes you literally someone who

    writes English and uses n dashes and M

    dashes and hyphens for you to say - when

    you mean a - just seems unnecessarily

    confusing but I realized that I'm I'm

    almost alone in that I realized the rest

    of the world is perfectly happy to have

    you say - when you mean - I accept that

    but they could also mean different

    things in different contexts as an

    example that we kind of talked about

    off-air was that music teachers can

    sometimes get frustrated if a kid calls

    a sharp symbol in western staff notation

    as a hashtag or as a

    sign but they're two different symbols

    in two different contexts that mean two

    different things that would drive me

    nuts you had also mentioned to me off

    air that you think is very important for

    kids to think as ethical computer

    scientists so I'm wondering how do you

    help kids think ethically one way is

    when I get kids together in a group and

    we're all on the same local area network

    sometimes it's fun to write programs

    like client-server programs so you have

    I mean in today we would have somebody

    write a web server with maybe Python and

    Django for instance and then write a

    client in some language that connects to

    that web server and just does I'm sorry

    too technical for people don't do HTTP

    but doing an HTTP GET request to get a

    page from this students web server so

    then we the kids are playful and they

    like to to joke and so some kid says

    well I'm going to make try to make as

    many requests against that web server

    for the period of time as I possibly can

    I'm just gonna have a loop that goes

    forever and essentially doing a DOS

    attack do s denial of service against

    their friends across the table and I

    think that's great as long as they're

    doing it with the permission of the kid

    and they would never try to do that in

    the real world because that you know

    it's it's morally wrong and it can get

    you in a whole lot of trouble

    once I proposed having a class at a

    school like a club called the what did I

    call it but it definitely had the word

    hacking in the name and it was about

    kind of whitehat hacking or computer

    security or understanding how computer

    networks work so that you can prevent

    the tax and parents who don't understand

    the subtleties of the issues and the

    terms were freaked out no we were not

    going to have that at our schools right

    other things like like obeying copyright

    and being sensitive to that many of us

    are aware so as artists or musicians or

    creators we're creating something we

    should feel free to specify how it's to

    be used if I make a piece of art I

    should be able to say how

    how it can be used if I want to make it

    public domain where it has no

    restrictions that's I can do that and I

    and I do that with a lot of my stuff

    there are other ways to license like

    that Creative Commons licensing so when

    my students want to make a game often

    they'll just go and search for some

    images on the web and I stop them and

    say no you as it's so convenient to do

    that but you can't do that you've got to

    think about what that image is and who

    made it and did they decide that they

    want you to use it for that purpose so I

    send them to maybe the wrong link but

    search.creativecommons.org I think is

    one way where you can search for sound

    files and and graphics that you can have

    in your game like try to get them to

    think about what if you were the artist

    you were making it don't you think you

    should be able to say how it's used and

    then giving credit for other's work that

    you build on I'm a leader in a group

    called hack the future and here's this

    term hack again what's at eight

    different senses or whatever if you go

    look it up in this sense it's this

    create explore ethical good programming

    robotic soldering entrepreneurialism

    group and it's free and the kids meet

    for a day at some place like the

    Computer History Museum in in Mountain

    View California or Tech Museum of

    innovation in San Jose or Microsoft

    headquarters and we have mentors and

    usually get about 50 or 70 kids and

    they're around tables they're doing

    these various things at the end we have

    the demo kids show the programs they

    wrote and the things that they made

    their little robots or the raspberry pie

    stuff and one kid got up and he showed a

    program with little kangaroos jumping

    around or something and I recognized

    that program as being one of al swag

    arts programs

    he's a Python educator and he's written

    some books so apparently the kid had had

    modified Al's program and without having

    any ill intent he gave the impression

    that it was his own original work so

    here's the situation where you know I

    can't let this stand

    so without embarrassing the kid I got up

    at night and I took to Mike and I and I

    and I said how I love how I see the work

    that you've made to modify al swag arts

    program and I think it's important that

    we recognize that your accomplishment

    here is building on the work of someone

    else and that we always recognize

    someone else's work yeah I think that's

    a good example of a recommendation that

    could be given to other educators

    because there's a lot of computer

    science standards coming out in the

    state different states and a lot of them

    have to do with respect and copyright

    and attributions and things like that so

    I think that's a good way to kind of

    take a potentially negative thing and

    turn it into a lesson that can be

    learned by everyone mm-hmm so what are

    you looking forward to in the field of

    CS education for my own interests where

    I'd like to see students work is

    self-driving cars either the full-size

    ones or the model ones there's a group

    that meets near the Oakland Airport at

    this technology company and they on one

    of the floors they've got these tracks

    laid out people come and they bring

    their their cars so it's it's dads and

    moms and their kids sometimes I think

    that's interesting computer vision is

    interesting but for my for myself I'm

    just looking forward to learning more

    about how full-time professional

    professionally trained teachers are you

    know what they're doing yeah and your

    mention of the self-driving cars there's

    an interview that's gonna come up before

    this with Sarah Judd who is the

    curriculum developer for AI for all and

    they're doing a whole curriculum on

    right now for high school kids on how to

    use AI in everyday life and how to like

    program and stuff so oh that sounds

    great

    yeah I look forward to that episode if

    that was around when I was in high

    school oh man that would have been so

    awesome oh definitely I was content to

    make a battleship game they printed out

    on paper I won an award for that too by

    the way huh that's me

    it made me prove that I didn't

    plagiarize it which was kind of

    interesting there's a little bit back

    and forth I mean I did not it was my own

    original work they I guess they just

    hadn't seen anything like that before

    and so they wanted me to prove it how

    how did you prove original code like I

    could understand it would be harder to

    copy somebody else's code back then but

    like nowadays with like Stack Overflow

    and everybody just sharing stuff on

    github but what did you have to do to

    prove I can't remember it maybe I walked

    them through the code and just showed

    that I understood it all okay and as you

    say that the opportunities for just you

    know like today's I'm

    it's pretty easy to find some basic

    language code that would make a

    battleship game but back then people

    have to remember when we wanted

    information we would go to the library

    or look at a magazine or send a letter

    to a company and say please send me a

    brochure yeah whenever a kid would show

    up with a program that looked a bit more

    advanced than they had been

    demonstrating it in class I would always

    just ask oh so what does this function

    do or how does this work and yes usually

    the kids who came in with that we're

    like oh well it does blah blah blah and

    they were able to describe it but every

    now and then they'd be like I don't know

    that mmm so it's not your code yes and

    hopefully they're honest about it and

    this gets into ethics again and they'll

    admit it sometimes they don't yeah I I'm

    thinking of one middle schooler in

    particular that I was like so I know

    what your code does just by looking at

    it but do you and if you don't then you

    can sit out the rest of class but if you

    do then cool you can keep working on it

    so uh-huh he had to sit out Oh too bad

    it happens do you have any concerns

    about any of the current trends in CS

    education before before Java was the AP

    course language it was C or C++ wasn't

    that C++ yeah C++ so I remember being

    glad that Java replaced C++ that's the

    language for AP and then I saw this talk

    by Alan Kay again at Stanford I think I

    watched it online but there it was one

    of those publicly available talks he was

    dismayed that so many people were

    basically that Java had become popular

    instead of small talk and I remember

    being confused about that at the time

    because I thought Java was great so this

    must have been like somewhere in like

    between 95 and 2000 today I realized

    that there are bitter languages and so I

    kind of wonder whether Java is the best

    language for ap are there any questions

    that I have not asked that you want to

    discuss we could talk a little bit about

    tools for example some people do Python

    and Python comes with a kind of minimal

    editor called idle and many people are

    content with that but I encourage my

    students to use professional level tools

    there are some many of them are free for

    students so as a professional I pay for

    a license for IntelliJ IDEA I'll say I'm

    not affiliated with them in any way I

    only I mean they have great products

    they really do and for students and also

    teachers you can get a free license but

    I don't take advantage of the free

    license because I also use it to earn

    money as a professional programmer and

    it works with JavaScript Java even non

    programming languages like HTML and CSS

    it works with Scala and Kotlin and all

    sorts of stuff so you can do your ear

    project with it also a lot of people are

    using Microsoft vs code or Visual Studio

    code I've been hearing really good

    things about that so I encourage my

    students to use really good tools and

    for instance we were doing something in

    Ruby the other day I think it was sort

    of in conjunction with sonic PI but I

    don't use the built in sonic PI editor I

    usually use IntelliJ IDEA ated right

    through because and then I copy and

    paste it over into sonic PI idea has all

    these little elements to kind of notice

    what you've coded and they say hey I can

    offer you a better way to do that you

    know you can shrink these eight lines

    down to two and I say yes please it

    changes the code and now you now you've

    learned something amazing yeah and in

    ten years or so when I was really

    dedicated to Scala

    the Scala plugin for idea taught me all

    sorts of things ways to improve the code

    so tools really really important and can

    can really help another is students

    contributing to open source projects and

    learning to use version control like git

    and github and I don't know how many you

    should you should tell me maybe in your

    experience how many computer science

    educators talk about the importance of

    version control and such things at the

    high school level definitely not so much

    like middle school and below but I will

    say what you're talking about with

    different IDs and whatnot you can

    definitely do that with younger kids

    it's just the more options you have

    sometimes the more mistakes can happen

    so you just got to be aware of that like

    I had some fourth graders actually use

    Xcode and create apps for their iOS

    devices and Xcode is like the

    professional IDE that is typically used

    on a Mac so even if it's elementary kids

    you don't necessarily have to shy away

    from these and the fact that you have an

    editor that was showing you as some

    simplified ways of doing things oh that

    would have been awesome I personally

    nerd out on finding more simplified ways

    of doing the same lines of code so with

    git and github it's easy to sell people

    on them on the benefits so you made a

    mistake you broke your program you sure

    wish you had it from a week ago

    two weeks ago you look in your version

    control history and there it is I have a

    couple of open-source projects that some

    of my private students contribute to so

    they come here their parents pay me for

    an hour to teach them and we work on one

    of the open-source projects and what

    they get out of it is they continue to

    improve their programming ability and

    they also get a good feeling of

    contributing to an open-source project

    and they also are making their work

    visible the potential employers and

    collaborators it's nice to be able to go

    look at some of my open-source projects

    and see that's see what some of my

    students have contributed one of my

    projects this broom helper 3000 which I

    used to manage a classroom of computer

    lab students it has a chat one student

    in the chat pasted like the second act -

    Romeo and Juliet or something went

    really long into the chat and kind of

    ruined it for everybody else and so one

    of my private students then implemented

    a countermeasure to that attack and then

    this escalated and then my student made

    a little video where he was kind of like

    sort of like a smack down for the for

    the offender will call the kid will call

    the kid jack and so my student on the

    video he and I are acting out so I'm

    pretending to be the the the boy with

    the long paste and it doesn't work and

    then my student says take that Jack and

    I recorded that that I played that for

    the kids at this school in the junior

    high in the seventh grade last year so

    they saw that and oh man they love that

    everybody was laughing and the kid the

    perpetrator was left to have all the

    attention

    and everything and so then you know

    later at school in the halls I heard

    just completely unrelated to this kids

    saying take that Jack so back to

    collaborating on open source projects

    that's that can be kind of a fun thing

    to do do you have any questions for

    myself or for the field yeah I do

    actually

    I know you and I are both interested in

    music I'm kind of wondering how and you

    have exhaustive outline of your

    resources your website it's great you

    have tons of stuff I haven't looked at

    all of it so forgive me if this is

    something that you've explained a

    million times but I'm curious how you

    blend music with CS education if you do

    yeah I certainly do my goal in the class

    was to kind of allow kids to explore

    their own interests and do that through

    CS and in particularly those classes

    were coding classes so every platform

    that we went through and worked on what

    kind of guy to buy what kids were

    interested in and a lot of kids were

    interested in making music but they felt

    like platforms like scratch just didn't

    have enough substance to them and to

    really dive deep in them so sonic Pie

    was one of those platforms where you can

    do a lot of cool things and so I I

    learned Ruby and learned that platform

    so that way I could help kids with it

    and they really enjoyed that one the way

    they actually got back into programming

    was through a language called Max or

    max/msp I don't know if you've heard or

    seen this before that I know that's a

    high end kind of like what a pipeline

    for music pieces parts to go together or

    something it's a graphical language and

    it allows you to kind of construct your

    own oscillators or your own loop pedals

    or basically any kind of music related

    software but the MSP side of things that

    allows you to do live processing of

    visuals so you can make it so that you

    perform a piece of music and when you

    play a certain phrase that will trigger

    a certain kind of visual to appear on a

    screen or things like that or to turn on

    a light in

    room that you're performing in how does

    it know to do that based on a real-time

    analysis of the sound or some other Wow

    yeah it's it's pretty robust for a

    graphical language there's a lot of

    really cool art installation kind of

    things that you can do with it like one

    of the projects that I kind of just made

    for fun was a quantize for track loop

    pedal so I can make it so that I could

    set a metronome and say I want to record

    four bars and loop every four bars and

    have four different tracks that I could

    all trigger and start and stop and

    whatnot and that was all just using this

    interface and for me what was

    interesting about it was trying to

    figure out when is this music when is

    this coding and when is when are the two

    inseparable trying to explore them in

    the classroom it was interesting with

    kids some of the kids would come to me

    and be like we make more music in your

    class than we do in our music classroom

    well I take that as a compliment cuz

    like I want you to create things that

    you're interested in but it's kind of

    sad that you feel that way that you just

    kind of like sit there and passively

    engage in music in a class that's

    supposed to be about that subject area

    yeah yeah my last question for you since

    you asked would be so you know a little

    bit about me now and what advice do you

    have for me to become a better computer

    science teacher I mean you kind of

    already mentioned it in terms of just

    keep learning it's just the advice that

    I give to anyone there's always more

    that can be learned by not only

    exploring within the field but outside

    of it so one of the interviews that's

    kind of release before this is we were

    talking about how in computer science

    education the research is often like

    siloed into its own thing and it doesn't

    necessarily look at other research in

    education in other subject areas or

    doesn't look necessarily beyond that and

    I think for me one of the biggest things

    that I've learned from is by actually

    going out and reading scholarship in

    other domains and going oh what are they

    doing in the Health Sciences or what are

    they doing in therapies or what are they

    doing and whatever and trying to find

    ways of incorporating that like it

    doesn't always work well but I've

    learned some

    much just from constantly asking

    questions and trying to figure out what

    are other people doing and how might I

    be able to incorporate that into the

    research I'm doing are the classes I'm

    facilitating interesting yeah I never

    thought of looking into other fields for

    that yeah I mean some of my biggest

    influence have been in like literacy or

    sports psychology or even Media Studies

    like those things have significantly

    impacted not only my research and

    whatnot but just my classes how do you

    have time for that and what what are you

    spending your time on these days so I'm

    a bit OCD when it comes to my scheduling

    and that came out of necessity in that

    like I had too many plates spinning and

    was not being productive and was quite

    overwhelmed because there was like

    working full-time working on a

    dissertation and yada yada yeah so I I

    don't know if you've heard of getting

    things done the the method yes

    so David Allen's book and he's got like

    a podcast and stuff I followed that but

    then I also just listened to a bunch of

    podcasts on productivity and I just like

    keep applying those little pieces that I

    learned here and there and what I'm

    doing and try and be as effective as

    possible so like as an example I do the

    Pomodoro method and that I'll work for

    like I was just gonna mention that yeah

    I'll do 50 minutes of work and then I'll

    do 10 minutes where I'll go play drum

    set downstairs or like walk on my

    treadmill while like reading a book or

    something and then I'll come back and do

    another 50 minutes of work and then I

    like I meditate in the morning meditate

    midway through the afternoon and then I

    work out in the evening and then I've

    been trying really hard to make sure

    that my evening and weekend times are my

    evening and weekend times and that's

    coming from somebody who you used to

    work seven days a week like 10 plus

    hours a day Wow I've realized that I

    need those breaks

    yeah well good for you it sounds like

    that's working for you and I love how

    all of your online materials are so well

    organized Thanks

    I imagine in the world of people who are

    making podcasts you were

    yours is one of the most organized oh

    I'm just trying where my people go to

    connect with you and the organizations

    that you work with I'm on Twitter

    DC Bri CCE TTI

    and my website is Dave be soft calm

    and YouTube is also the DC Bridge Eddie

    and hacked the future group that I

    mentioned the story about the work built

    on Al swag art that's act the future dot

    work and with that that concludes this

    week's episode of the sea sk8 podcast

    hope you enjoyed this episode in the

    show notes you're going to find a ton of

    links to resources as well as a an

    embedded playlist of one of Dave's

    youtube playlists and in that playlist

    at the time of this recording there was

    over 150 videos that dave has made it

    have some really excellent examples of

    using coding that combines math and art

    and music together so I highly recommend

    checking that out in addition I provide

    several books and podcasts as

    suggestions if you want to become more

    intentional with your time or be more

    productive throughout your day I hope

    you enjoyed this episode next week is

    going to be another unpacking

    scholarship episode and then in two

    weeks from now we'll have yet another

    interview

Guest Bio:

I am a professional software developer, computer programming teacher for kids, and community technology and music volunteer.

I teach young programmers in and around Lafayette, California. I help organize, and mentor at Hack the Future (“hack” in the good sense). I have taught kids in the Lafayette and Moraga School Districts in seminars and in lunchtime and after school computer clubs. From 1992–2014, I taught programming to grades 4-10 students at the Diablo Valley College College for Kids summer program in Pleasant Hill, California. Before that I taught for several summers at the Oakland Feather River summer computer camp in Quincy, California.

Since becoming a professional programmer in 1979, I have been involved in many development projects, from small to large, in many areas including student information systems, learning management systems, satellite photo analysis, social networking, videoconferencing, remote device control, finance, education, publishing, mechanical engineering, semiconductor manufacturing, defense, and telecommunications.

For music teacher Bob Athayde at Stanley Middle School (and any other schools who may wish to adopt it), I develop and maintain DBSchools Music Gradebook, the open source online web app Bob and his staff use to manage testing students on their instruments. I recently created RoomHelper 3000, a webapp to help teachers manage classrooms of students on computers.

On YouTube, I produce a series of video lessons on all sorts of programming topics of interest to kids and adults.

Blog

Consulting

Programming for Kids

Software

Content Elsewhere


Examples of some of the projects Dave explores with kids


Resources/Links Relevant to This Episode



More Content