CS Education Day at Northwestern
sponsored by the EECS department and the James S. and Mary-Louise Aagaard Engineering Fund

Join us on May 11th, 2016 for a day of conversation about CS Education led by the speakers below.

The meeting will take place in room 205 at Northwestern’s Norris Center. Northwestern has visitor parking available; the North Lot usually has space and you do not need to pre-arrange a permit.

Bias and institutional barriers in CS: Tips for identification and mitigation

At Harvey Mudd College 40% of CS majors are women and at UC Berkeley the percentage of CS majors who are women has nearly doubled in the last 10 years. Colleen has participated in designing, implementing, and evaluating diversity initiatives at both institutions. She will share her experiences and discuss how the interventions at each institution were shaped by local factors and educational research.

Bio: Colleen Lewis is an assistant professor of computer science at Harvey Mudd College and specializes in computer science education. Colleen has a PhD in education from UC Berkeley. Colleen researches how people learn computer science and how people feel about learning computer science. Her research seeks to identify effective teaching practices for creating equitable learning spaces where all students have the opportunity to learn. Colleen curates CSTeachingTips.org, a NSF-sponsored project for disseminating effective computer science teaching practices.

Computer Science Education at a Crossroads: Understanding Introductory Programming Environments

In the last 12 months, Chicago, New York City, and San Francisco have all announced major initiatives to bring computer science classes and computational thinking into every high school in their cities. Chicago, with its CS4All program, takes this one step further, planning to make computer science a graduation requirement for all high school students by 2018. Having made these commitments, attention now shifts towards how best to teach computer science to diverse populations of high school students who grew up in the age of smart phones, iPads, and Facebook. A number of approaches are being pursued including designing new computer science classes and embedding computation thinking into existing mathematics and science classes. An increasingly popular strategy being employed is the use of graphical, blocks-based programming environments like Scratch, Snap! and Alice. While these environments have been found to be effective at broadening participation with younger learners, open questions remain about their suitability in high school contexts. In this talk, I will present findings from a two-year study looking at how the design of introductory programming environments affects learners’ emerging understandings of computer science concepts and their perceptions of the field of computer science. I will also discuss the affordances of blocks-based programming environments relative to more conventional text-based alternatives.

Bio: David Weintrop is a graduate student at Northwestern University completing a PhD in the Learning Sciences under the supervision of Professor Uri Wilensky. He has a B.S. in Computer Science from the University of Michigan and spent five years working as a developer at a pair of software startups before starting graduate school. His research focuses on the design and implementation of accessible and engaging programming environments that support learners in successfully encoding their own ideas in computationally meaningful ways. This includes questions of interface design, language features, and ways of leveraging the prior knowledge and experiences learners bring to an activity. He is also interested in the use of technological tools in supporting the exploration of non-computer science subjects, particularly within the STEM disciplines. His work lies at the intersection of human-computer interaction, design, and the Learning Sciences. David won the gold medal at the 2015 ACM Computer Science Education conference’s Student Research Competition for his dissertation research and has presented his work at Google, MIT and conferences around the world.

What do we teach when we teach computer science?

It’s widely agreed that CS is more than mere programming, and yet there’s surprisingly little agreement on what exactly that difference is. I’ll argue that as CS affects other fields, those fields reciprocally act upon it, making CS more diverse. This suggests we should look to create curricula that train “liberal computer scientists” in analogy to the liberal arts. Such curricula, while still possessing a shared core, would offer greater opportunity not only for specialization, but for interdisciplinarity.

Bio: Ian Horswill is Associate Professor of Computer Science at Northwestern University. He is a member of the Department of Electrical Engineering and Computer Science and was co-founder of Northwestern’s Animate Arts Program. His research interests include interactive entertainment technologies and cognitive modeling for virtual characters. Horswill is an accomplished lecturer, generally teaching some of the largest enrollment classes in CS at Northwestern and is routinely listed by 25% of the graduating class in their exit surveys under “Overall, best teachers I have had”.

On Planning and Programming Languages

Plan composition, the task of integrating code fragments for subproblems into a cohesive whole, is an important but under-studied topic in programming education. Most studies were done three decades ago, under assumptions that miss important issues that today’s students must confront. Results of early studies were also sobering, suggesting that students were unable to solve seemingly simple problems due to the challenge of plan composition. More recent evidence, however, suggests that those studies focused on the wrong issues. We discuss a series of recent studies that are taking a fresh look at plan composition. We’ll raise various questions about the relationships between programming languages, program design, curricula, and how students perceive code structure. The audience should come with pencil and paper, ready to write some programs!

