Thoughts on CS50x Chula Vista Weeks 0-2

I meant to write down some thoughts and reflections on the beginning of school at least a week or two ago, but I forgot about what a whirlwind the start of the year is. Between teaching a new subject, creating an honors course, all of the tiny logistics pieces that pop up, and trying to finish CS50 myself, I feel like I haven’t been able to come up for air yet. That being said, I really want to record some of my observations and ideas based on the experience I’ve had using CS50’s curriculum so far.

Areas of Growth:

  • Direct Instruction: Throughout the second week, I could feel that I was talking too much. My goal this year is to place more of the mathematical authority on the students and to make class time entirely interactive. Inevitably, some items will require that I speak to the class as a whole; however, I think I can work to make most of the class a combination of collaborative problem solving and student-led discussion.
  • Supporting All Skill Levels: Some of my students had me last year when we did a bioinformatics project and have some programming background. Other students have very little experience with computers outside of Google Drive. Our preliminary work with Scratch has laid bare this gap in my students’ ability. Experienced students quickly get frustrated with the drag-and-drop programming while not-yet-experienced students feel lost in the logic. As we get further into programming, I need to strategically partner/group students to support and challenge all skill levels.


  • Culture Building: We spent the first week on culture building. This process involved determining how we can create the best classroom environment together and the purpose of math and computer science education. Student feedback revealed that most of my students are feeling both nervous and excited to tackle this CS curriculum. Consequently, I don’t think student buy-in will be an issue as there is a palpable energy each time these students attempt a new problem.
  • Collaborative Problem Solving: Since I regretted having spent so much time on direct instruction, I forced myself to do something more interactive for my binary/ASCII lesson. I started it off by explaining how the decimal system works and then left it up to the students to figure out and describe how the binary system works. Both of my classes were really frustrated at first. “Why don’t you just tell us?” several of them asked. Ultimately though, as groups shouted in excitement after discovering how binary works, their frustration morphed into triumph. We also started on the first problem set using Scratch this week. I am not the biggest fan of Scratch but definitely see its utility for new programmers. What I’ve noticed works for me and my students though is collaborating to solve a problem — whatever that problem may be. Therefore, I want to focus my class around the CS problem sets, and I can’t wait to work on them with my students.
FullSizeRender (1)

A student taking advantage of Professor David Malan’s Scratch walkthroughs.

FullSizeRender (2)

Beginning a Scratch project.

FullSizeRender (3)

Two students working on their Scratch projects.

  • Student Constructed Algorithms: After doing a “how to make a peanut butter and jelly sandwich” algorithm as a class, I had students group together to write algorithms for an activity of their choice. Another teacher happened to pop by and film one of the algorithms (applying makeup). Be sure to watch all the way to the end for a student explanation of what’s happening. 

FullSizeRender (5)

Despite the look on their faces, these students were very happy to be the “computers” for the PB & J algorithm. Ignore the hands covered in peanut butter (sunflower butter for one with a peanut allergy!) and jelly.

Thus far, I haven’t always felt confident in what I’m doing. Some days are fantastic, others kick my confidence down a notch or two (or three…). Some days, in fact, are a weird combination of both, and I can never figure out why. The frustration and confusion that comes from a lesson going really well with one group and horribly with another evades me. Ultimately, the resources and support provided by both Harvard and Microsoft have been extremely helpful. Between Harvard, Microsoft, and the amazing team of math teachers at my school, I don’t feel like I’m in this alone. That may not seem like a big statement but it’s the first time in my teaching career that it feels really true. I get great inspiration and problem sets from CS50 and can run any pedagogical questions I have by my math colleagues. By working with all of these incredible resources and teams, I’m confident that my students and I have set a solid foundation with which to tackle the rest of the course.


In a Student’s Shoes: Recommendations for Teacher Professional Development

