Tuesday, May 3, 2016

Teaching College-Level Web Scripting

A year ago, when I was graduating from college, I didn't expect that only one more semester would go by before I would be back in the classroom at Pace University. I always demonstrated a penchant for teaching and expressed admiration for my professors and the careful thought that they put into creating lessons, exercises, and grading our work. I was so honored to be asked to come back this semester and teach CIT336, Web Scripting to undergraduate students.

I had experience teaching throughout university, and had been gaining experience as a web developer. I taught a lot of coding classes to all ages; as young as 2nd grade and as old as mid-40's. The idea of teaching the more advanced end of web development was so exciting to me!

Starting from scratch was an interesting challenge. I didn't have access to any previous lessons or curriculum, so with very loose guidelines, I developed a curriculum, syllabus, and lesson plans for the semester. As I usually do when teaching a series of classes, I started by giving my students a survey to find out what they already knew, what they wanted to learn, and what trepidations they had about learning it. 

The biggest challenge that I had to overcome in teaching this class is my concern about what my students think about having such a young professor. However, because I was a student not so long ago, I remembered clearly what I loved about my favorite teachers, and what I wished some teachers would have done. I am more familiar with what's going on in their lives, and in their heads, and what value they need to get from this class. 

My goal was to teach the concepts of web development, with language agnosticism. The fact of the matter with learning programming is that in a few years, the languages will be different. That is why I take the approach of making sure that the students understand why they're doing what they're doing, and why they're learning it. I taught about how the internet works: HTTP requests and responses, RESTful applications, open-source communities, server-side code vs. client-side code, how browsers work, etc. It is important to understand these concepts more than to be able to push out code with flawless syntax. I tell my students that syntax is the hardest to learn and the easiest to fix.

I also wanted to talk to my students about how I use what I'm talking about as a web developer. I was able to make the course material relevant by telling them how I was using the libraries that I was showing them, funny stories about the first time I was using a framework, bugs that I caused by not understanding something and how I fixed them and learned from my mistake. I loved that I got to show my students how their coursework is relevant.

I learned a lot while I was creating lesson plans. It takes a lot of practice to be able to communicate technical information to people who may not have all of the background knowledge. I wanted to provide my students with slides, so that they had comprehensive notes, but also be able to talk about interesting things in class. Another part of providing my students with resources was finding great tutorials. Sometimes tutorials are a lot of copying and pasting. I liked to go over the tutorials in class so that I could add extra information, and then have my students do the tutorials for practice at home. The following class we would then try using the new skill from scratch. I also frequently asked my students to come up with their own ideas for what they wanted to build. I had them all build websites to tell me about themselves, while I taught JavaScript and jQuery, and about how the DOM works. For every assignment, I asked them to make it about their interests. Practicing SQL queries? Do them on a database full of data about your favorite thing. For their final project, I asked them to create a web application that would make their lives easier. 

The students really impressed me with their creativity and openness to trying new things. They completed some great projects, asked interesting questions, and explored a lot of different web development tools. I'm so grateful to have had such a great class!

No comments:

Post a Comment