Tag: Education

  • Teaching Chaos

    Teaching Chaos

    Chaos Theory
    Credit: flickr / Steve Jurvetson

    My friend Linda teaches drawing at University (amongst a wide assortment of things), and she was explaining a fascinating exercise to me.

    Requirements: white paper, charcoal, eraser, glue stick & tolerance for dirt.

    This is all about developing lots of strategies for recovering from errors and changes, and stumbling upon expressive, aggressive marks and effects that you can integrate into your safe, well-observed drawing.

    1.

    Start drawing the model, large, over the whole page

    Once everyone has a drawing well under way, committing to using the whole page, ask the model to change one thing about the pose, and ask the students to smudge out or erase the drawing as needed to incorporate the changed pose. Then ask the model to change again, and again. Eventually the students learn to use the smudges, ghosts and erasures as constructive marks in a drawing that combines observation and expression

    Give them a couple of tries at that. First time, they will learn what can happen. Second time, they can start to leverage the effects, not just recover from them.

    2.

    Like that, but after a couple of changes to the pose, stop the students and tell them “Tear your drawing into two pieces and keep the one you like better. Crumple the other piece up and throw it away. Look at the piece you kept. If you like it all, keep it. Otherwise, tear that in two and keep the one you like better. Lather/rinse/repeat until you have a fragment of the original drawing, a fragment you like. Glue it onto a new page and keep drawing.”

    3.

    Like that, but then put a splodge of white tempera paint or gesso into the palm of everyone’s (non-working) hand. Have them use that as hand-painted “white-out” to make changes to the drawing. Students gradually discover that they can not just erase but blend in charcoal and apply paint as highlights and other constructive marks. Erasure, tearing and patching fragments together are all still in play.

    4.

    Now play with equally messy colour – water-soluble crayola markers. Draw for a while in colourful crayola markers, then spray with water until they bleed. Integrate white tempera paint (which never perfectly covers the marker, and often blends into it) as you go. Keep brush and black ink, and all the strategies above.

    5.

    One of the hardest, weirdest experiences is working on a drawing for longer than an hour. Of working on something, and stopping, and coming back to it the next day… and holy shit it’s like it was made by a whole other person, and you need to look it over and figure out what today’s artist wants to do with it next.

    So let’s approximate that effect, fast-forward, in the classroom, with tag-team drawing

    Arrange students in a circle around a subject (still life or model), start drawing in your choice of material. One they get something established on the whole page… stop. Have them leave the drawing, pick up supplies and move to the next drawing over. Tell them to “Look at it as if it were your own. What does it need next? Do that”. Next drawing, next drawing.

    After adopting several drawings, have them come home to “their” drawing and look over the many marks and styles and changes that classmates have applied. Students then work over the whole drawing, including any of the strategies used above, to emphasise and reiterate the properties they like, downplay the things they don’t like, make some corrections and integrate the whole thing into one image

    6.

    If students are really risk-tolerant and energised by this approach, ask the very best ones to send the drawings one direction while the artists travel the other. The drawing no longer aligns with the viewpoint on the still life (or model) and students have more extreme changes to cope with, change or embrace.

    7.

    Then you give them long sustained poses with complete free will and let them apply what they’ve learned when they want to.

    How Could We Increase The Tolerance for Chaos in Software Engineering?

    1. Shifting Priorities. Assignment is a choose your own adventure – you have a list of features to add, and some discussion about priorities of each. There are a series of deadlines, and at each deadline you have to hand in a feature, but it’s up to you which. The catch – each new round of deadlines, the features and the priorities change. The worse the choices you make early on (most interesting feature instead of most important? Added bells and whistles instead of infrastructure?) the harder things will get.
    2. Shifting People. Assignment is a series of features. After each deadline, you get someone else’s code. You lose marks for re-writing it unnecessarily. Added  chaos – the features are not ordered.

    Group work is supposed to teach this – or the experience of working with other people in a team, at least, and sometimes it works, but too often one person takes on the task of writing everything. Other students can then feel alienated and inadequate, view it as their failure to be the person doing all the work. It’s actually a failure of the exercise.

  • Getting Started with the Raspberry Pi

    Getting Started with the Raspberry Pi

    Raspberry Pi Boxed
    Credit: Wikimedia

    I lucked out in being in town when the Women Powering Technology Raspberry Pi event was on, and also in hearing about it – and being allowed in at the last minute!

    Of course I had heard about the Raspberry Pi, and loved the idea, but I’m pretty intimidated by hardware and cables, so it had never occurred to me to buy one. Now, I want one!

    Judi McCuaig from the University of Guelph was running the workshop, and started by talking about their use of the Raspberry Pi in their first year course. I have long thought it is cruel an unusual to teach first years C or even C++, but since they have to teach C at Guelph right now, at least it’s fun and exciting.

    Instead of a textbook, each student buys a Raspberry Pi (no more expensive), which they partnered with a hacker space to package and sell to the students. It has a custom OS on it, and comes with everything the students need to get started.

    It addresses the problem of the students bringing in their own computers, which they are afraid to break. Now they all have the same platform. And the flakey SD card (or, pulling it out at the wrong time) means the students are even using git and checking in their code constantly.

    I think it’s a really, really cool idea, and aside from the use of C, addresses some of the improvements in curriculum and experience that we know make computer science more inclusive.

    Then, we had a little time – maybe an hour – to play with it ourselves. We started by making a light blink on and off. My team (a Chemical Engineer, and Electrical Engineer, and s Software Engineer – which sounds like the start of a joke…), by going over and being the last to hand back our equipment, managed to also create a little program that took in a string and blinked in out in Morse Code. So much fun!

  • Pycon AU: Making Python More Fun for Everyone

    Pycon AU: Making Python More Fun for Everyone

    Screen shot from Spy Who Coded game
    Screen shot from Spy Who Coded game

    Interesting talk from the creators of SingPath – games to help people learn to code. Left me wanting to try the game! Some insights about women and what they find off-putting – nothing unexpected. Notes below:

    Intrinsic vs. extrinsic motivation: autonomy, mastery, purpose (Dan Pink’s book – Amazon).

    Want to extrinsically motivate people without killing intrinsic motivation. This is really hard. Decided to focus on extrinsic.

    Quests: “The Spy Who Coded Javascript” – it’s a first person coder.

    Games are hard fun. They:

    • Have clear goals.
    • Require concentration.
    • Give immediate feedback.
    • Deep, effortless involvement.
    • Uncertain outcome.

     

    Hard to find balance – some people find it too easy, others too hard. Answer: adaptive difficulty (difficulty changes, depending on how you’re doing).

    A setting easier than easy – drag and drop. This is not intimidating. Also allows for tablet based – an iPad app.

    Individual learner – try to maximise classroom efficiency.

    Tournaments – everyone in the room is solving the same thing, at the same time.

    Idea: “Tournament based teaching”. First 5 minutes are close-book, after that open book. Peer based learning – first 10 finish, then go and help people who haven’t finished. There will always be some students who are very fast – these students then get to explain/mentor.

    First pro tournament at Pycon APAC.

    Collaborative learning – fun round, then prize round. No qualitative judging, the most efficient coding wins.

    Team-based tournaments.

    Pair-programming tournaments.

    Contemplating: mixed doubles (one female, one male on the team) – encourage peer-based learning, diversity.

    How do you balance carrot/stick with things that people are intrinsically motivated for?

    Women less likely to participate in the competitive rounds – the fun round, yes, prize round no.

  • Come the Revolution

    I was talking to a – male – programmer the other day, and he was telling me how much his high school CS teacher sucked. This is not an uncommon story. I know some good high school teachers. I’ve heard about a lot of bad ones.

    This particular bad one taught Visual Basic, and gave this guy a book on Java and told him he couldn’t expect any help.

    I think this guy expected me to be, I don’t know, surprised? Horrified? Worried?

    Actually, I said,

    “I don’t worry about people like you. You know you’re interested, your parents are supportive, you find ways to learn, now you’re doing fine. But – how many people could have been interested, but never got the opportunity to find out what computer science and programming really are? This is why I worry about women, because I think women often fall into that group of people, and if we help those women, we help everyone in that group.”

    I’m very cynical about the education system. I think (hope?), that eventually we will get rid of “teachers” and instead have TAs whose job is to keep order, whilst students get their personalized learning from educators via a computer and the internet – the use of instantly graded quizzes, live-chat, and forums etc.

    That would give more scope for following the things you’re interested in, you have some minimum requirements (say X number of core modules to be completed within some time frame) but students can progress at their own pace (one of the most depressing things I found at school was having to learn things at the speed of the slowest person in the class). There is then less need for the term system, a strict timetable, or a certain number of hours a day. Home school becomes more feasible (and a curriculum can be mandated, so no skipping actual science in favor of creationism), and extra-curricula activities more important for socialization. It would be easier to do intense weeks of science with actual scientists (apparently high school teachers who are anxious about science are passing that anxiety on to their students, similar to the way that happens with math and girls).

    In this utopia, quality would be higher, the job of keeping order and educating would be separate, students would have more freedom, and you could pay educators more because they would scale. It wouldn’t be 1 to 30 students, it could be quite reasonably 1 to 100, more even, because bureaucratic overhead would be removed – no attendance, no discipline, no grading quizzes. Just creating great curricula, and moderating forums and responding to questions, and some marking of long-answer questions.

    Maybe society will keep educating children in human-capital factories. Hopefully not. Meanwhile, I’m not worrying about people being put off their dreams, I’m worrying about people who never realize they have them.

  • Friends Don’t Let Friends… Become PMs

    Friends Don’t Let Friends… Become PMs

    Careful
    Credit: flickr / Tom T

    Recently, I heard about a school that has a mandatory “technology” class that students have to take in order to take CS classes in later years. It features: wood-working, circuit building, and Excel.

    This is horrifying. I want to go there with picket signs and stage a protest. Dress up as robots and chant things. If someone deliberately set out to design a course that would put kids off CS without them ever getting an inkling as to what CS is, they couldn’t do better than this.

    Wood work? WOOD WORK?

    And then, I’m in “training” for something (external) where old white men are telling me how to talk to high-schoolers, and describing what I do – software engineer, programmer – as “builder”. Apparently I have an “isolated” job and it’s the kind of thing that can be out-sourced… really not that high-potential a career. They seem to be saying that students should be blending a little bit of the technical with business and voila they’ll have a great career and let’s all enourage girls to do this, shall we.

    And I think, it’ll be a cold day in the hell I don’t believe in before I encourage anyone to study business period, let alone for a technology career.

    I cry a little inside because I thought I’d signed up to encourage women to go into tech, not near tech.

    Wood work starts to seem sensible by comparison.

    Thankfully after that I go back to my team of 50% woman and we keep working on creating something extraordinary. We’re trying to build something that can’t just be in the head of one person, so we have to communicate. We’re trying to build something well, so every piece of code gets looked at by 2-3 others. And later I’m stuck on something and one of them steps through it with me and I realize what I’ve done wrong and fix it. We get creative trying to do things that we haven’t done before. We have so much fun together that our visitor goes back to his office raving about how lovely we were to him and how close we are as a team.

    My isolated job, is not so isolated.

    Things I worry about with respect to girls and technology. I worry about terrible math teachers and gender-stereotyping convincing them that math is not for them, that girls aren’t good at math. Regularly I have conversations with women not in tech careers and they tell me they were good at math in school, and yet somehow didn’t consider taking it further – it just didn’t seem like an option.

    I suspect wood-working classes won’t change that.

    Then I worry about girls in university who think “I’m ok technically, but where I really differentiate myself is that I have good communication skills… I could be a great bridge between the technical and the non-technical…” who then go and become product managers. And they never find out that they were just as good as many of the guys in the class, that a technical career was an option. I know, because this happened to a friend of mine – thankfully she rethought it before she took that path and now she’s an engineer. And because it was nearly me, too.

    And so my friend and colleague complements me on my communication skills, and I quip that they would be distinctly average compared to people in any other profession, it’s just compared to engineers that they seem good.

    My point – being able to communicate doesn’t mean that a technical career isn’t a great fit, just like I don’t think there is much correlation between wood-working and software engineering skills. I’m on a mission to urge university girls – think about being an engineer before you decide being a PM is for you. It’s been four years since I finished my undergrad, and in that time I’ve come to realize – those guys who thought they were great and I figured they must be if they could be that confident? No-one is as good as those guys thought they were. Under-confident does not mean under-qualified. Really.

  • Misconceptions of What Software Engineers Do

    Misconceptions of What Software Engineers Do

    connecting the dots
    Credit: flickr / novaldiflickr

    My first proper day on my new project, and our PM says to me – “Cate, you seem to like to travel. How about you spend time in New York?” – I’m tasked with helping another team out, and being the bridge between that team and my team here.

    Initially I was a bit… thrown. Part of why I’d changed teams was because I didn’t want to need to go to California as often. Whilst I’d joked that it would be different if it was somewhere I’d actually chose to spend time, like New York, I’d also enjoyed my time staying still, and wasn’t sure if I wanted to continue making (typically – June was the first month since March 2010 that I didn’t go anywhere) a trip a month.

    Once I’d got over the surprise, two things struck me. The first, that this guy had – in a matter of days – noticed what I was good at and was working with my non-eng strengths – being a connector, and something of a nomad.

    The second, was that what I was going to spend my time doing, completely debunked a very depressing conversation I’d had with two (female) CS teachers. They’d talked about why their female students didn’t want to go into Engineering – and one of them, why she left industry for education. It was… somewhat stereotypical. Girls like to make things pretty. They’d prefer to market something than build it. Women are more interested in the big picture, how things fit together. They want to spend time with people, not machines.

    About a year ago, someone asked me if I was interested in working on a compiler team. I said, “I think I’d enjoy it for about 6 months, and then I’d start to miss humans”. He was amused and replied that my response was what he’d expected me to say.

    I suspect you have to be a particular kind of person to work on a compiler team. I am not that kind of person. In fact, many of the things these teachers saw in their female students are true of me, too. I like things to be pretty. I care not just about what something does from a technical perspective, but why it’s useful. I’m better at a system design level than at bit-twiddling. I’m obsessed with humans and how technology can improve things for them.

    Yes, I love to write code, and that is a big part of my job. But – it’s not all that I do. To say that being a software engineer is like X, and girls won’t like it because they don’t like X is a mistake.

    In this case, I think the thing about girls not liking X is a massive over-simplification and generalization. But my point – even if it is accurate – it doesn’t mean that being a software engineer isn’t a good fit. Being a software engineer is not “like X” – that’s far too simplistic. There’s so many different kinds of things you can work on, and they require different skill sets. I would be unhappy and not very good at compiler work, but the kind of person who would excel at working on compilers would likely be unhappy and not very good at the kind of work that I do.

    I don’t just write code. I also think about user interaction – working on features, I will say, I think this flow is more consistent. I work on the design of components from a perspective of the overall system – and testability. I work with other people who have less experience on the codebase or in the language to get them up to speed. I write up patents, and get to explain what I’ve come up with to lawyers. I put myself in the perspective of the user and think about what will be most important to me as a user. And I’m a connector – sometimes the most useful thing I bring to a discussion isn’t what I know, but that I know who will know about it.

    Of course, there are things that I’m terrible at. I can’t see pixel differences, in fact if you show me one UI and then another similar one I will be pushed to see the difference between them, and certainly not in a matter of pixels. I’m not great at convincing myself that something is programmatically correct – probably why I love testing. I can’t “hack”, it makes me nervous when I don’t know why something works. I can’t write assembly. When I need to optimize, my preferred plan is “write it in Haskell”.

    To take a narrow view of what you need to be good at in order to enjoy being an engineer, is crazy to me. All over the world, software engineers are building an unimaginable number of wildly different things. I’m incredibly lucky, but I think if you work at it you can often create the flexibility to make it whatever you want.

    So what if girls want to make things pretty. There’s too much ugly software out there, and I say – go for it. All I think matters is – do they want to solve problems? Build cool things? Can they think logically and break down a problem?

     

  • First, Do No Harm

    First, Do No Harm

    Bluenose II, Lunenburg, Nova Scotia
    Credit: flickr / cphoffman42

    We took a whale watching boat in Lunenburg. As we pulled away from the pier, the tour guide talked about the history of the town. How many boats used to go out. Where the fish came in. Until the big fishing boats came, and drove out that way of life. He said, the old fisherman knew, they said that would be the end of the fish. They were proven right. It’s getting better, now. But it will never be like what it was.

    In medicine, there’s the concept – do no harm. We don’t have that in technology. We create things! They’re wonderful! We’re sure we know better than the luddites. But, sometimes we’re wrong.

    How do you know, though? Weren’t the Catholic objections to the printing press in a similar vein? Save the scribes! (See Here Comes Everybody – Amazon). Really, they were likely afraid of the spread of information. And with the over-fishing, we’re talking about depleting natural resources. I think in general innovation that increases the amount of information people have is good, and that we need to be more careful with our natural resources… but it’s not all clear cut. When I saw Freeman Dyson speak at the Perimeter Institute he talked about how he did not think the atomic bombing of Hiroshima had ended the war. Key quote from that article:

    So in that sense the atomic bombing was unnecessary. Of course we had no way of knowing that then.

    Thinking about innovating without knowing the consequences bought me to two things. The first – why I don’t want to live in the valley. I think that in order to build things for humans, we need to live amongst them. The attitude of observing from afar and thinking we know better is not a good thing. As Don Norman puts it, we fill much needed holes.

    The second, education. I increasingly think that we can’t trust educating to educators. The system is too bureaucratic and slow moving. Excessive unionization has entrenched mediocrity. I think things like the Khan Academy are the future.

    What do we gain from a system like that? Scale. Quality. Flexibility. A smaller number of passionate people who actually know their stuff will pass that knowledge and hopefully that passion on. Students will no longer be at a disadvantage due to terrible teachers. They’ll be able to work at a pace and with a structure and format that works best for them.

    In 20 years of education, I had a number of appalling teachers, and most of them were – at best – mediocre. It seems like saving students from that would be a good thing.

    But, thinking about what we might lose, I think about the couple, two, actually, of extraordinary teachers, who knew their stuff and shared their passion with me. I was lucky to have that. A tiny minority of those who made up my educational experience, true. But the ones I remember. It seems like you could create an environment when every teacher for every class was like that, and that would be extraordinary. But the would be no one-on-one personal connection with any of them. And that, is what we’d lose.

  • But, I Don’t Want to be an Entrepreneur: Permission and Choice

    But, I Don’t Want to be an Entrepreneur: Permission and Choice

    Achievement: You Can Do Anything You Set Your Mind To When You Have Vision, Determination, And An Endless Supply of Expendable Labour
    Credit: flickr / dullhunk

    Tina Seelig, author of What I Wish I Knew When I Was 20 (Amazon) teaches courses in Entrepreneurship and Creativity at Stanford. I was fascinated as to what teaching entrepreneurship would consist of (you can see the course list here). The big message I found in her book was about giving yourself permission – permission to do the things that you’re passionate to achieve, and permission to fail, and learn, in the process.

    IBM’s Extreme Blue program is described as a “Leadership Development Program”. As a result, it gives the teams (with the technical students and an MBA) permission to explore, create links across functions, ask questions of people – some teams even of Sam Palmisano. I learned a lot about leadership in this program, but mostly it wasn’t directly taught – it was found, and nourished.

    The education system, in search of conformity, smothers leadership. At 10, I learned to write in the same joined-up cursive as my peers. At 14, I read the same book in class and learned the meaning that my teacher said was there, but I never saw. At 16 I dressed in the same hideous uniform as all the other girls, and shared a tiny identikit room. Leadership positions were defined, and assigned – be a prefect (ick, no), or soloist in the choir. No, you can’t go kickboxing.

    Ken Robinson asks, do schools kill creativity? It seems like the structure could kill leadership as well.

    Government workers too, have a lot of structure. It’s a very well-defined, slow moving, system. Living in Ottawa, everyone talks about the waste and bureaucracy of the government. I’ve noticed, when talking to a government worker, how they always say – yes, but my department is different. And then, shortly after, start complaining about one of their colleagues whose incompetence and lack of productivity is legendary.

    What’s all this got to do with being an entrepreneur? It’s that we should have a choice. Do we need to teach entrepreneurship and leadership to give that choice back, because schools and governments have crushed it with structure?

    I challenged myself, every month this year, to lend $100 new dollars on Kiva (I also reloan repaid funds). I loan to women, because they tend to use the extra money they make to reinvest in their families – in education, and health. In developing countries, the opportunities aren’t there, unless they make the opportunity themselves. Their option for lifting themselves out of poverty, is to be an entrepreneur.

    I was lucky to never be in poverty in the first place. I’ve been getting defensive because I’m told so often that I should want to be an entrepreneur – but I don’t. But, I think given different circumstances and pressure I could do it. Luckily for me, I feel that I can do what I want to do where I am, and whilst I don’t have any kind of “title” of leadership, I don’t feel a lack of leadership opportunities. There are so many in the gaps.

  • 4 Hours to Smash the CS Stereotype and Create Something Beautiful

    4 Hours to Smash the CS Stereotype and Create Something Beautiful

    Ali and I will presenting our paper 4 Hours to Smash the CS Stereotype and Create Something Beautiful (pdf) at the upcoming CICE Education conference in Toronto.

    Christine Alvarado of Harvey Mudd college came to Google last month to gave a talk on how they’d brought female enrollment in Computer Science up to 42%. The talk is called “Three Promising Practices”, and one of those practices was a redesign of the CS1 curriculum (you can watch the video here, it’s over an hour long).

    They dived into the feedback about the old curriculum, and what they found was that people who were already into CS loved it. And those that weren’t, their minds weren’t changed after a semester of CS.

     

    Haribo Micro Mix
    Credit: flickr / Caro Wallis

    When I TA’d a mandatory CS course for business students, I was so frustrated by what I saw as a missed opportunity. We had these students, who were bright, and tech-savvy by virtue of when they’d grown up and we had this space where we could educate them about what CS is, and why it’s awesome… and it was wasted. This course didn’t just not make the students want to study CS, it make them actively dislike it. They hated it. And honestly, I sympathized with them. So the Harvey Mudd talk was fascinating to me, because I think it shows how big an opportunity we miss by not creating curriculum designed to engage students who hadn’t planned on taking CS already.

    And I think this is a huge problem. I actually work for Google now, and I was trying to explain what I do to someone who isn’t really technical and she said, “oh, you work for the internet”. I wasn’t quite sure what to say to that! But what is true is that collectively, computer scientists, software engineers, we’re building this digital future. And I think it’s important that that group of people is as diverse as possible.

    Curriculum Screenshot

    At uOttawa, we had the opportunity to create a curriculum for a four hour workshop that’s run for high school students, at around the time they’re thinking about what to take at university. This build on work that I’d done in my previous curriculum, in terms of visual honesty.

    The most interesting aspect that drove the design was just throwing out any expectation at the start that the students had any interest in, or experience of, CS. This was our opportunity to sell them on CS, to smash that stereotype.

    Feedback from post-workshop surveys suggests that we’ve had some success with this, despite the short time frame of the workshop. Because the curriculum is open source, we hope that it will be able to be used elsewhere as well.

    I’m going to talk about the design decisions we made, and why these were important.

    1. Entirely Visual

    webOne of the things that we’ve observed students to get frustrated by is lack of visual honesty in programming. Often in problems we pose to students, it’s a case of inputs in, outputs out. The program is a black box, and when the wrong answer comes out of this black box, students often don’t understand why, or how it’s going wrong.

    When we cerate visual programs instead, it’s so much clearer. The line is not where it should be, or the circle is smaller than expected. It becomes a lot clearer what kind of mistake they’re looking for.

    2. Activity Based

    Credit: xkcd

    Don Norman wrote about activity centred design in terms of remote controls (amongst other things). It’s a plea to designers to design for what people want to achieve, rather than how to do it. We’ve taken that approach here. Rather than following the traditional path of thing to learn, followed by contrived example, we present things they may actually want to do, and then explain how to go about doing them.

    We’re not expecting students to go away with a thorough grasp of the constructs, so it doesn’t matter if they master if statements but not loops. This means that we’ve made it so that the modules are stand alone as possible. We’re not telling them what to do. We’re asking them what they want to achieve.

    3. Open Source

    Processing Website Screenshot

    We deliberately chose to make the curriculum as open as possible – in every sense. We use the open source software Processing, which runs on Mac OS, Linux as well as on Windows. The curriculum itself is also licensed under creative commons.

    This has the big benefit of reducing as much as possible the barriers to students continuing at home or at school – the software is free, and compatible with whatever operating systems they use.

    4. TAs

     

    The J Clique
    Credit: flickr / Xpectro

    We were extremely selective about hiring TAs. We aimed for a ratio of 4 students to each TA, as being stuck and having to wait for someone to help you is so frustrating to students, and we wanted to keep that as minimal as possible. In hiring TAs, we were looking for strong problem solving and coding skills, and as importantly, excellent communication skills. We were looking for TAs who were fun for the students to interact with, who would be role models. Our TAs are potentially our biggest asset in smashing that stereotype, so it’s really important that they are awesome.

    5. Self-Directed

    Direction arrow
    Credit: David Baird, http://www.geograph.org.uk/photo/775326

    The low ratio of students to TAs allows us to give students the freedom to work at their own pace, on what interests them. Students with prior programming experience will often skip to the more advanced modules, and students who are less comfortable can take a slower pace, or focus on more math-based activities, such as fractals.

    6. Inclusive of Interests and Levels

    We provide a mix of modules, ranging from complete beginner to more advanced and students are welcome to come up with other things to create, or find more information on the internet. Often students want to make games, so we facilitate that with a pacman-like framework (we’d like to add Brick Breaker soon), but we also have several fractals, for more math-loving or artsy students.

    The students are challenged to “make something beautiful”. It’s always interesting to see what they come up with! This open-ended approach means there are always extra challenges – for example, animation! Students have also started to explore Processing’s 3D capabilities.

    We take a very open approach, encouraging students to look things up on the internet, and even to share things they create on social networking sites like Facebook.

    Overall

    We’ve found our experience tremendously rewarding. Curriculum development is a design activity, and approaching it with some different constraints has been interesting. We’re very encouraged by the success of our program, and other curricula designs in attracting different types of students into CS and we hope to continue our work further, by partnering with other universities and organizations to bring the curriculum to them and expand it further.