Thursday, August 15, 2013

CS Educator Interview: Cait Sydney Pickens

One really can meet people online though sites like Twitter. That is how I met Cait Sydney Pickens. I look at everyone who follows me on Twitter and saw her name. That lead to her blog (Computing Education a research blog about computer science education) and more about her. She has done some interesting things in teaching and in CS education research. That quickly convinced me I wanted to include her story in my CS educator series. Thankfully she agreed.

How do you describe yourself?

I am a teacher, an open source advocate, a Pythonista, a female coder and engineer, a blogger, an education researcher, a queer woman. I have been (and sometimes still am) an undergraduate CS teaching assistant, a summer middle school teacher, a Michigan State Spartan graduate student, a Software Carpentry teacher. Most recently, I am a full-time researcher at Google with the Computer Science Teaching Fellows program.
The thoughts I'm sharing here come from the combination of all of those experiences and aren't specific to any of the particular institutions where I teach.

You are a PhD student researching computer science education. What does that mean? Are you studying tools, techniques, something else?

Yes, I am a PhD student researching computer science education (CSE). That translates into a few different things: (1) reading a lot of blogs, tweets, research papers, and dissertations about what people are doing in CSE; (2) synthesizing what I am reading into a mental map of the field, (3) identifying what topics have “open questions” or areas that have not been researched, (4) designing, implementing, and evaluating educational interventions in a classroom, (5) communicating my findings to the broader CSE community.
I just finished my second year in a PhD program, so my research focus has not been fully refined yet. I’ve done some heavy reading on topics like integrated engineering education and first-year computer science. As I am developing my identity as a researcher, I am learning that I am most interested in questions about diversity, access, and engagement. How do we broaden the field of CS to include all different types of people? How do we make sure that they stay engaged and feel included? Those questions can be targeted with tools, teaching techniques, classroom environments, really anything. I am keeping my mind open when trying to answer the question of diversity in computing.

How did you get started in computer science in general and researching CS education in particular?

I went to Lake Forest College planning to be a high school math teacher. As part of the mathematics degree program, they require students to take an introductory CS class, and I am so glad they do! I started then with object-oriented programming in Java and I loved it. I just never stopped. I find CS to be the intersection of all the math and logic skills that I happen to be good at and the creative, design, and language skills that I really love.
I first started researching CS education when I was invited by a mentor to teach on Pine Ridge Reservation in South Dakota. The summer workshop at Porcupine Day School teaches middle-schoolers about the intersection of art, animation, digital storytelling, programming, and computational thinking using Alice. My experience on the Rez in the past two years really shaped my understanding of the current status of CSE in middle school and got me thinking about how to reach and engage all different types of learners.
I have been really lucky in finding people to support me in my desire to do CSE research. I have been able to work on the Rez, be a teaching assistant in a REAL classroom at Michigan State, teach data scientists how to program with Software Carpentry. These teaching experiences have helped guide my development of research interests and questions.

You’ve done some teaching as well in a couple of settings. A Native American reservation for one. What was that like? Are there particular challenges in that environment?

Teaching on the Rez is always a defining life event for me. It teaches me so much about my own privilege, about what a “low floor” for inexperienced learners really means, and how living in poverty heavily impacts student learning. At the same time, I learned about the importance and beauty of human connection. On the Rez, there is a feeling of belonging. In fact, there is a common Lakota phrase Mitakuye oyasin, which translates to “All my relatives” or “We are all related.” My favorite part about teaching at Porcupine Day School is how the students show that sort of Lakota interconnectedness with each other and with their teachers every single day. It’s refreshing and inspiring.

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS education style “your CS education style?”

I believe in connecting people. I think I have always believed in that, but I especially identify with it after teaching on the Rez. When I am teaching, I try to get students away from computers and gadgets and technology, and instead reflecting about computational thinking and how it impacts their lives. We talk about ideas, problem-solving, the pros and cons of different solutions. I also believe in using computational thinking in unexpected environments (writing poetry, composing music, digital storytelling, dancing, etc). So, I think my approach to teaching focuses on inclusion, interaction, and using what you’ve learned in new environments. That means I end up doing a lot of project-based learning where students are building and creating their own ideas as a community.

How has your research impacted your teaching? And your teaching experience impacted your research?

I think it is pretty obvious at this point how my teaching on the Rez has influenced my desire to develop an inclusive learning environment. As for how research impacts my teaching... Well, I do a very informal assessment called a “minute card” where students write down 1 thing they learned during a lesson and 1 question they still have. I’m always impressed with how much I can learn about my own success as a teacher from analyzing that sort of feedback. As for more formal research - I’m learning that there is a lot of work in education research more generally that studies how engaged (motivated, on-task, included) students are in a classroom. I try to build my own lessons and classrooms around those findings, using their suggestions to build a place where it is totally okay for students to take risks, to be wrong.

How do you measure success for your teaching? For your students?

When I’m teaching on any given day, I use minute cards. That’s mainly because many of my teaching experiences are workshop-based and I can’t really give something like a final exam to measure student learning gain. I especially focus on the questions students still have after a lesson to see if higher-order thinking or metacognitive processes have been engaged during the lesson. If the questions I receive are all low-level, content-definition-based on the minute cards, I informally conclude that my own teaching wasn’t successful and that learning for students was probably not very meaningful.
When I have the chance to teach in a more consistent environment, like when I am a teaching assistant at Michigan State, I have teaching evaluations at the end of a term.
I’m always especially rewarded when students give feedback saying that they felt comfortable, at home, or confident in my classroom. When I teach with Software Carpentry, I like to follow up with workshop participants some time months later to see if the workshop has had any lasting impact on a participant’s research patterns and workflow.

Is there anything else you’d like to tell me that I forgot to ask?

I just want to emphasize how important it is in my mind that we (as an education community) focus on structuring our classrooms and our research around developing students who are able to solve real-life problems with computers and programming. And not just some students. All students - that means male and female and every other gender that exists, people of all different races and ethnicities, students of all different socio-economic backgrounds, rural and urban environments and everything in between, and so many other factors. We need to stay committed to that major task and not be deterred.

More Cait Sydney on the Internet.

Blog: michigancomputes.wordpress.com
Twitter: @caitsydney
For a full list of interviews in this series please see CS Educator Interviews: The Index

Wednesday, August 14, 2013

Beware the Self-Taught Know It All

I spent last weekend with a room full of university computer science professors. As you might expect discussions covered a wide range of topics during breaks and meals. One item that came up was a problem several people had seen with students who were both self taught and arrogant. It seems that these students often make life in the classroom uncomfortable for other students. They “know it all” you see and delight in making other students feel inferior or unwelcome. This has a negative impact on student retention in computer science programs.

In all honesty the arrogance is the real problem not that they students were self-taught. One can see this in almost any case where some students come into a class with significantly more knowledge of the subject than others. It does seem to be more prevalent among the self-taught though. Perhaps something about doing it on one’s own breeds a certain attitude of superiority. I do know that my career has been overflowing with self-taught programmers and software developers who denigrate formal education in the field and people who learned in class what they learned “on their own.”

