Tuesday, December 16, 2008
Quizzes
Tuesday, November 18, 2008
Persuasive Media Project
- What presentation did you watch?
- What were they trying to convince you of?
- Who created the message?
- What techniques did they use to attract your attention or convince you?
- How might other people understand this message differently from you?
- What lifestyles, values, and points of view are represented in or omitted from this message?
- Why was this message created?
- Who is the intended audience?
Friday, November 14, 2008
Putting Research to Work
Idea
- It would provide role models for middle school students, to encourage them that CS could be for them.
- It would encourage the high school/young college students that they are worthy along with reinforcing what they know
- It would give some interesting skills to middle school students that they can not necessarily get in other places like school or after school programs
- It can serve as community service for the high school students.
Thursday, November 13, 2008
Catherine Didion Keynote
“Rising above the gathering storm” – NRC report
- Assumptions and stereotypes about who does science and engineering still exist – Time mag front page,
- Assumptions and stereotypes about women - Newsweek “What Women Want” cover Sept 22, 2008
- Assumptions about who will be the future leaders in science and technology impact students’ choices – example full page ad in Feb 17, 2006 CDG
www.implicit.harvard.edu Science Implicit Association Test
Girls of color are much more interested in sciences than white girls, but they are very underrepresented at the undergraduate level.
How do we keep them away?
- Lack of integration of STEM courses with other parts of the curriculum
- Contributions of women and minorities are virtually invisible – no role models – the instructors there may not be who the students want to be
- Much of the science and engineering work seems devoid of any social relevance
- Constrained curriculum with many critical paths
Busch-Vishniac and Jarosz, “Can Diversity in the Undergraduate Engineering Population be Enhanced Through Curricular Change?” Journal of Women and Minorities in Science and Engineering, Vol 10, 2004
What Engineers Tell Young People:
- Engineering is stressful and challenging
- Stress the importance of SUPERIOR math and science abilities
- “It’s not easy – but if you’re the type who when faced with a problem some would call impossible is even more driven to move mountains to find a solution, then you might have it in you to be an engineer”
IEEE is training engineers who go into classrooms, “first do no harm” – they have a webinar
www.engineergirl.com Most popular part – ask an engineer
Imagine that! is an Engineering contest
Zits Wednesday, October 15, 2008
Help and allow students to communicate through technology they use – You Tube (Large Hadron Rap), Facebook groups, iTunes science section
High School: Non-white girls (41%) are more likely than white girls (~21%) to say that engineering is a “good career” (Study by WGBH)
Message Testing:
For girls one of the strongest messages was: Live Your Life, Love What You Do. 42% of girls & 41% of boys rated this very appealing and 8% somewhat appealing. Tope tested message among non-white girls (44%).
Other top messages were: Creativity Has its Rewards and A World of Difference
Our traditional messages are not about risk-taking or being part of a group. Reinforce what students think they want to do. Military is doing this now.
Take the 10 best and 10 worst behaviors of students and use them in your marketing
Parents are an important constituent group – kids listen to their parents
For girls, older girls are important sources of information. Popular personalities are not
Engineer Your Life - www.engineeryourlife.org Totally open source – you can throw your name on it, download it, use it! Includes PPT for use with guidance counselors!!
“A lot of the work we’ve done is to change people’s perception of the potential of the students"
Sunday, September 28, 2008
Is programming necessary?
Crafty and CS-y
Friday, September 12, 2008
Big Ideas in Computer Science
Here are the four big ideas I thought of:
- Computer tools are designed and the design affects what they can do.
- Computers precisely execute instructions created by humans.
- This would include abstraction – what the instructions look like and how they are translated between layers.
- It includes algorithm creation and predicting what the computer will do given a set of instructions.
- It can include flow of instruction.
- It MAY include programming.
- Computers are used to solve many problems across many disciplines.
- Ideally here students would design algorithms to solve various problems such as traffic flow, databases…
- It would probably include the limit of computing – what problems are computers not good for solving and why.
- Ideally here students would design algorithms to solve various problems such as traffic flow, databases…
- Computing has a role in society
- Ethics,
- Use of the tool,
- History of computing and how society has changed based on computing technology…
- Ethics,
Friday, May 16, 2008
Motivating Students
Remind me to tell you about the argument she and J Strother Moore got into.
But first, I want to consider the question of inspiring students to learn about computing at a deep level. When I Googled Kate, one of thetop links is to a great blog post she wrote. Here's an excerpt:
Like many of my generation, I grew up on a computer with little or no content, and if I wanted it to play, I had to be creative. I had to make it do what I wanted it to do. I went on to study computer science in college and graduated with a BS from Stanford in 1997.This is in line with a thought I had last summer about learning curves vs. quality of output.
My youngest brother Michael followed me there, and majored in CS as well. He works for Microsoft now. By the time Michael was nine our family had a game console for our TV and fantasy adventure games with elegant graphics on our Apple IIgs. He grew up playing Nintendo and Bard's Tale. He had an email account before he was out of high school, and knew how to browse the Internet long before I did.
Unlike me, though, Michael didn't write a single line of code until college. Michael was an extremely creative kid, but he didn't bother spending that energy creating loops, routines, and functions.
When we were kids, computers were pretty limited in what they could do. You could write a program in BASIC that was almost as good as the programs you could get on floppy at those game swap events on Saturdays. You could buy BYTE magazine and laboriously type in the programs, seeing exactly how the program was put together. It was reasonably straightforward to create programs that were engaging, that your friends would say, "oh cool!" (or the 1982 equivalent) if you told them or showed them.
The world has changed a lot. A kid in the basement couldn't have written World of Warcraft or the Sims. In some ways the tools we have make it easier than ever to create interesting content - Dreamweaver making HTML and PHP at the click of a button, drag-and-drop programming in Flash or Alice, image manipulation with iPhoto or Photoshop - those were all inconceivable back then.
But the increased complexity under the hood - the higher computational power in home computers, the embedded systems throughout our lives - have also abstracted away our ability to tinker. Imagine taking apart your iPod to see how it works. Similarly, kids are so used to interacting with fun! neat! systems, that the introductory programs they're cognitively ready for aren't impressive enough. Hello World just doesn't cut it in our in-your-face media-rich world.
My students struggle with some of the ideas of CS. That a variable contains a value is a new idea for them. They're smart, capable, and they figure it out, but there are developmental issues - their brains aren't ready for all the deep ideas. Yet they will get turned off if it seems like too much work for too little payoff, if they can't make things that make their friends say, "oh cool!" (or the 2008 equivalent).
Sunday, March 09, 2008
Seven Random Facts
Seven Random Facts about the Wicked Teacher:
1. I have never worked food service. I did decorate a cake once for pay - it was for the birthday party of the kid across the street, when I was a teenager. I had visions of entrepreneurship, but it turns out that I have bad time management and wasn't motivated enough. I've never worked as a waitress or cook or hostess or anything like that.
2. I have a huge sweet tooth, but I don't like candy. I'll eat just about anything baked, though fruit desserts are my favorites, like apple crisp, peach cobbler, baked pears, strawberry-rhubarb pie... I prefer those by far to chocolate desserts. I also love cupcakes. But then, who doesn't love cupcakes?
3. I have never owned a new car. I don't object to owning a new car, I'd like to have one some day, but so far every time the decision to buy a new car has come along, a great used one has presented itself.
4. I wear three rings on my left hand and usually none on my right. I also almost always wear a digital watch. I like having a watch that tells me what time it is and the day and date. My mother hates it that I will wear it even when it doesn't go with my outfit; she bought me a fancy dress-up watch that I try to remember to wear when it is appropriate. But I like the digital better.
5. My favorite word is fungible. My favorite computer science word is algorithm. My favorite amino acid is phenylalanine. I think it is weird that most people don't have a favorite word, though I don't really think it is weird that they don't have a favorite amino acid. (But they should!)
6. I am an elder of the Presbyterian church.
7. I love vegetables. I like meat pretty well, but I have always loved vegetables.
Transcending the Debate
While perusing the archives, I found Jane's post about transcending the debate.
There are so many places this rings true in my life. I got into a conversation with a coworker on Friday afternoon about whether our faculty should be encouraged to have websites, forced to have websites, or left well enough alone. I think that at least they should be encouraged, but feel un-ready for the fight. Various among them will demand extra help, handholding, rules, no rules, and that I do a bunch of un-related tasks. (Our "internal web page" is a huge mess, which is nominally my responsibility, but also not needed since every teacher has a direct URL to their web space.) The coworker pointed out that I need to just tell them to be quiet and make a web page already, not get caught up in debating my own weaknesses where those weaknesses are not relevant.
Engaging with the faculty and staff about things they must do, even when I myself am not perfect, is a good place to start. I hesitate to lead, because I fear that they will point out all my weaknesses. Which is likely, really, but I need to stop worrying about it and just get out there.
For me, transcending the debate can also be the debate about teaching - curriculum, content, pedagogy. Every teacher needs to do what works best for them and what is best for kids. I think there are important ideas which all citizens should know about computing. I'm not sure what they are, but getting mired in the debate about whether Java is the best language for the AP or whether Alice's interface is too clunky isn't helping us discuss the important ideas. Don't get me wrong, I love a good debate, but as a discipline, we need to really focus on what is important.
Maybe the most important thing is assuming both intelligence and goodwill in others. This isn't a debate point, precisely, but I think we engage in the debate (any debate) and start thinking I'm right, s/he's wrong. Which isn't helpful - it means we're closed to hearing good ideas.
Now I should get focused and do some grading.
Monday, March 03, 2008
Organization
Then we built the binary search algorithm in a flowchart, then I showed them the program. All that was good - we covered important ground. The students were Very Glad that I wasn't making them write the guessing game program, though, since they thought it was boring.
In class, they told me they've already used a website that randomly generates Shakespearean insults. So while they thought the project idea was kind of neat, and definitely better than the guess a number game, they were not as excited as I'd hoped. I pointed out that this was a program they would write themselves, but a number of them are just as happy using someone else's work rather than do the work themselves.
Then, and here is where the organization part comes in, we didn't get as far as I'd hoped in class. They got more confused by conditionals than I'd expected. So I slowed down and gave them an interim assignment, to finish a small program with a conditional in it.
The little conditional program is very similar to the Shakespearean insult program they're about to be assigned. I'm comforting myself that it is scaffolding, and for the students who need it, that is true. But for the students who are really bright, they're going to be bored.
I need to focus on being more organized, providing solid stopping points, and having very clear assignments that are logical. I wish I'd stopped earlier on Tuesday and given them a small assignment. Then we could have gone through conditionals on Thursday and assigned the Shakespeare thing on Tuesday.
Oh well. Better luck this week!
Wednesday, February 27, 2008
Teaching Programming
This year I'm switching from Perl to Python. I'm also hugely overhauling my teaching style. I was convinced by Vern Ceder (and various other sources, I'm sure) to get to graphics as fast as possible and skip the endless pedantic slog between here and there. In nearly all of the books I have used as resources, graphics are late, late, late. I decided to take a page out of the media computation book (not literally, but mostly only because I don't have a copy), introduce graphics as fast as I can and do lots of Just In Time teaching to backfill what students need as they care about it.
I want to mention my incredible gratitude and luck at the support I've received. Vern's presentation at NECC 2007 was transformative in my thinking about this unit. Getting to participate in the Chapman University workshop about teaching Python gave me the basics of the language. And most amazing, I have been meeting with Guido van Rossum regularly this fall and winter. He has reviewed my code, explained concepts without demeaning my lack of knowledge, and regularly reminded me what beginning programmers are like when I waver about presenting the material in this unusual, out-of-order way. He might be the nicest super-geek I've ever met, though Tom Zeller is right up there.
Day one went great! I started the students out in IDLE in interactive mode. We walked through print statements with strings and then numbers. It was great - the kids let right to the places I wanted to go, like learning about a syntax error when
2x2didn't work the way they thought it should and testing what happens when you put math into quotes. I introduced variables super-quickly - in the past, variables would have taken an entire period, this time it was almost an aside, as a way to do math. Similarly, I introduced for loops and the range() function in about 3 minutes because I was up against the end of the period. The kids followed pretty well. I stopped to check the comprehension level several times and while it was slightly overwhelming, they were fitting it together pretty well. One thing that went very well was that I'd grabbed a few photocopies of their math textbook so I could show them how to use Python to program some of the problems they would face later that day in class. The whole concept of working collaboratively with other teachers is the subject of another post, but I was very happy at drawing the connection.
There were a bunch of things that went really well. It was very interactive, the kids were engaged, and they were typing right along with me. I think they really got that you can (and should) create hypotheses and test them right away. "What if you do blah?" "Let's try it" "Oh, cool!" They had terrific ideas and were able to figure things out really fast.
There were a few things that were, um, sub-optimal. For one, I had planned WAY more than I could reasonably teach in one period and didn't cut myself off fast enough - I was too excited about the connection to math. I would have liked to have given the students a small homework assignment to write a program and didn't have time to do so. I'm okay with it since not having homework makes the students happy and I'd like them to think programming is fun. Yeah, not optimal, but I'm looking for the silver lining.
Second, the Just In Time teaching requires the teacher to be flexible and able to quickly analyze situations to figure out what is going on and what is worth covering. Some of the time that worked well - on the fly I decided not to cover modulus and the sqrt() function in the math module. Some of the time it didn't work well. Their math problem was to determine five values of x that would make 2x-6>=3 true. I showed them how to do it but then was preparing to segue them out of interactive mode and into script mode since it had to happen 5 times. (This was also where loops came in, even though it meant skipping conditionals!) In one class, a student suggested just programming y=2*x-6>=3 and then iteratively changing x and re-evaluating y. Which, of course, didn't work right, but on my feet I couldn't remember that it was because y had been set by what the formula evaluated to in that moment. Duh. It wasn't horrible, but I should have known better.
Tomorrow I will show them two longer programs - one that is a "guess a number" game (binary search!) and one that generates Shakespearean insults. Then they'll be on their own to write a little program. So exciting!