Monday, September 24, 2012

Starting week 6

Well, time flies when you're busy...  I haven't written here for a little over two weeks, and there has been more good and bad in that time - but mostly good, I think. I was frustrated last time with students not doing the pre-lab reading before coming into the lab, and a pretty substantial portion of the class took my admonishments to heart. I've graded the 4th lab now, and there's a substantial improvement: of the 80 points that come from lab activities (20 are from a post-lab quiz), fifteen students - about half the class - earned 70 or more points.  That's great! Unfortunately, there are a few students (around 7) that clearly were not understanding the basic concepts and either didn't turn in anything or turned in something so incomplete that it earned 10 or fewer points. I've pointed out resources for these students (posted solutions and walkthroughs, tutors, office hours, etc.), but those suggestions haven't been very effective. For my students that might read this, you need to take the initiative for your own success - don't give up!

Overall class averages aren't stellar due to the difficulties with earlier labs, but of the 31 students only 8 are currently failing. While I don't want any students to fail, that failure rate is pretty typical for introductory computer science classes - maybe it's even a little better/lower than freshman science and math classes in general. I still take it as a personal challenge to bring at least some of those students up from a failing grade to the point where they have a better grasp of the material and pass the class - I know that can be done!

This week we start talking about algorithms, which I think is a lot of fun. We'll see if the students find this as fascinating as I do - hopefully at least some of my enthusiasm about studying algorithms will rub off. And then from this point on, we'll start looking at a lot of higher level and fascinating things in computer science: concurrency, distributed computing, cloud computing, artificial intelligence, security, and more. I'm personally looking forward to talking about big issues, and spending less time on low-level details of BYOB. Let's look at the cool stuff!

Saturday, September 8, 2012

Week 3: The good and the bad

Three weeks down, and some good and bad experiences this week. It was a short week due to Labor Day, so we only had one lecture and one lab. The good part was the lecture - we went through a solution from last week's lab (for Activity 3), and I showed the students a solution "walk-through" for Activity 4 that can be accessed in Blackboard. I pointed out that this week's lab depends on the Activity 4 solution, so if people who didn't get that finished last week they need to go through the walk-through carefully so they understand the solution before Friday's lab. It seemed like everyone was following this, or so I thought. We talked about Lab 3 and how things have been rearranged in the writeup, so that there is pre-lab reading that covers the concepts, more focused activities to do in the lab, and then the follow-up discussion/quiz. We went through everything that students should be doing outside of class, and everyone seemed to understand this: they needed to do the pre-lab reading by Friday, reading reflection for Blown to Bits Chapter 2 by next Tuesday, and Homework 1 by Friday. Then in the remaining time on Wednesday we did the planned lecture on abstraction, and for once the timing was spot on - good discussion, and ended up right at the end of the class period. So all in all, I was in a pretty good mood after Wednesday - things went really well!

Then we get to the lab on Friday. If this description sounds like I'm frustrated, I am. It's clear that students did not take the pre-lab reading seriously, and almost none of them did it. Many students were also in the dark about solutions to last weeks lab, and probably no one went through the solution walkthrough. One of the first things I asked in our discussion at the beginning of the lab was for someone to name the three kinds of blocks in BYOB. This was the whole point of this lab, and the pre-lab reading was all about the different kinds of blocks and how to build your own block of each type. The most basic of all things was the three types of blocks, and every single student should have been able to answer that question immediately: command blocks, hat blocks, and reporter blocks. If you couldn't answer that, then you didn't do the reading - or you weren't paying attention as you read. There is simply no way on earth anyone could have mentally processed the pre-lab material and not known that answer immediately, because the pre-lab reading was all about making different kinds of blocks. For my students that are reading this, here's the point: If you don't do the pre-lab reading, you will almost certainly NOT be able to finish the lab in the allotted lab period.

Since this class is primarily new freshmen, we talked earlier about differences between high school and college, and one of the main differences is how much learning takes place in class versus outside of class. Two-thirds of your time on a course will take place outside of the classroom - if you don't do the readings and other things you are supposed to do outside of class, you will fail. It's really that simple.

OK, frustration mode off...  next week we have an upper-class student starting to work with this class. He will be a liaison between my class and the high school version at Weaver Academy, and since he also works as a tutor in the CS/Math lab, he will be able to help people out who are struggling. I'll try (it's really just a matter of time, but that is a big issue these days) to create some additional practice problems for students who are struggling with BYOB. I'll do what I can to help students learn this stuff, but what I won't do is back off and lower standards or in some other way reduce what we do. And students need to stand up and take some responsibility, and make sure they are doing what they are supposed to outside of class - and if the material or pre-lab reading isn't clear, ask questions. There is the class discussion forum, my office hours, email, and more. There's no reason anyone should be unclear on the concepts involved before coming to lab.

Friday, August 31, 2012

Two weeks down....