I was recently sitting in a workshop where I found myself disengaged and utterly bored. In fact, I actually began writing this post during the workshop – that’s how disengaged I was. Instead of paying attention and participating, I read film and food blogs and researched online courses in robotics and artificial intelligence. I even planned my food out for the week and enjoyed a lovely batch of carnitas courtesy of my slow cooker! I I’ve attended countless workshops and meetings connected to education and science that have been hit or miss in terms of engagement. For the most part, the professional development as an adult that I’ve done has consisted of being talked at. It’s ironic, actually, given the push for engaging, hands-on experiences that educators are striving for in the classroom. Why doesn’t this apply to professional development? Generally speaking, my school (High Tech High Chula Vista) is great at doing this. I’m regularly engaged and at attention in my morning meetings which is due in part to a committed staff and leaders who take it upon themselves to craft meaningful experiences.

This experience, however, forced me to think about my own classroom and how I structure the time. I’m obviously frustrated when I find a student on Snapchat or Facebook (Who am I kidding? Facebook is apparently for “old people” now according to my students. A student told me she only uses it to stay in touch with her aunt.). After dragging myself through some painstaking meetings and workshops though, I started to think about how the onus on making it a useful and worthwhile experience lies mostly with the organizer. So, if my students are on Facebook Instagram and Twitter then there’s something inherently disengaging about my structure. I didn’t use to think this. In fact, when people expressed this sentiment to me I would think, “Oh heck no. My classroom is perfect and it’s the student’s fault for not paying attention. How dare you say that, please go away now.”

Principal Skinner acting out my old, totally wrong point of view.

Of course, I never said any of that aloud, but I’m sure that my brow furrowed. But there I was, a self-identified “good student,” on Facebook during a workshop that I voluntarily signed up for.

I’m grateful for this forced introspection and have lots of notes now for myself when designing lessons and projects next year. I am also, however, curious about how to change professional development for teachers. Here are some of my unsolicited thoughts:

  1. Make it hands-on and engaging. If you’re teaching content or labs to teachers, do it in the form of activities. Allow the teachers to experience the content first hand or attempt a lab. Be sure to do the activity or lab from start to finish as well. Don’t assume that everyone will fill in the blanks where necessary.
  2. If you must lecture, break it up. Ask the participants questions, allow them to pair share ideas and/or questions, and involve your audience as much as humanly possible.
  3. Lectures are a great way to deliver information to an audience but they aren’t the only way.
  4. Context, context, context. In a lot of the workshops I’ve been in, I realize that we’re talking about or going over something, and I don’t have the slightest clue where it fits in. Make your context and objective clear.
  5. Have instructions or information in multiple formats. This might just be me, but I am horrible at taking information in verbally. I need to see it written down. Give me a reading, put it on the board, or send me an email.
  6. Provide breaks. Oh, please, provide breaks.
  7. Develop and supply items that will have direct use in the classroom. When I’m attending professional development, I want 1) my pedagogical thinking to be expanded/pushed 2) new skills/content knowledge and/or 3) activities/lessons/projects/etc. that can be put into use in the classroom. If I can get all 3 (I’m looking at you CS50! 🙂 ) then that’s a home run!

I’m hoping that teacher workshops can evolve quickly, especially those in computer science. I have so much more to learn and rely heavily on the networking, instruction, and skill acquisition that these opportunities provide.

San Diego Geek Girl TechCon 2015: An Educator and Learner’s Perspective

On Saturday, June 20 (better late than never for a post, right?), I attended the Geek Girl San Diego TechCon on USD’s beautiful campus. The conference is a day full of workshops, panels, and networking that seeks to empower women (and men!) to join and flourish in the tech community. I was excited to attend the workshops and see what this event was all about.

The Workshops

How Web Pages Work

I first attended a workshop where the instructor (whose name I forget – so sorry!) described the basics behind the web. He introduced the attendees to terms like HTTP, HTTPS, HTML, CSS, JavaScript, AJAX while providing context for the part they each played in rendering a webpage. It was a great beginner introduction to web pages!

The Hacking Room

