$msg = ""; $myaddress = "sacha" + "@" + "sachachua.com"; $page = "2003.09.23.php"; $page_title = "2003.09.23"; $page_updated = "2004-11-2106:44:1306:44:13-0500"; $maintainer = "sacha" + "@" + "sachachua.com"; require_once "include/calendar.php"; require_once "include/planner-include.php"; require_once "include/header.inc.php"; ?>
|A1||X||Make Flash thing for exceptions|
|A2||X||Make Flash thing for files|
|A3||X||Make Flash thing for args|
|A5||X||Get self a USB thumb drive|
|A6||X||Re-sort CS123 midterms (TeachingWork)|
- Given: the WordTester class - explanation of algorithm to follow, can be treated as black box for now, and an Applet which does KeyListener and whatnot - Description of algorithm in English
More to come.
More colleges and universities see open-source software as an alternative to commercial products.
Proceedings of the Fourth National Technology Leadership Summit: Open Resources in Education
(Edited by Glenn Bull and Joe Garofalo, University of Virginia, USA)
- What is a good first programming language? - Computer science education in small colleges - Mentoring women and ethnic minorities in computer science - Supporting undergraduate research projects - Detecting plagiarism - Teaching writing skills to computer science undergraduates - Constructivist learning in computer science - International perspectives on computer science education - Interdisciplinary curriculum for computer science majors - Enriching computer science education with internships and co-ops - Distance learning in computer science - The use of Open Source Software and Linux in schools - Practical research efforts that enhance classroom learning - The role of mathematics and critical thinking skills in computer science
Articles should include a basic description of the kinds of problems being worked on, the state of the art of research, the state of the art of commercial applications, open problems, or future research/commercial development trends. Interviews with researchers; reviews of related books, software, videos, or conferences; and opinion columns on related issues are also welcome.
Feature articles should be between 1500 and 6000 words. Reviews should be between 800 and 2000 words. Opinion columns should be between 800 and 3000 words.
Guidelines at http://www.acm.org/crossroads/doc/cfas/csed.html
Today's reflection is on the introductory sequence. Now, I know I write long e-mail (this is actually medium-ish, so don't worry about it) but I would rather have replies than (+1 Insightful) moderations. ;)
While Abbey and I kept Bong (stifled snicker; must still get used to calling my former teachers by their first names) company last Monday, we talked about school stuff. In particular, I brought up my interest in the introductory sequence - CS21A/CS21B in our school and CS1/CS2 in computer science education literature.
- I like the introductory sequence. - I think it's worth working on, so I want to do research and develop material. - But people advise me to plan to grow out of it.
I like the introductory sequence. I would probably not mind teaching it, well, forever. I love showing how computer science concepts can be applied to real life. I delight in finding or making up creative exercises and ways of explaining things. I suspect I'm more suited to the introductory course than, say, to senior-level or highly technical courses. I make an effort to be warm and approachable, and I want to get students excited about the course. (Of course, it's awfully hard to do so at 7:30 in the morning. Note to world: I am not a morning person!)
(That said, I have my unbrilliant days. Eep. Last Monday occasioned an emergency hot chocolate.)
Small talk during the Teacher Formation Institute (TFI) usually centers around what department you're with and what subjects you teach. Whenever people learned I was teaching CS21A, they'd nod and go, "That's the Java course, right?"
On the other hand, I have come to believe that one of the most important things we can help students develop in an introductory course is the right attitude. Students need to feel that they can learn how to do this and that it can be interesting. We also need to help them develop the skills they need for independent learning. I want students to realize that CS21A isn't just about Java - it's about learning how to solve problems and learning how to learn. (Or something like that. Need some help here.)
Goal: Reach people on the attitude level, not just the knowledge level. (Make sure they pick up the requisite skills along the way.)
I shared a few of my exercises and ideas with teachers not only here but in other schools as well. I've had some feedback (linked list game was fun, 5x5 was cool).
I've come across some learning object repositories on the Internet (see one of my recent wiki posts), and they're really cool. I'll browse through the site soon and pick out particularly useful resources you might be interested in.
I doubt I'm the first person who wanted to collect all of these little CS lab exercises, presentations and animations in one place. There's probably a treasure trove of interesting exercises and reflections just waiting to be discovered. I remember seeing a site for algorithm animations before. What about the other concepts? What about the skills that _aren't_ taught in books or tutorials?
Goal: Organize CS1 resources so that other people can exchange ideas, exercises, and even notes on how to teach (or at least what mistakes to avoid)
It makes sense. Some students need a bit more scaffolding, though. I want to find little improvements that can help students help themselves.
Goal: Engage students in learning. Help them develop independent learning skills.
Bong raised an important point. New faculty are expected to teach the CS1/2 sequence because that's what they're most familiar with and probably most qualified to teach. That's what teaching assistants in other universities do - they handle the recitation sessions for the introductory courses.
There are only two blocks of ~17 students each in this year's CS freshmen batch. If I stayed in CS21A/B forever, what would new faculty teach? They'd be forced to deal with a higher-level course right away.
I know this is logistically impractical. What would I do - teach just one class? Maybe if I worked part-time - maybe at two schools - but then there's commuting, preparing not only for two classes but possibly even for two ways of teaching, and dealing with all the paperwork...
(Maybe I should just find someone really rich. Yeah, right. ;) )
Bong also said that I should look into developing my other talents. I'm also into algorithms, although Doc Mana, Marco, and Jon seem to have dibs on that. Again, I like showing real-world applications for the things we learn in class. I had a lot of fun showing some of the 4th year students that the merge sort algorithm they had taken up in CS110 could actually be used to quickly sort large piles - regcards, paper, whatever. Then of course there's Linux or maybe even that wearable computing thing (for which I seem to have reluctantly become a resource person). Logically speaking, I should explore my potential, develop other talents, and try to do what most people find difficult or intimidating instead of the "easy stuff."
I intend to maintain interest in a somewhat more complicated area because that keeps me excited about computer science and it allows me to show new students something cool. That said, I really, really like intro.
It's easy to tell me that it's impractical for me to think about focusing on CS1 and CS2 for research. =) After all, it doesn't seem to be a serious-sounding area of research. We're teachers! We do that everyday!
I just have a nagging feeling that we're not asking questions we
probably should be asking. When we do ask them, we don't write the
So. Yes, I know, I should probably go into some funky cool high-tech field of computer science instead (grid computing? ;) ), but...
After some thinking about it, I realized that just because new teachers teach the introductory courses doesn't mean that I have to leave the courses behind. Every batch there might be new teachers who need to do CS21A, and I want to make sure that they not only have a rich archive of material to draw on - lectures, exercises, animations, whatnot - but also notes that will help them survive their first year of teaching (that is, if I manage to do so myself). Not all of this will come from me. In fact, I hope that most of it will come from you and the other teachers I know - you know so much more!
We're already a large part of the way there, mostly thanks to the old slides from Dr. Sarmenta, Dr. Vergara, and the other teachers. We have ideas for projects. We have a way to engage the advanced students - we've already got the contests going, and this batch looks quite promising. Baby step forward...
I don't want to just work on CS21A in Ateneo. There are lots of CS or
IT schools in the country. I want to share resources with the others.
I'm doing it really, really, really informally now - chatting with my
friends in other schools doesn't count as formal collaboration!
- I keep a journal on my wiki. I reflect a lot even on things that
might seem like common sense to the senior faculty (and probably most of the junior faculty too).
- I encourage people to blog their reflections on computer science
education. (So far, no one here has really taken to the idea. :( Still, I like reading other people's education blogs.)
- I try to think of exercises. I write them down and share them on the
- I write down what other people have learned.
- I've made a few short Flash animations for some CS21A concepts.
- The class website and mailing list is open to everyone, and I get
occasional comments from outsiders.
- I occasionally swap notes with people from other schools. The
general consensus is that we're doing quite well and the experiments are good.
I want to
- find out what you think - meet people with other teaching styles - learn how to do research - be able to credibly present questions and findings to the scientific community
A PhD seems like the logical next step. That and talking to people of course.
I decided to spend one to two years teaching first. That will give me a feel of the problems and help me identify some questions I want to explore. Next step - identify the universities I want to earn a doctorate from. In particular, look for universities with teachers who are legendary for cool teaching or computer science education research. (Very few. Quite strange.)
I would like to teach for, like, forever.
I see myself eventually
- trading notes with many CS1/CS2 teachers all over the world
- maintaining or contributing to a repository of learning objects for
- teaching a few intro or general CS courses at a university
- mentoring other teachers - it's a great way to say thank you to
people who had helped along the way (but of course it's not the only way. Reply with an insightful comment and get a cookie/chocolate bar/whatever! ;) )
- watching at least one person get at least one Aha! moment everyday,
if I can help it ;)
- Have you reflected on teaching lately? What insights can you share
with people who are still on the way to where you are now?
- Do you know people in other schools/companies who are passionately
into helping people learn? Please introduce me to them! I want to learn from them. =)
I haven't really polished this - it's around 10:30 pm - but I'd like your comments anyway.