Two weeks into this class, and it has been interesting.  The first week and a day were great - everyone did great on the first lab, with some fun and creative solutions to the "make your own conversational script" part of the lab.  We had some good discussions in class - one of my goals with this class is not just to introduce students to computer science, but since almost all of the students in this class are entering freshmen (it is a "100" class, after all!) I also talk a little about how to succeed in college.  I had 5 "random college advice" tips that I went over on Monday.  I thought they were helpful, but it seemed to fall a little flat on the class.  I suspect (students reading this can correct me if I misinterpret this) that students really haven't yet grasped the level of personal responsibility they have now.  When I'm 10 minutes into class and over half the class is sitting there with empty desks - no paper out, no pencil, not taking notes - I wonder how in the world they expect to be able to review for exams.  It's so ingrained in me that the first thing you do when you come into class is to sit down, open a notebook and get out a pen to take notes that it doesn't occur to me that people need to be told to do that.  So I'll do that next week - make it clear that if they don't do that, I can almost guarantee that their grade will be a letter grade or more below what it could be if they took notes.  That's just how it is.

So after the first "week and a day" things were a little less smooth.  In the Wednesday class I spent way too much time with the Blown to Bits Chapter 1 discussion (and only a little "discussion" - I need to talk less and ask questions more), which only left 10 minutes for the 30 minutes worth of other things I wanted to cover.  I find Blown to Bits to be really great reading with intriguing stories, and I could probably talk for hours about it, but I either need to plan for longer discussions or need to show more self-control in talking about it.

On Friday we had the second lab.  Well, that was an interesting experience.  I planned for it to be a little more challenging than the first lab - that's the point after all, to ratchet up the difficulty over the semester - but based on student reactions the "a little" part of "a little more challenging" wasn't very accurate.  In the first lab I let students work at their own pace, and answered questions when they asked.  In the second lab I started that way, and when everyone was working quietly for an hour and so I thought people were getting things done - no questions, so everyone is getting it, right?  Wrong.   For students reading this: just so you know, from my station in the front, I can view all of your screens and see what you're doing (surprise!).  After giving a hint and still not seeing a lot of progress, I decided that we should be more proactive.  Wyatt and I walked around and checked with each student on what they were doing and where they were stuck.  That got many over their sticking points, and moving along on the assignment.  Clearly people were stuck - some really stuck - but no one was asking for help!  OK, lesson learned - we'll be checking up on you more intrusively in the future.  With appropriate nudges as we walked around, people started doing much better - clearly the students are all capable of this, but need to get bumped past little obstacles that come up.

Now it's time to work on creating the next couple of labs.  Hopefully the lessons learned from the second lab will make those go as smoothly as the first one, while still giving students some challenging material!

Saturday, August 18, 2012

The Promise of a New Semester

New semesters, and particularly new academic years, are very exciting. For those of us who are "old hats" in academia, preparation for a new semester is always hectic, but is predictable: planning for classes, creating syllabi and initial assignments and lectures, doing last-minute student advising (what in the world are continuing students doing coming in for advising now??), meeting with new students and prospective graduate students. As I ran around campus this past week, students have been everywhere, moving in to the dorms and exploring campus. Seeing first-time freshmen with their parents brings back the excitement and uncertainty of when I was a freshman ... well, let's just say it was a few years ago. From the student's perspective, it's a big new world, and you'll be responsible for yourself in a way that you've never had to be before. From the parent's perspective, it's all about letting go and trusting that your children will make responsible decisions (a parenting experience that I'll have in just a few years!).

Most of the students in this CSC 100 class are first-time freshmen, so you may very well be experiencing this yourself. I'm looking forward to this class, but I have a confession to make to you: this is the first time I have taught freshmen in around 20 years. I will be making my best effort to look at things from your perspective, and to remember that many of you have no previous experience in computer science. If I stray from that, feel free to remind me - I'm here because I am passionate about computer science, and want to share that passion with you and start you on the fascinating road to understanding the wonders of computing. If I'm doing things that are not allowing you to succeed (and here "succeed" means learning, not just getting a grade in a class), then I want to change things so that you can succeed.

Finally, this is a brand new class - I've never taught it before, but no one else has ever taught exactly this class before either. This class is based on the Beauty and Joy of Computing class at the University of California at Berkeley, but a lot of the class reflects my own changes and ideas. I want to know what you think about the class, and ideas you have on ways to improve it. You can always talk to me or email me about this, but I also want to encourage you to keep your own class blog. In addition to letting me know what you are thinking about the class (I'll read your blog!), it will help you put things into perspective if you occasionally stop and reflect on what you're learning and what you're experiencing in the class. You won't be graded or judged based on what you write, even if it is critical, as long as you are professional - don't make it personal with either me or other students, and don't use language or write anything you would be embarrassed about your mother or grandmother reading. Instructions on how to set up your own class blog are on the class web site, and if you email me a link to your blog I will add a link to it on my blog's page so others can easily follow your blog.

I'm looking forward to a great semester!