Obviously the constantly changing nature of computer science means that someone who wants to stay current has to do a lot of learning on their own. And there is nothing wrong with being self-taught other than that you really need to watch out for the quality of teaching.

The classroom can be a fragile environment. Students can be turned off to a subject as easily, if not more easily, than they can be turned on to it. As a teacher my goal, obviously, is to get the students feel good about the subject and about themselves. Students who do know more than their peers can be a very positive experience. I have seen peer tutoring work wonders with students. So a student who uses their knowledge to help their peer rather than as a club to put them down can really contribute a lot to making the environment a good healthy one.

Learning on ones own is something I strongly encourage. I don’t believe that the teacher should limit students to only what they (the teacher) knows. (see All You Know Isn’t Enough)  I want to encourage students to share what they know with their peers in a spirit of support and collaboration rather than as a power game. I try to help students understand that teaching something improves understanding of it for the teacher as well as the student. I also want all students to understand that while people learn in different ways that is a good thing. No one way works for everyone and there is not necessarily a right way for everyone to learn.

But I really wish some of these self-taught student developers had had a better teacher.

Tuesday, August 13, 2013

All You Know Isn’t Enough

Lou Zulli and I got together recently to talk teaching and computer science education recently. Lou Zulli and Alfred Thompson pictureOne of the things we talked about was common points from the teachers we know and from those I have been interviewing lately on my blog. A key point is that the best teachers are not afraid to admit that they don’t know everything. Students come to them with ideas for projects that the teacher has little to no idea how to accomplish. Rather than say “no” they say “go ahead” and they help the student figure it out. Sometimes they learn together. Sometimes the teacher points students in a direction and gets out of the way. Regardless the teacher is not afraid that the student will know something they don’t know.

These days there is so much going on in computing that no one can know it all. If a teacher limits what their students learn to just what the teacher knows the students are being too limited. Students are naturally curious and creative. There are times when I worry that we can stifle that curiosity and creativity in the name of keeping control. Fear can be a limiting factor. We worry that the student will get stuck on soothing we can’t help them with. What will that do to our credibility? Will the student get too frustrated and turned off to computing? What other bad things will happen because we don’t have all the answers?

Fortunately most of these fears are over rated. First off most of our students don’t expect us to know it all. They have unfairly low expectations of their teachers even when it comes to computing. Chances are that for all we admit to not knowing most students will be impressed by what we do know.

Students also often have a much higher tolerance for frustration than we give them credit for. At least when the project interests them. If they are picking their own projects they are highly likely to keep going long past where they would go for a teacher assigned project. A teacher can help by finding new resources (students are often poor at searching the Internet or documentation) and by helping a student to understand what they do find. One can also help a student understand that what they are doing is hard and that they are making progress.

Success is learning not always completion of a project. With a little help and encouragement students will often amaze you with what they can learn and what they can do with what they learn.

Monday, August 12, 2013

Interesting Links 12 August 2013

Where has the summer gone. A week and a day before all teachers have to return to my school. Students the end of next week. It’s been a great summer but I’m looking forward to the new school year. How about you? Either way a lot of good links to share today. Hope you find something useful here.

I recently discovered Computing Education a research blog about computer science education by Cait Sydney Pickens, a graduate student at Michigan State University and a Noogler. A Noogler is a new employee at Google by  the way. She is doing some cs education research. A couple of good posts there to start you off are:

This blog has been added to my Computer Science Education blog roll BTW.  Have you checked the lost out recently?

APCS teachers have you seen these proposed AP CS A labs? The case study is going away after the 2014 school year. Labs something like these on Paul Tymann’s web site will replace it. Deepa Muralidhar has been blogging about AP CS Principles portfolios which are a part of this whole thing on her blog most recently at CS Principles Portfolios: Data

CS Educator Interviews: The Index  Now with 16 different teachers interviewed. The most recent two being:

At the CSTA conference this summer I took part in a mobile app “throw down”  where people  used Apple iOS, App Inventor for Android and Windows Phone to develop the same app. The session was recorded and you can watch it here.

Speaking of Windows Phone app development, Rob Miles has been creating some Windows Phone App Studio Screencasts Also at Windows Phone App Studio for an introduction to this tool.

Google Computer Science Teaching Fellows Starting Up in Charleston, SC. I am following this with interest. That link is to the Google Research blog. There is also this news article about the program at the Berkeley Independent - Google pilots teaching program in Berkeley County.

Outstanding post by @PaulRWood for all teachers  Keep an eye out to be the difference for a student.

Is your school still using Windows XP? Make sure your administrators read this (Kill your Windows XP systems before they kill you) and suggest they act responsibly.

From the Kodu Team @koduteam

Looking for a batch of fresh Kodu games to keep you entertained? Why not give this collection uploaded this week  look.

From @CSEdWeek: Computing in the Core member Google announces 2014 Google RISE Awards opened for submissions.

Tips for teaching Computing for the first time (list of resources included) Not just for first timers either!

Saturday, August 10, 2013

Think Big

I’m saying at the Trump International Hotel in Las Vegas for the final meeting of the CS 2013 task force.  While this hotel doesn’t have a casino or other gaming it does have a lot of references to “The Donald” including one quote that struck me. “As long as you’re going to be thinking anyway, think big.” I think I need to take this attitude as I continue to plan for the coming school year

Thursday, August 08, 2013

CS Education Interview: Tammy Pirmann

Tammy Pirmann is my mentor on the CSTA Board of Directors and is helping me understand how and what it is all about. More importantly she teaches at a public high school on the edge of Philadelphia. She agreed to answer a few questions for us about her, her school and her CS program.

Where do you teach? What sort of school is it?

I teach at a suburban public high school right on the edge of Philadelphia.

How did you get started teaching computer science?

I am a career change teacher, and had a career in the tech industry before deciding to become a teacher. I did some consulting work with a Vo-tech during which I worked with high school students as part of the overall project. I found them to be delightful to work with and eager to learn what I knew. That experience, and the birth of my son, led me to look for a family friendly career that did not include significant travel.
My first position in education was at Eastern Center for Arts and Technology as a Computer Application Support Specialist where I worked with student interns to deliver desktop support and to create and maintain the website. While there, I put together a computer science program but it never took off because so many of the sending districts had some type of computing class.
My program was implemented at a different Vocational school and I accepted the position as teacher. 
The next morning, Springfield's superintendent called me and asked me to be the CS teacher at Springfield. I was not certified to teach CS in a 'regular' high school (certification is different for vocational vs. academic in PA). That day I must have taken about 50 phone calls. I had served on several technology committees in the county and worked with many people in various roles. I had no idea how many of the people I had worked with were from Springfield. The Technology Director, several teachers, the Principal of the high school, parents, etc were calling me to ask me to please accept the  position. Meanwhile, the superintendent secured an emergency teaching certificate for me. At the end of the day, the only reason I had for not taking the position at Springfield was that I had already accepted a teaching position the evening before. I finally accepted the position at Springfield and the other position went to another applicant.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

