Archive

Archive for March, 2007

Madeleine Erica Wilson

March 31st, 2007

Our first child, Madeleine Erica Wilson, came into the world at half past midnight on Saturday, March 31. She’s a redhead, just like her mom, and has one, two, or ten of all appropriate body parts. We’re very happy — exhausted, but happy. May she love her life as much as we love her.

Madeleine and Sadie, March 31

Madeleine with her mother and grandmother

Madeleine with her father and mother

Madeleine sleeping

Announcements, Family

Pictures from the Competition

March 28th, 2007

Kwasi Kwakwa is a materials scientist who teaches computer-related subjects in Ghana.  He recently posted pictures from a programming contest, the eventual aim of which is to assemble a national team for the International Programming Olympiad.  It seems that every time I start to think that the web has done nothing but bring out the worst in our species, something like this restores my faith…

Uncategorized

Beautiful Code: Chapter by Chapter

March 27th, 2007

Beautiful Code now has a cover, and I can share the chapter summaries (below the cut). I’m very excited—hope to have hardcopy in a month or so.
Read more…

Beautiful Code, Uncategorized

Alex Martelli on Python Design Patterns

March 26th, 2007
Comments Off

Alex Martelli is now at Google; here’s a video of him talking about design patterns in Python (notes available as PDF).  I’ll post the second part when it appears.

Python

Google Summer of Code: Participating Organizations

March 26th, 2007

As I was paging through the Google Summer of Code site this morning, I realized that I recognized less than half of the participating organizations. Ten minutes and twenty-five lines of Python later, I had all their descriptions in a single page for easier printing. (Note: it was only this easy because Google’s websters had taken the time to put in clearly-labelled div’s — thanks, Google.) So, here they all are — hope it’s useful.

Read more…

Uncategorized

Engineering Strategies & Practice Team Wins Award

March 26th, 2007
Comments Off

The team that put together the “Engineering Strategies & Practice” (ESP) course at U of T just won an award from the Society for Teaching and Learning in Higher Education. From the article:

ESP is required for all first-year engineering students, except those enrolled in engineering science, and includes standard lectures and tutorials but also incorporates seminars –– a teaching method usually reserved for upper-year humanities students. The yearlong course finishes with all students participating in an intense 13-week design project, pairing groups of four to six students with a mentor who is either a faculty member or engineering alumni with industry experience.

The students in ESP are currently working on solutions for 150 different design projects for the 2006-2007 academic year. Examples of projects vary from creating a model for a proposed addition to the Boys and Girls Club of East Scarborough to building better online solutions for corporations. Forty groups are currently working with U of T master’s students in occupational therapy to design and implement devices for children and adults who have disabilities.

I would really, really like to see something like this in Computer Science.

Learning

API Explorer

March 26th, 2007
Comments Off

If you wait long enough, someone will build an interactive front-end for anything.  DrJava, for example, comes with a little interpreter that lets users type in simple expressions to explore the state of their code, while the people building the software for the particle detectors in the next-generation collider at CERN use a C++ interpreter.
And now this: interactive browser-based front ends to a variety of web APIs, including Flickr, FaceBook, and Amazon.  Type it in, click the button, and see what happens — it’s a great way to hear yourself think.  If either of the Eclipse projects we’ve put forward for the Summer of Code is accepted, we’re going to need to build some web APIs; a testbed like this would be a great accompaniment.

Uncategorized

New Software Engineering Courses at U of T

March 25th, 2007

Starting in September 2007, the University of Toronto will replace its current three-course sequence in software engineering with two new courses. The first, CSC301, will be suitable for students in all streams; the second will primarily target Software Engineering specialists, though we expect a significant number of students from other specializations (particularly those intending to do PEY internships) will take it as well. I’ve included outlines for the courses below, and I’d be grateful for feedback.

CSC301: Introduction to Software Engineering

An introduction to agile development methods appropriate for medium-sized teams and rapidly-moving projects. Basic software development infrastructure; requirements elicitation and tracking; estimation and prioritization; teamwork skills; basic UML; design patterns and refactoring; security, ethics, and professional responsibility.

Rationale: CSC301 will introduce students to a complete, coherent set of development practices that are widely used in industry, and also appropriate for graduate-level research. It will be appropriate for students in specializations other than Software Engineering (such as Information Systems and HCI).

Structure: The course will be built around a term-long project, which will be done in two-week iterations by teams of 3-4 students using agile development methods. An example of such a project is adding internationalization and accessibility support to DrProject; another is building a simple educational game for the OLPC.

Topic Lecture Hours
Motivation: why do software projects fail? 1
Introduction to agile development 1
Project infrastructure: version control, continuous integration, issue tracking, etc. 1
Requirements elicitation and tracking 2
Estimation and prioritization 1
Teamwork skills: meeting management, work allocation, tracking progress 1
Case study 1: persistence 1
Basic UML (class diagrams and sequence diagrams) 1
Design patterns 3
Refactoring patterns 1
Midterm 1
Case study 2: internationalization and localization 1
Building testable software 2
Code quality and metrics 1
Documentation: what to write, how to maintain it 1
Software security 2
Case study 3: role-based access control 1
Ethics and professional responsibility 1
Course summary; where to look next 1

CSC302: Engineering Large Software Systems

An introduction to the theory and practice of large-scale software system design, development, and deployment. Project management; ICONIX and the Rational Unified Process; advanced UML; reverse engineering; requirements inspection; verification and validation; software architecture; performance modeling and analysis.

Rationale: This course will introduce students to the problems encountered in building and maintaining large systems with large, distributed teams. We hope (but cannot require) that students will take CSC301 and CSC302 in consecutive terms, so that instructors will be able to minimize repetition and maintain momentum.

Structure: The course will be built around a term-long project, which will be done in two iterations by groups of 6-8. Unlike CSC301, this course’s project will start from an existing medium-sized application. In each iteration, teams will go through “inception”, “elaboration”, “construction”, and “transition” phases of the Rational Unified Process (RUP). As in CSC408, teams will swap projects midway through the course.

Topic Lecture Hours
Motivation: how are large projects different from small ones? 1
Introduction to the Rational Unified Process 1
Requirements modeling with UML 2
Requirements inspection; traceability 1
Reverse engineering and design recovery 1
Design with UML 2
Midterm 1
Project management; risk management; change management 2
Deployment 1
Software architecture 4
Verification and validation 2
Performance analysis and modeling 4
Fault tolerance 2
Summary; facts and fallacies of software engineering 1

Learning

Toronto Area Security Klatch (TASK) Lightning Talks March 27

March 25th, 2007
Comments Off

http://task.to/events/upcoming.php has all the details.  Some of these look very interesting; if you attend, and blog, please add a link.

Uncategorized

Maybe We Deserve to Go Under

March 22nd, 2007

The Computer Science Graduate Student Benevolent Society (CSGSBS) has chosen Al Gore’s An Inconvenient Truth to show at movie night next week.  In response, not one, but two professors in our department have suggested that people also watch Martin Durkin’s trash-science “documentary” The Great Global Warming Swindle.  If the most intelligent and best-educated people in our society can’t see that the evidence for anthropogenic warming is now compelling, maybe our species deserves to slip back into the Stone Age.  Or maybe that’s just my head cold talking…

Uncategorized