In between How Web Pages Work and Introduction to .NET and C# Programming, I sought out the “hacking” room where I was able to work on a CS50 problem set. Despite working in C, Shilpa (who was running the .NET and C# workshop and works for Qualcomm) was more than willing to talk out my questions about the C programming language. To be honest, this was one of the highlights of the day because I got to work and speak with a Qualcomm developer. This reminded me that a single conversation with a knowledgeable, experienced individual can have a tremendous impact!

Introduction to .NET and C# Programming by Shilpa Chandrashekhar 

I won a t-shirt at this workshop, so it obviously has to be my favorite. Just kidding – sort of. Shilpa was a great instructor and helped provide the group with an understanding of the components of the .NET framework and C#. I was left wanting more after only an hour and hope to learn more about .NET and C# in the future.

Dive into Data: Analysis and Visualization with Python

I really enjoyed this workshop because it introduced me to Carol Willing and the suite of amazing things you can do with Python. She kindled my interest in data science and that led way to new ideas for projects next year. She also encouraged me to record some of my thoughts and observations about computer science education. So, I have to credit her for starting this blog! Thank you, Carol!

Final Thoughts

From my perspective as an educator and fledgling programmer, the Geek Girl TechCon was a great experience overall, and I’m glad that I had the opportunity to attend it. In thinking about what conferences and workshops to attend in the future, I find myself wanting two very specific things: 1) More networking and 2) More hands-on action. For networking, I find that the more people I know, the more it broadens my programming/tech horizons. I learn about new strategies, technologies, or simply connect with content experts who can visit my classroom or provide feedback on a project. In terms of more hands-on action, well, I just want to program more. The more I work with Python, C, C++, etc. the more I can bring back to my students. It’s highly important to me that I do every activity or project first (perhaps even several times) before I ask one of my students to do it. This allows me to see the highlights and pitfalls of my design, so that I can adjust it before presenting it to 50+ high schoolers. As I move forward, I will be on the lookout for conferences/workshops that provided these two items in addition to the great opportunities that were presented at the San Diego Geek Girl Tech Con.

I don’t know. I ought to know. I’ll go find out.

“You know nothing, Mackenzie Schultz,” I imagined Ygritte from Game of Thrones whispering in my ear all day. Today was my first day interning in a bioinformatics lab. My first project is to build a Python client for a gene annotation service. Going into this, I felt that I had a strong conceptual understanding of what I needed to do. And, to be fair, I do have a strong conceptual understanding of the project. What I immediately realized upon attempting to tackle it, however, was how little I actually know how to do. It reminds me a bit of the illustrated guide to a Ph.D. The more you know, the more you realize how much you don’t know.

After I sat down with a colleague in the lab to discuss the project, I eagerly opened my laptop to start working. Each item on my to-do list grew exponentially as I explored the world wide web for resources, answers, and guidane. (Speaking of which, did you know the world wide web and the internet are actually different? I do now!) I could feel frustration and disappointment rising up as the hours went by and my productivity didn’t budge. That doubtful voice – You know nothing, Mackenzie Schultz – kept reminding me of how far I still had to go.

Then, I had an epiphany: It’s my first day. Why the heck would I know everything there is to know about web services already? This is one of my key insights thus far into being a self-taught, late blooming programmer: It’s okay not to know. In fact, the concept of admitting that you don’t know and vowing to figure it out is what I often start the academic year off with. I tell my students a story about Francis Crick who, according to another professor I heard speak about him, when asked a question to which he did not know the answer, he would respond, “I don’t know. I ought to know. I’ll go find out.”

So, here I am admitting that I don’t know everything there is to know about HTTP, JSON, and APIs. I should know these things. So, I’ll go figure them out.

Take that, Ygritte.

On another note, I am still dreaming of the coffee from Microsoft. It was too good.

My laptop and coffee exchanged some harsh words.

My laptop and coffee exchanged some harsh words.

From San Diego to Seattle: Takeaways from the CS50 for High School Boot Camp


The Space Needle!