Computer Science is a graduation requirement at Springfield, so we have a pretty comprehensive curriculum.
Computer Science Basics meets the CSTA K-12 Standards in level 3a, but at a rather fast pace and without much time to build things. It is really for the humanities student who just needs to meet the graduation requirement.
Computer Science Principles is available for anyone in grades 10-12 and also for any honors level 9th grader (to meet the grad requirement). My focus in this class is on mobile development. We use App Inventor and HTML5 to create mobile apps and sites.
Quest 9: Future Studies is the ninth grade gifted class and is a CS course with robotics and Sci-Fi. It also meets the graduation requirement.
Web Application Development 1 uses xhtml, html5, css and javaScript to create websites. We also learn about how the Internet works, the hardware involved and the social and ethical issues. The students get to create several websites for themselves and for local non-profits. This class meets the graduation requirement.
Web Application Development 2 adds more JavaScript, plus PHP and SQL so the students can build database driven websites.
Game Design is a non-programming course that is focused on what it takes to make a great game. The students create several game prototypes in this course and by the end have a game design document to take to the next class in the sequence.
Electronic Game Development is the second class in the Game Design and Development sequence. In this class we create a digital prototype of the game based on the design document brought forward from the previous class. We use Unity3D for the final, production game. This sequence earns dual enrollment credit with Montgomery County Community College.
STEM 1 is new this year. It is essentially the Quest 9 course without the Sci-Fi. We design and build a robot with the VEX platform, and program the VEX in RobotC. We also have a NAO robot that is programmed in Python and will have a set of Finch robots to program in Python as well. This class meets the graduation requirement.
STEM 2 will be offered in 2014-2015 and will be a survey of three engineering disciplines, chosen by the students in the course.
AP Computer Science A is all about Java, of course! This class is also a dual enrollment credit with MCCC.
Post AP CS A, I have two options for seniors only:
Senior Thesis in Computer Science meets the schools graduation requirement for a capstone course. Each student chooses a topic, writes a research paper, works on a project and makes a presentation. In my course, I connect each student with a mentor in the field of their choice and their presentation has to be published on line. They create a website for this course and publish all relevant materials on it.
Advanced Topics in CS is an independent study  I offer for seniors who have taken everything I have that interests them but they still want to learn more. I  work with them over the summer before school to choose a topic and method for this class. With the advent of MOOCs, we are using them more often for this type of independent course.

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

I believe that students need to work on real projects, so if I had to sum it up in one word, I  would use "authentic". That said, I am a huge fan, advocate and proponent of Process Oriented Guided Inquiry Learning (POGIL) in CS.

What is the biggest challenge in teaching CS at your school?

It's a small school, so I am always marketing my courses. Also, we've been hit hard by funding shortages, so this upcoming year, I am the only CS teacher at the HS. This means that I will be teaching Quest 9, Web 1, Game Design, STEM 1, CS Principles, and CS Basics, but not AP CS A, Electronic Game Development, Web 2, etc. It isn't a lack of interest on the part of the students, it's the limitations of my time.

What is administration’s support (or lack of support) like at your school?

I'll let you know! We just got a new Principal at the High School, I've only met him once, but I am optimistic. He seems like a great person and willing to look at the big picture. My superintendent has been with us for one year, and she has been supportive of the program. 

How do you measure success for your program? For your students?

I love it when a student comes back to me after the course is over and tells me how she used what she learned in my class in real life. Often this is related to the unit I teach to 9th graders about how to buy a computer. I hear back from them, sometimes as late as senior year, to tell me that it was very helpful.
From a data standpoint, I look at how many students request another class in CS (after meeting their requirement). I can't use how many get into an elective because scheduling at a small school is so difficult, but currently the percentage of students who have requested another CS elective is 27%. That's up from about 5% before the CS graduation requirement. I also try to keep track of how many students are heading off to college to major in CS or IT.
More of Tammy Pirmann on the Internet
For a full list of interviews in this series please see CS Educator Interviews: The Index

Tuesday, August 06, 2013

CS Educator Interview: Norm Messa

Today we visit a career/technical school in the seacoast area of New Hampshire. Norm Messa is the teacher we talk to there. Norm is a second career teacher who does an amazing job at his school. Seacoast School of Technology serves students from several school districts around Exeter NH and is an unqualified gem of a school with an outstanding staff and administration. Full disclosure: I serve on Norm’s advisory board.

Where do you teach? What sort of school is it?

I teach at the Seacoast School of Technology.  SST is a Career and Technical Education center in southern New Hampshire.

How did you get started teaching computer science?

I got interested in computer science in the summer of 1969.  I won a National Science Foundation scholarship to participate in a summer program at Chico State College in northern California.
I found CS interesting but logistically difficult.  You had to design your program, put it on punch cards, then wait for your turn on "the computer".  You would feed your cards into the card reader, got the the terminal and type in some commands and listen to the line printer print out error messages.  After fixing your errors, you would repeat the process over and over again until your program was working.
At that point I filed computer programming in the "too much hassle" category.  Then in 1981 (or there about). a friend of mine brought this to me to help him solder together.  It was a Sinclair 1000 (a less than $100 computer that had BASIC programming built into it).  After a couple of hours of soldering we had it hooked to a TV and were writing programs.  For me, that changed everything.
While working on my electrical engineering degree, I also studied programming and wrote as many programs as I had time for.  In my career as an electrical engineering, I found computer programming was a really helpful skill not only being able to write both low and high level software but also the what is now referred to as a computational way of thinking and problem solving were inherent to that study.
When I retired from my engineering career in 1994, I decided to go into teaching.  I went for a math certification as it was the most expedient for my background.  I was hired at a school to teach computer science and quickly discovered that teaching CS was a totally different thing than doing CS. 
I have spent the past 18 years refining the way I teach CS.  While the technology changes rapidly, I have continued to concentrate on fundamentals.  I believe that it is of greater benefit to students to concentrate on building a strong foundation as opposed to worrying about glitzy decorations.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

Our program is two years in length and consists of 4 one semester courses.  All of the courses in my program concentrate on problem solving and algorithm development.  The first course, an introductory course is the most important.  If you don't get that one right, nothing else matters.  The first course covers the basic program constructs using Alice (4 or 5 weeks).  The rest of the semester we use Python to cover a wide variety of CS topics and problems.  The second course is a Visual Basic course.  Again, even though we are using a visual programming environment we re-enforce the fundamentals of problem solving and thinking computationally.
Our year 2 program consists of Java and C++.  These two courses really focus on the object-oriented paradigm and class analysis and design.

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

I teach in small chunks.  I will introduce a concept and then have students work on a project that demonstrates that concept.  I will use various degrees of scaffolding to help students learn a concept.  At the beginning, the scaffold is extensive while later the scaffold will be barely existent.

What is the biggest challenge in teaching CS at your school?

Getting students that are truly motivated.  Too many just want to play games.  This situation has improved dramatically over the past couple of years because I believe we have been more honest in our recruiting and the story we tell about what computer science is.  CS should not be some shiny object that is thrown out there too attract students. I have found that if you can show students the raw power that being able to be a good problem solver and think computationally can change their world everyone is better off in the long run.

What is administration’s support (or lack of support) like at your school?

It is unquestionably 100% supportive.

How do you measure success for your program? For your students?