Bio: Kathi Fisler is a Professor of Computer Science at WPI with a passion for teaching introductory CS classes. Her research has explored modular verification of feature-oriented software systems, formal analysis of access-control policies, diagrammatic logic, and now computing education. Understanding how people reason through formal systems has been an underlying theme throughout her work. Kathi also co-directs Bootstrap, an outreach project that integrates algebra and introductory computing in a curriculum for middle-school math courses. The Bootstrap team has trained hundreds of teachers nationwide, and partners in several major K-12 computing initiatives, including Code.org, CSNYC, and CS4RI.

Developing Developers

Ninety percent of our undergraduates enter the job market as developers of software, and it is our moral obligation to prepare them for this phase of their career as well as possible. At the same time, we must teach in such a way that everyone with some basic understanding of algebra can pick up the necessary skills.

At Northeastern, I have created an undergraduate introductory programming curriculum with this goal in mind (the first four to six semesters). Starting with the first semester, courses focus on explicit and systematic approaches to program design. To accommodate the full range of freshmen, the first course uses a simple teaching language that is tailored to this goal. Follow-up courses explain how the explicit design principles apply to industrial programming languages, how they enable logical reasoning about code, and why they matter when programmers deal with large and complex software.

In parallel, these introductory courses insist on presenting programming as a communicative discipline. Students find out that people write programs to inform other people of ideas. Working with compilers and interpreters also teaches them that these tools provide only shallow feedback. For true insight, they must turn to other people. Hence, the freshman course introduces pair programming so that students learn to articulate their thoughts. Downstream courses teach students how to present their ideas to large groups and how to listen/evaluate such presentations.

Bio: Felleisen is a Trustee Professor at Northeastern University where he studies programming languages and develops programming curricula. He is the primary author of “How to Design Programs.” The latter represents a unique approach to CS1 with its three-pronged emphasis on systematic design, program development environment support, and textbook-specific programming languages. Over the past 20 years, he has launched efforts to move these ideas into high schools and middle schools as well as to scale them up to full-fledged software-development courses. The ACM acknowledged Felleisen’s educational work with the Karl V. Karlstrom Award in 2009.

Blocks and Stickers: Rethinking Computational Literacy Experiences in Informal Environments

By decade’s end, one out of every two STEM jobs in the United States will be in computing (ACM, 2014). And yet, participation rates of women and underrepresented groups in post-secondary computer science programs remain discouragingly and persistently low (Zweben & Bizot, 2013). One of the most important findings from research in computer science education is the degree to which informal experiences with computers (at many ages and in many settings) shape young people’s trajectories through high school and into undergraduate degree programs. Students draw on the wealth of these experiences to define themselves, to persist in college, and to move on to careers in computing (e.g. Margolis & Fisher, 2003; Margolis, 2008; DiSalvo et al., 2013). Just as early language and mathematics literacy begins at home and is reinforced throughout childhood through a variety of experiences both in school and out, for reasons of diversity and competency, we cannot rely on formal experiences with computational literacy alone to develop the next generation of scientists, engineers, and citizens. In this talk I will describe ongoing design work to engage learners in computational literacy experiences across a range of settings including museums, homes, and afterschool programs. I introduce a design theory based on cultural forms of literacy, learning, and play. I will also share empirical findings from ongoing research.

Bio: Michael S. Horn is an assistant professor at Northwestern University where he directs the Tangible Interaction Design and Learning (TIDAL) Lab. Michael’s research in computer science and learning sciences explores the use of emerging interactive technology in the design of novel learning experiences. His projects include the design and evaluation of a tangible computer programming language for use in science museums and early elementary school classrooms; and the design of multi-touch tabletop exhibits for use in natural history museums.

Michael earned his Ph.D. in Computer Science at Tufts University working in the Human-Computer Interaction Lab and the Developmental Technologies research group. He received his undergraduate degree in Computer Science from Brown University and has worked as a software engineer for several companies including Classroom Connect and iRobot Corporation. Michael’s work can be seen at the Boston Museum of Science and the Harvard Museum of Natural History.