I just got back from an intensive boot camp hosted by Microsoft and Harvard’s CS50 in Seattle (technically Redmond). If you haven’t heard of CS50, you absolutely must check it out! It’s a rigorous but fun Harvard computer science course that they’ve made available via edX. CS50, in collaboration with Microsoft, is launching an initiative to bring the fabulous CS50 curriculum to high schools across the world. I was fortunate enough to be part of the pilot group of teachers to launch this curriculum starting this fall. Here are the highlights and takeaways of my experience:



A shot of Microsoft’s Visitor Center all decked out for our reception.

  • Welcome Reception: It was surreal to walk into Microsoft’s Visitor Center where I was surrounded by beautiful lighting with a futuristic, minimalist vibe. I was immediately greeted by Zamyla which was awesome because her problem set walkthroughs on CS50 have been so helpful in my own CS50 journey. I got my name tag and a puzzle to solve (naturally!). Microsoft kindly provided food and beverages for the evening while the visiting teachers worked collaboratively to problem solve the puzzles together. I met some great people and shared struggles and triumphs from the computer science classroom. It was a great way to build up relationships and energy for the next day.
  • Surprise Teaching: On day 0, we started developing our own programming lessons using Scratch. During our lesson development, Zamyla stealthily ushered in scores of children from Microsoft families. We didn’t know it but this was a “surprise” teaching opportunity (sort of like a surprise trust fall but with more computer science concepts). I got to work with another teacher from Colorado and rising 6th and 8th graders Pablo and Eman. Eman was my official partner, so I was able to talk to her more in-depth. Over lunch, I discovered how awesome she is! We chatted about her love of tennis and fossils. In working with her on Scratch, I was left deeply impressed by her problem-solving instincts and skills. It’s refreshing to know that young students are capable of such complex tasks!
Staff members setup for the lecture.

Staff members setup for the lecture.

  • Lecture & Section: Professor David Malan of Harvard gave an immersive lecture from his CS50 material. To say that I was excited about this is an understatement. I’ve spent the last three years teaching, so it was a fun opportunity to feel like a student again. I think it’s really important for teachers to take as many chances as they can to feel like students. These experiences help inform our teaching in a way that talking about it never can. Professor Malan’s lecture gave me great ideas for how to make the computer science concepts and materials accessible to my diverse group of students. We were also treated to a live mini-section from the CS50 staff where we went over some computer programming concepts. I couldn’t stop smiling because I was having too much fun (seriously).


Teachers hang out on the non-traditional classroom furniture.

Teachers hang out on the non-traditional classroom furniture.

  1. Teachers are a diverse group of amazing individuals. Okay, you’re probably thinking, “You’re just saying that because you’re a teacher.” In reality, I’ve never met a group of more caring, driven individuals. This boot camp allowed me to connect with an incredible group of educators with varying but equally important backgrounds. There were individuals with strong computer science backgrounds and those who were coming into the experience with no programming under their belts. We were all treated equally and supported in a way that best fit our needs. I’m excited to stay connected with the people I met as we launch CS50 in classes this year.

    Professor Malan and myself!

    Professor Malan and myself!

  2. The CS50 and Microsoft staff are the best. Seriously. Jeff Maxim, a fellow boot camp attendee who teaches in New York, mentioned in one of the discussions how both groups were intent on making rigorous yet accessible computer science curriculum for all. He emphasized that they have no other agenda; they simply want to assist educators in sharing the beauty that is using computer science tools to solve problems. I think that is a wonderful thing and feel honored to have been a part of this experience in order to assist in that goal.

  3. This year is going to be awesome. I am beyond excited. I’ve never felt this pumped up about teaching and working with my students. I can easily see how I would put my own individual teaching twist on each new item that the CS50 staff introduced us to throughout the boot camp. My students have no idea what’s coming their way, but I know they will be ready to tackle the challenge and express themselves through computer science. I’m lucky to join them on this adventure!

Everything that I’ve discussed represents just a small snippet of these last few days. I am forever grateful to Microsoft and CS50 for allowing me to be a part of such a meaningful endeavor. I am further indebted to my fellow teachers who are bravely taking it upon themselves to create the best classroom for their students.