To me program success is more than do we get numbers and continue to exist.  Success is do we get students that take the program seriously and continue on to year 2.  This is why that first introductory course is so important.  In the past it was not unusual to have 35 - 40 % year 1 to year 2 retention.  This past year we had a 68% retention of year 2 eligible students.
I would measure success for students is what are they doing 5 to 10 years down the road.  This is very difficult to measure.  I can only give a qualitative sense of this as I have used LinkedIn to stay connected with many of them.  Most of the "serious" students are definitely working in the CS field.  Even those who have moved on to other fields have admitted to me that problem solving skills they developed has helped them in their new fields.

What is the one thing you like to talk about regarding your program that I haven’t already asked?

I do not believe that public education is serious about graduating students that are able think analytically or critically.  Problem solving and computational thinking are skills that will be required to function in the very near future.  I really believe that computer science should be required of all high school graduates.  And I do not mean some watered down "parts of a computer" or "how to surf the web" course.  I mean a serious "using computational devices to solve problems" type of course.
For a full list of interviews in this series please see CS Educator Interviews: The Index

Monday, August 05, 2013

Interesting Links 5 August 2013

I turned 3C years old yesterday.  That’s in Hex of course.  011  1100 in binary. In place of presents post a link to my blog on your blog, Facebook and/or Twitter. Smile I spent much of last week at Walt Disney World having a real vacation. It was a great time but now I am starting to think that there is a lot I need to do to prepare for the new school year. Some of the links below may help me with that. Especially this first one.
First week of school... What are you doing? Getting close. About three weeks for me. Less for some of my friends. In this post Crystal Furman writes about some of her plans.
Senators Casey and Rubio Introduce Legislation to Bolster K-12 Computer Science Education Looks like people in DC are finally starting to “get it” that there is a problem that needs fixing.
Don't let the dulcet tones fool you—these girls are sick of being called fake geeks is one of several videos making the rounds this week. Another is the She++ video. Mark Guzdial give some cautionary advice about that one on his blog at She++: The Documentary and The Audience
The Today Show features a story on CS in schools Hadi Partovi teaches Ryan Seacrest to program! Some good exposure for computer science education in this other widely referenced story/video.
Michigan Teachers Learn To Use 3D Printing In The Classroom I still have mixed feelings about 3D printing. It seems so cool but I don’t really know how I would use one in the classroom. Looking for success stories from other teachers. Know any?
CS Educator Interviews: The Index  now highlighting fourteen computer science teachers. Most recently:
PACE, the Partnership for Advancing Computing Education now has a web site
PACE, the Partnership for Advancing Computing Education, is a coalition of professional organizations concerned with meeting the global demand for a well-prepared, well-informed, and diverse computing workforce. PACE provides a clearinghouse for members to communicate their visions and efforts toward these goals, helps members to identify common issues and interests, and engenders collaboration that leads to cross-organization unified effort.

Friday, August 02, 2013

Computers Really Are Everywhere

Last week I took a little drive. Something around 10 miles in something under 8 minutes I guess. That’s me behind the wheel of a NASCAR race car.NASCAR I rode with a trainer in the right hand seat and drove around a real race track in Orlando Florida. Part of my big birthday celebration. Probably a once in a lifetime ride. Although …

So why bring this up here? Well because this was a very hi tech experience. One of the first things they did was to plug a USB flash drive into a computer in the car. The car was fitted with several cameras, microphones, tracking devices and more. The computer put this all together into a video that showed the race track, the trainer and I and on the same screen where on the track we were. Frankly I bought it just so I could see how the ride was. While you are driving your focus gets a little narrow. Staying on the track and off the wall are priorities.

I can’t imagine getting that sort of video experience without computers though. And that was just the start of the week for me. I also took a backstage tour of Walt Disney World. In the tunnels under the Magic Kingdom are miles and miles of networking cables connecting all parts of the experience. And, I’m pretty sure, collecting lots and lots of data.

Many of the rides and attractions depend heavily on computer control. All the animated figures are just part of it. Things start at the ticket check in where the system reads magnetic information on your ticker and scans you finger point. I wonder how much information they keep and how well protected it is?

My room key (actually a plastic card with information stored on it somehow) could me (and was) used to charge things from anywhere in the property (40+ square miles of property) and computers handled it all. The amount of data that WDW must handle on a daily basis is mind boggling. I suspect  a lot of thought and computing power goes into analyzing that data as well.

I wonder if there is a job down there for me? Smile

Thursday, August 01, 2013

CS Educator Interview: Rebecca Dovi

Just north of Richmond VA to talk to Rebecca Dovi who  teaches at Patrick Henry High School. Rebecca is also very active in the CSTA and is a chapter President. Besides her regular courses she is one of the pilots for the new CS Principles course. AND she is working on developing an AP Computer Science MOOC for Amplify. That should be interesting.

Where do you teach? What sort of school is it?

I am at Patrick Henry High School which is north of Richmond VA. My school is a mix of a small town and rural. Many of my students have over an hour bus ride home in the afternoons. We have a reverse bell curve - many wealthy families and many poor. It is not unusual to have students that do not have electricity or running water at home. At least 1/3 of my kids do not have Internet access outside of school.
We are very unusual in my county in that every high school has a full time computer science teacher. We are the only district in Virginia that has computer science in all high schools and middle schools.

How did you get started teaching computer science?

My first year I taught math. The Friday before the students returned to school my second year I was called down to the principals office and told that on Tuesday I was the school's new computer science teacher. I started with APCS in Pascal A and B, and an intro course in QBasic.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

We have:
  • International Baccalaureate Computer Science, both the SL and HL levels
  • AP Computer Science
  • Intermediate Programming in C++
  • Introduction to Programming
I am also a pilot site for the new APCS Principles course

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

Everyone should learn computer science. It is my job to translate the material so that every student in my classroom has an experience that meets them where they are and invites them into the magic of computer science.
We do a lot of project based learning and inquiry activities. In the AP and IB classes I do flipped instruction - which takes some creativity when so many of our students do not have the Internet outside of our building!

What is the biggest challenge in teaching CS at your school?

I am very lucky, my school and district have always been very supportive. We have had the APCS course since the 1980's and they have remained committed to offering the classes despite the deep cuts brought by the recent recession.
As for challenges, it is equity of access. While some students have computers, tablets, etc., many do not. That is the beauty of computer science , it has the ability to take any student where they are are open up a whole new world.

What is administration’s support (or lack of support) like at your school?

Administration is great. Despite the cuts, which have been deep in Virginia, I have a well equipped lab. They are great about helping me attend conferences and support other teachers in our Computer Science community here in Virginia.

How do you measure success for your program? For your students?

When they have that moment that they realize computer science is used to MAKE things they use everyday. Computer Science is a craft and I want all of my students to be able to express themselves

What is the one thing you like to talk about regarding your program that I haven’t already asked?

I am so excited to see the growth in our field. I deeply believe the access to computer science is deeply tied to our future as a nation. Every student in our country should have access.
More Rebecca Dovi on the Internet
For a full list of interviews in this series please see CS Educator Interviews: The Index

Wednesday, July 31, 2013

Trick Questions Are A Bad Idea

Thanks to a post by Mark Guzdial I found What Makes Code Hard to Understand? This was a report of a study looking into what makes cade hard to understand even for professionals. I ran though one or two of the exercises and found that I came up with more wrong answers than I’d like to admit. (Actually any at all is more than I ‘d really like to admit.) I am tempted to just write this off as they examples being in Python which is a programming language I know almost nothing about. In reality I should know better than to make some of the assumptions I did make. In real life you wouldn’t want professionals to write code like most of these examples. A good code review (do people still do code reviews?) should correct most of them. On the other hand these are the sorts of “puzzles” that teachers like to include on tests and quizzes. I started to wonder if this wasn’t actually a problem that we have ignored.

There is a tendency to write test/quiz code that is less than completely clear. The theory is that this requires students to read the code closely and understand all the little details (things like side effects) of the code to properly answer the questions we ask. This is just one way that we use bad code with students though. A lot of times we do things to force a focus on specific features and functions of code. One of my forever students complained that the code in the AP CS exam has loaded with examples of how not to write code. And I could not disagree.

The problem that concerns me is that by using bad code (by various definitions of bad code) we expose students to more bad examples than good examples. We as teachers can say “don’t write code like this because we’re just using it to test you” but we know that “do as I say not as I do” is generally bad technique for anything. A student who spends time figuring out “trick code” is likely to start thinking that this is the way to write code. Oh they may even know that the code is hard to read, hard to understand and even risky for production code. At the same time they may see this as being an example of showing how smart they are – they can understand this tricky stuff. If so bad habits can easily be developed.

I’m going to do my best to write easy to understand and easy to read code even for tests and quizzes this year. I think I need to set a good example as much as possible.

Tuesday, July 30, 2013

CS Educator Interview: Peter Beens

Back to Canada for our interview today. Peter Beens teaches at Beamsville District Secondary School in a small town in Ontario. Peter is very active online but attends a lot of actual conferences as well. He often travels great distances by motorcycle to get to these events. It’s surprising how many CS teachers I have run into who are also motorcycle people. Not the stereotype of a “biker.” Or teacher for that matter.

Where do you teach? What sort of school is it?

I teach in a high school in the small town of Beamsville, Ontario. Its makeup is quite varied, with much of our population being bused in from the rural community. It is a small school, with a population of just over 500 students.

How did you get started teaching computer science?

I started as an electronics and computer technology teacher, and from the very early days I integrated computer interfacing and programming into my curriculum to make the content more exciting for the students. When my old school lost its CS teacher due to retirement, I was the principal's first choice as a replacement as he knew I was well trained in it and had been programming a long time.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

In our school we offer CS in the 11th (ICS3) and 12th (ICS4) grades, at both the college-prep (C) and university-prep (U) levels. Sadly, because of our small population it is quite a challenge to recruit students to take CS so I normally end up with a "quad split" class made of up grade 11's and 12's in both the college-prep and university prep streams.
Following is a diagram showing all the CS courses offered in our province. My school does not offer the intro grade 10 (ICS2O) class because of its small population.

The curriculum itself is a province-wide one that is written very generically so an instructor has quite a bit of leeway in how the content is delivered.
The following diagrams show the content of the grade 12 college-prep and university-prep courses:


If anyone is interesting in viewing the curriculum in its entirety, I have it posted here.
I always introduce CS with something graphical. I have mostly been using Turing to do this, as its graphical commands are quite easy to use. I am now toying with the idea of using Turtle Graphics as an alternative , or perhaps the PIL library in Python, but I haven't decided yet.
After the intro unit we normally move on Python, although this coming year I may do an App Inventor unit. In Python, I normally have the students do the tutorials at http://cscircles.cemc.uwaterloo.ca/. I love this website because the students can add me as their "guru", meaning they can contact me from within the website environment to ask for additional help, day or night, and also like it because I can track the students' progress.
I always supplement the tutorials with programming challenges, in increasing levels of complexity.
This year I also plan to introduce Arduino programming, to show students that programming is not just about programming computers, and also to make it more fun! (a working traffic light always gets a better reaction than Hello World!)
For the grade 12's, I handle it much more informally. I normally give them larger projects where they have to work in groups, with more of a project management emphasis.

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

I love project-based learning, but I have to accept that there has to be some skills development before we can get to any meaningful projects.
I love the use of online tutorials for the students' learning, but I don't rely on the flipped classroom model to use those tutorials. (Instead, most of the students watch them in class, at their own pace.)

What is the biggest challenge in teaching CS at your school?

The small population of the school is the biggest challenge, with so many competing elective subjects. Add to that the negative stereotypes of computer programming, and it becomes a challenge to attract students to the program.

What is administration’s support (or lack of support) like at your school?

My administration is very supportive in allowing us to attend programming competitions outside the school, as well as by allowing us full autonomy to use our budget to purchase devices such as Arduinos and the supporting electronic components.

How do you measure success for your program? For your students?

Success for me is, of course, based on the number of students in the seats. For the four years I have been at my present school, I have seen an increase in the number of students, so I'm very happy about that.
I also measure my success by our performance at the local programming competitions, and this past year has been our best ever.
Lastly, I measure success by the diversity of the students. By making the environment more social and by being more creative in the types of projects we work on, I'm getting students that wouldn't have normally considered CS as an option.

What is the one thing you like to talk about regarding your program that I  haven’t already asked?

I just wanted to thank you for selecting me as one of your participants for your interviews. It seems we (teachers) all go behind our closed doors and do our own thing, but the truth is we are often doing the same as others, so a forum such as this lets us see that, and potentially reach out to each other to collaborate or share. 

More Peter Beens on the Internet
For a full list of interviews in this series please see CS Educator Interviews: The Index

Monday, July 29, 2013

Interesting Links 29 July 2013

Short week last week as my wife and I headed down to Walt Disney World for a bit of actual real vacation. That doesn’t mean I didn’t collect a good batch of links to share with you today before I left.

Google pilots teaching program in Berkeley County article from the Berkeley Independent. Some of these Google teaching fellows were at CSTA last week absorbing as much as they could. I was happy to see them there as that is a great place to learn. Wish I’d had more time to talk to them though. I’m not sure how this program will work out but I credit Google for trying something.

My time in the High School Computer Science by @DanKasun Dan is one of the people I met at Microsoft who really cares about education and is smart enough to know that he doesn’t know it all. Here he writes about some of the things he learned as a volunteer TA in a HS AP CS course.

I’m collecting resources around image manipulation for use in my honors programming course. Found a couple of new ones to share.

I’m also collecting more Kinect resources. Two articles that look interesting are here.

Really interesting research on how well programmers really understand code. What this article had me wondering was if we as teachers were creating too many trick questions when we should be demonstrating easy to read code. More on that later.

Google's Megan Smith On The 2 Innovations That Will Get More Women Into Tech Google and Microsoft are both concerned about the shortage of people in general and women in particular in the software industry. Both are also trying to do things about it.

The #makered Twitter conversation was about 3D printing. More and more schools are starting to use these devices as they become more affordable. Along the way was this link to Time to Start Making: Free Design Programs for 3D Printers

A Future for Computer Science Education is about the recent CSTA Conference event hosted at and by the Microsoft New England Research & Development Center.

Touch Develop on the Surface by Ray Chambers documents his experiments using TouchDevelop on a Surface.  I have a Windows 8 slate and have found TouchDevelop very easy to use on it.

Summer is not vacation time by Garth Flint @gflint outlines a lot of the behind the scenes work he has to do during the summer to make sure the computers at his school are ready for the new school year.  Most teachers do more over the summer than relax. BTW did you read my interview with Garth Flint earlier this month?

Friday, July 26, 2013

CS Educator Interview: Louis Zulli Jr

Lou Zulli Jr is a quiet unassuming man. What he does with his students is anything but minor though. The projects his students have done with smartphones, SharePoint and other hardware and software have gotten him international attention. Most recently he was the invited keynote at an IT conference in Australia. Lou believes in real projects that make a difference locally in his school and in the long run more widely for his students. I’m thrilled that he agreed to this “interview.”alfred-Lou
Lou is the good looking guy on the right in this picture. I’m the other guy.

Where do you teach? What sort of school is it?

Public magnet program located in an urban/suburban high school in St. Petersburg, FL.  Highly diverse student body.

How did you get started teaching computer science?

Interesting story. I started my career as an English and Journalism teacher.  After 17 years in those fields I was asked to take on the Network Admin position at this new magnet program that had been around for three years.  The previous two network admins had messed things up and they wanted an educator in that position. I had been building journalism computer labs so they offered me the job.
After taking three years to undo the mess that the I inherited I began to build my program of network assistants. It first started out as an IT focus course but has dramatically changed to more of a practical CS course.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

    • Presently all incoming freshmen take Intro to IT (IIT)  where they earn the Microsoft Office Specialist certifications and an introduction to C#. 
    • Our sophomore computing class is a full year of C#.
    • Junior year we have APCS or Object Oriented Programming depending on the level of interest and rigor the students want to tackle. 
    • It is also in their junior year that students can apply to enter my course which becomes a two year commitment if they are accepted and where my students can earn some of the advanced Microsoft Certifications such as MCPD, MC
    • We also offer a Cyber Security course as another elective.
    • Having said all the above we are in the process of “adjusting” the scope and sequence of our CS offerings. We are going to become more relevant in our approach, offering CS courses in mobile app development for Windows 8 Phone and Windows 8 and Android. (We are not going to jump wholesale into Objective C for iOS, just too impractical and too wonky). We are also going to offer web development and game development courses. These new courses will be project-based learning courses using all the appropriate languages for the specific outcome of the projects.

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

It is definitely Project based learning. I use IT as the context for CS.  Using IT allows the CS student to see the practical results of their projects and how everything they do affects the systems that are used to deploy the solution.  The projects the students work on all  must have a purpose for the campus community.  So in effect they are designing solutions for the teachers, students and staff of Lakewood  High School and their needs.

What is the biggest challenge in teaching CS at your school?

Keeping the coursework relevant to the students. Many of our students have started coding in some way before they get to us.  In the past we have been able to channel them into more structured CS classes all leading to the AP CS tests in their junior years. This just doesn’t work anymore.  We have to start offering classes that pique their immediate interests and excites them to want to go farther in IT or CS or both.  This explains the adjustment to our course offerings described in number three.

What is administration’s support (or lack of support) like at your school?

It is outstanding.  Computer Science has been a core component of the Center for Advanced Technologies graduation requirements since the program was established in 1991. (Imagine what we were teaching back then.) Our present director was one of the first faculty members of the CAT Program and understands the need, relevance and importance of a strong computer science curriculum and department.  He knows that as enrollment in the CAT Program declines for various external reasons it is more imperative than ever to have a strong CS curriculum.

How do you measure success for your program? For your students?

The recent national and international recognition for our program has been a fantastic validation of what we are doing. I always wondered if we were doing it right and now I know.  My students have always had a great deal of success once they left my program.  They get paid internships with local IT companies. My students are heavily recruited for their skills by the University of Central Florida. We have had one national and four regional winners of the NCWIT Award for Aspirations in Computing. I presently have graduates working for Microsoft, Apple, Google, Ebay, the NSA (sorry about that one) and other major tech companies.

What is the one thing you like to talk about regarding your program that I haven’t already asked?

I better not answer this question because I will just end up on a soap box and start tilting at windmills. I have a tendency to howl at the moon when I answer questions like this.

School name and web site: The Center for Advanced Technologies - www.cat.pcsb.org
(website fully designed and coded by the students in Lou’s program using SharePoint Portal Server 2010 as the base platform.)
Twitter: @lzulli
You can also find Lou on the Microsoft Partners in Learning website at http://tinyurl.com/m68gf85

For a full list of interviews in this series please see CS Educator Interviews: The Index

Thursday, July 25, 2013

CS Educator Interview: David Burkhart

Today’s interview is David Burkhart from rural Ohio. Dave is another teacher who has been very active in the CSTA and is a former board member. As you read though this interview you will see how helpful the CSTA has been for Dave. Like many CS teachers he is a bit on his own and CSTA resources are important for him.

Where do you teach? What sort of school is it?

I teach at Sheridan High School in Thornville, OH which is a rural school with about 500 high school students. Sheridan High School is a part of the Northern Local School District in Perry County serving the communities of Thornville, Glenville, and Somerset each with around 1,000 residents. Our communities are made up of several large farms and other agricultural related activities.

How did you get started teaching computer science?

I got started teaching computer science through my involvement with Computer Science Teachers Association. At the time, I was teaching middle school Science in another district that decided to add a technology teaching position. I applied for and was offered the position. In an attempt to create my curriculum, I came across the Computer Science Teachers Association’s website. After learning more about computer science, I added the curriculum to my middle school program. Three years later, the position at Sheridan High School became open and I have been developing a computer science program at the high school level.
Computer Science Teachers Association (CSTA) has been my main source of curriculum and help in creating my CS program. Our local chapter in Ohio has provided professional development and networking opportunities to assist me in my quest to offer my students a CS curriculum. The CSTA Standards have been integral in supporting me in defining my program. With the upcoming new state requirements, the CSTA Standards have given me something to use where our state technology standards have been found to be lacking.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

Word Processing – teaches the basics of Microsoft Word and word processing. As I add more computer science courses to my curriculum, this course has seen declining enrollment. I hope to combine this course with the Spreadsheets and Databases course to make more room in my schedule.
Spreadsheets and Databases – teaches the basics of Microsoft Excel and Access.
Multimedia – video production class. Microsoft Power Point, Google Presentation, Animoto, MovieMaker, Video Studio Pro 5, iMovie and any other program that a student might have access to on their own devices. This is the most popular course with students not interested in CS.
Web Page Design – teaches the basics of Web Page development using Microsoft Expression Web. I use the Microsoft Expression Web curriculum and I am looking at also using Code Avengers this year. Students learn HTML, design and how to use a web page editor.
Computer Science – teaches basic computer concepts using the Exploring Computer Science curriculum. Students use Scratch and Python to learn programming. We also explore the programming of robots using Lego Mindstorms.
Game Design – teaches the design and programming behind game development. We use Game Star Mechanic to learn the design concepts, Kodu to review basic programming concepts and Game Maker to extend the programming and design of games.
Java – this is my most advanced programming class with some students using Dr Java while others use NetBeans to complete programming assignments. This class is flexible depending on the students within the class. Some students remain at a very basic level while others move on to using one of my college textbooks to extend their learning.
Introduction to Microcomputers and Applications – this will be a new course for the 2013/14 school year and will be a dual credit course. Students will earn high school and college credit for this course. This course will focus on applications (MS Office) and some programming and networking concepts.

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

I like to use project based learning. I try to introduce a concept, model the concept for students, and then give them a related assignment. Not all projects will then be exactly like I had it figured out. This helps me to see new ways to do things and allows me to talk to students about alternative ways to do this same idea. Having students show me something new is what makes teaching exciting for me.
I feel that I need to learn from my students just as I hope they are learning from me too. Some of my students will come into my class with some background in CS that they have learned on their own. Some come into my classroom showing me ideas and new applications that I don’t know about. I have had to convince my students that I don’t know everything and that I can learn from them too.
I also like to have my students think about what they are doing one step at a time rather than just have them find the right way of doing something. This can be frustrating to students as they are used to just getting the right answer, they haven’t been concerned with the process behind getting the answer in the past. This seems to be a product of our current “state testing” situation. Understanding how they have gotten to this answer, I think helps them understand algorithmic thinking.
I am also experimenting with a blended classroom this year with my new dual credit class. All students in this course will meet with me during a class period and then spend another class period at some other time of the day for a work/lab period.

What is the biggest challenge in teaching CS at your school?

I feel my biggest challenge is being able to keep up with creating new courses, continuing with the current load and being the only CS teacher in the district. I am constantly changing things in all my courses and plan to begin consolidating the MS Office courses into a single class in the future. This will allow me more time to focus on my CS courses and developing new ones.
Some of my freedom in creating new courses comes from the fact that I don’t often ask for money to create courses. I look for free applications, free curriculum or develop my own curriculum for my courses. This factor is what makes CSTA and networking so important to me. CSTA and my networking resources are so important to me in finding new course resources.

What is administration’s support (or lack of support) like at your school?

I have been allowed to develop new courses (all of the CS courses and multimedia) and have been supported to create the dual credit course. Budget constraints are tough, so I have been able to create new courses without any cost to the district. The administration provided me with a new computer lab three years ago which continues to work well. This year, I will have Wifi within my room. While neighboring districts have been cutting technology programs (many schools don’t have CS in my area), my district has seen to continue our CS/Technology program.

How do you measure success for your program? For your students?

I feel that my program is successful because I have students who want more courses than I am able to create. This coming year, I have a student who wants to take the APCS Exam on his own. He plans to create his own course through an independent study. I am working with him to find curriculum that he can use to study the concepts he needs to know to successfully take the APCS Exam. I have also seen a rise in the number of my students who are attending post high school programs for CS related careers.
For a full list of interviews in this series please see CS Educator Interviews: The Index

Wednesday, July 24, 2013

5 Programming Mistakes To Warn Students About

I like posts like 5 Programming Mistakes You Should Stop Making by Rahul Singh because they help me focus my thoughts. Through the summer I am working on planning out my teaching for the new school year and this post reminds me of many of the beginner mistakes that students tend towards. I recommend the whole put but I’m also going to give my take on these “5 mistakes” in the particular case of student developers.

Copy-pasting code without understanding it

Reusing code is a great thing but it is risky business if one doesn’t really understand what the code is doing and why. Side effects are only one risk but it gets a lot of people. More often than not though the code doesn’t do exactly what a student expects. It may be close. In other cases the inputs are not what a student has/needs/wants. Borrowing code without understanding it often leads to more work rather than less. And then when the teacher/grader asks a student to explain it it all starts to look a bit too much like cheating.

Starting from scratch every time

This one bites a lot of students on the APCS exam. Students are asked to write a method in one part of a question and then use it in the second or later part of the question. Too often students rewrite the method rather than just calling it. Errors are bound to creep in this way. During the school year I see the same thing where a bit of code from a previous project could easily be used but a student writes it all from scratch. This seldom ends well. Properly written, tested (and in school graded with suggestions for improvement) code can save a student a lot of time and heartache.

Searching Google/Bing without trying yourself

Students often think of search engines as a quick way to get an answer without thinking much. This causes them to completely miss the opportunity to learn from the lectures and demonstrations they have had in class. The process of taking what one already knows (or has heard in class) and building on that to discover knowledge though their own work is a real missed opportunity.

Ignoring warnings

I know experienced programmers who occasionally ignore warnings. Often times this is because they know from previous experience that in that particular case they can get away with it. Even then it is not really a good idea. For students it is never a good idea to ignore warnings. A warning means that something is not quite right. It may not signal a hard coding error but it is very likely to signal a logic error. Warnings are a clue and they should be looked at very carefully. It is easy to ignore a warning if things seem to be ok but down the road there is likely to be a case where serious trouble will result.

Making Quick fixes instead of Permanent ones

Oh boy have I seen this one. Especially from boys in a hurry. Throw in a semi colon somewhere/anywhere and see the code compile. That is the ultimate quick fix but it never lasts. Add in some hard coded numbers – just for now – and never get back to replace them with constants. Students do a lot of things to just get it working for now without giving thought to long term concepts like maintainability and enhancability.  It’s easy to write that off with “its just a school project and I’ll never touch it again.” The risk there is that this builds bad habits that are hard to break later on.

I’ll be talking about these things with my students this year. Weaving them into the conversation (again and again) if hope of building good habits and critical thinking. How about you?

Tuesday, July 23, 2013

CS Educator Interview: Mike Zamansky

Mike Zamansky (wearing the white shirt in the center of the picture) zamanskyhas created a very impressive computer science program at one of New York’s top entrance exam high schools - Stuyvesant High School. Coming from someone (me) who attended a rival NYC entrance exam high school that’s good praise if I do say so myself. Smile One might think that for a teacher in one of the best high schools in the country by many measures the CS program would have an easy time of it. Not quite. Mike’s story is worth the read.

Where do you teach? What sort of school is it?

I teach at Stuyvesant High School. A large (800 kids per grade) public magnet school in NYC. Close to 30,000 kids take an SAT style exam (math and verbal multiple choice, no essay). The top 800 kids are offered seats. The school has about one third of its population receiving free or reduced lunch. It's about 60% male and in recent years comprised mostly of students of Asian decent. It's a very well known school with people such as Morgan Missen tweeting last year that "Stuyvesant High School is the new Stanford."

How did you get started teaching computer science?

After college I worked for a bit on Wall Street but found that unsatisfying. After a little consulting, I tried this teaching gig. First at Seward Park High School and then being excessed to my Alma Mater, Stuyvesant. At the time, there was no real computer science (1992), just one or two sections of AP and a couple of random programming courses all taught by math teachers.
I started teaching math but soon wormed my way into the AP course and started to build the program from there.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

We have three years of classes. I created our tenth grade intro course in the late 90s. It was a one semester course with a focus on getting the kids to think and problem solve in a particular way. The tools we use are NetLogo and Scheme. Neither are going to be used in the "real world" but both are wonderful in teaching kids how to think.
I was eventually able to hack the school into making this class a requirement. We just added a second half which uses Python as the tool and has a number of wonderful units, some of which I've blogged about, but unfortunately, the principal is rolling that back so it's not a requirement.
Our juniors take our version of APCS which is a super-set of the old AB curriculum.
Seniors can take our System Programming and Graphics classes. In Systems they study inter-process communication, socket programming etc. and in graphics they develop their own rendering and animation systems from scratch in C, Java, or Python.
Seniors can also take our Software Development course where the kids do end to end development with real tools. Recently a couple of the teams presented their work at the New York Tech Meetup. Very exciting.
We get all 800 in a grade for our intro. About 400 request AP but I'm only allowed to accommodate 150 in most years and then I'm further restricted to between 60 and 120 seniors. One of the things I've tried to keep in mind when designing the courses is how to fill in gaps that colleges usually leave. Hence using revision control systems like Git, real world tools, end to end group development etc.

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program you CS program?

What makes it my program? Well, it started as nothing and we've grown to 8 teachers. I've designed and developed all the courses and am generally considered the driving force.
Seriously, though, a lot is about culture and community. When my students nominated me to be graduation faculty speaker, I said I didn't know if I would win. One of the guys responded "but you lead the biggest cult in the school!!!"
We've managed to build our own subculture in the school where students and faculty work together in a relatively informal environment. I think this is what made it so easy to build a thriving alumni group, which I refer to as the Stuy CS family which has over 600 active members. Mostly doing tech and all willing to lend a hand to fellow family members.

What is the biggest challenge in teaching CS at your school?

StuyCS is very popular with the kids, the alums, many parents, and the greater NY Tech Community. The only place we don't get any support from is the Stuyvesant administration and NYC DOE. Unfortunately, that's a killer.
Despite building the program I have no real say in who teaches what, if the teacher even knows CS, what courses to offer, how many etc. I constantly have to try to convince the math chairman as to what the right thing to do is and of course when it's a math or CS thing, guess who wins?
It's the lack of support that actually has me thinking of leaving the school when I get my 25 years (2 years from now).

How do you measure success for your program? For your students?

Success for my student is simple: once out in the world, are they happy and productive doing what they're dong. For the program, I base success on two things.
First, feedback from my alums and the continued popularity of our classes.
Feedback from the alums tells us that we're giving them something of value. In kids in college always tell us how well and over prepared they are and those in the real world also sing our praises. I get positive feedback from kids that end up in tech and those that don't. While I only hear directly from the alums that like what we had to offer, those alums give me a window on the entire class of graduates so I'm pretty confident in the quality of what we do.
The programs popularity also tells me that we're doing something right.

What is the one thing you like to talk about regarding your program

that I haven’t already asked?

I'd say that in addition to the overall program, I'm very proud of the fact that we've brought in a number of raw teachers and successfully trained them. I'm also very proud of how we are received by the Tech community.

What is the one thing you like to talk about regarding your program that I haven’t already asked?

Since the city has shown no interest in supporting what we've built (see: http://www.nytimes.com/2013/03/31/nyregion/software-engineering-school-was-teachers-idea-but-its-been-done-citys-way.html?pagewanted=all&_r=0 ) we're working through our nonprofit CSTUY, to take the Stuy program out of the school and bring opportunities to more students. It's looking to be an interesting challenge.
More Mike Zamansky on the Internet
For a full list of interviews in this series please see CS Educator Interviews: The Index

Monday, July 22, 2013

Interesting Links 22 July 2013

The big thing for me last week was the annual CSTA conference. A great professional development experience as always. Almost 300 computer science educators were there. And they announced the dates and location for next year’s event. The dates for CSTA 2014 are July 14 & 15 2014 at http://pheasantrun.com/ near Chicago

I haven’t really blogged about the CSTA conference. I was pretty busy giving two talks and while I saw a bit of it I really didn't feel like I saw enough to blog. Fortunately a couple of other people have written some good summaries.

Computer Science Finally Part of Critical Federal Bill news on the CSTA blog  via @csteachersa

Check out: CS Educator Interviews: The Index  for the complete list of computer science teacher interviews including the ones I added last week:

Eugene Wallingford takes a look at AP Computer Science in Iowa High Schools  via @wallingf. It’s not a pretty picture.

Why scientists and engineers must learn programming – good discussion on the blog at CACM.

Nice interview with a good friend of mine: Jane Prey Targets The Gender Gap In Computing And Engineering   via @ElectronicDesgn

Becoming an Image Ninja with help from Dewald Esterhuizen via Coding 4 Fun - stuff I can use here!

Small Basic Guru - How to Make a Turtle Maze Game

Here is an interesting video of @natbro, co-founder of @Xbox, talking about the Inside of an Xbox http://www.youtube.com/watch?v=xQ4E1TjtVjc

Friday, July 19, 2013

CS Educator Interview: Robert Medrano

Today we return to Texas to talk to Robert MedroMedrano who teaches about as far south as you can get in the US. I met Robert at a TCEA conference a few years ago where I took an instant like to him.

Where do you teach? What sort of school is it?

I teach at Weslaco High School located in deeeeep south Texas referred to as the Rio Grande valley.  The area in general is considered to have a large population of low social economic families

How did you get started teaching computer science?

I was unable to get a job right away upon graduation from college and asked my high school principal if he could help me get into the districts I.t. department.  When I found out how much they paid vs. teacher pay I opted to go into teaching

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

I teach a pre AP course, a watered down version of my AP class. I cover basic programming concepts at a slower pace using Scratch, Karel and graphics.
I also have an AP section for the AP CS exam
Years 3 and 4 students can do independent study where we cover data structures, other programming languages and topics that students are interested in.

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

I cover a concept and create an assignment that emphasis that concept based on something popular to students that year.  For example when iPods were first coming out I had an assignment where students created their own graphical MP3 player.   I have my own moodle page where I upload assignments, created my own jing videos and have  livescribe videos as well.  I have pulled resources from textbooks and other teachers to created my own worksheets.

What is the biggest challenge in teaching CS at your school?

Convincing students to take computer science regardless of what they intend to study.

What is administration’s support (or lack of support) like at your school?

They need to do a better job getting students who are capable of taking the class to sign up.  Many of our counselors keep these students from my course in fear it may affect their GPA. I am always disappointed when I see students and their majors and realize they are not prepared because of the lack of needed courses they should have taken in high school.  Admin and Counselors should do more than just give schedules but speak to students about what they intend to major in and guide them to the course work they should be taking.

How do you measure success for your program? For your students?

At the end of the year if they are able to complete the final project with little to no assistance.  AP course is based on how many students pass the exam. 

What is the one thing you like to talk about regarding your program that I haven’t already asked?

Unfortunately, we are located so far from big cities such as San Antonio, Houston, Austin that my students really do not get a chance to visit companies that do cool computer programming stuff.  Also, many camps are offered in these larger cities that my students can not attend due to the distance. 

School name and web site: Weslaco High School http://www.whs.wisd.us/

For a full list of interviews in this series please see CS Educator Interviews: The Index