Teaching at Bucknell and Beyond
I believe that the most critical societal challenges in Computer Science are sociotechnical in nature, and that CS education needs to reprioritize its training, recruitment, and retention of students to meet these challenges. My pedagogy is informed by CS education research, my curricular development integrates social responsibility directly into technical content, and my courses look to amplify voices that have been historically muted within Computer Science.
Courses at Bucknell
- CSCI 187: Creative Computing and Society
- CSCI 201: Computer Science Seminar
- Added to our curriculum in Fall 2019, I designed and taught the first iteration of this course, which is taken by 2nd-year CS students. The course focuses on broader perspectives of CS (e.g. humanities, art, social sciences), career journey conversations with alumni, reflections (and mentorship) on personal goals, professional development (resumes, interviewing), and open-ended skill-building.
- CSCI 203: Introduction to Computer Science
- In Fall 2019, I redesigned our introductory CS course from the ground up - writing 10+ labs, ~50 applied homework problems (and automated feedback), and multiple projects. Currently, 20-25% of all Bucknell students take this course before graduation. The responsible computing labs that I developed for this course publicly available and used by a number of institutions across the country.
- CSCI 204: Data Structures & Algorithms
- We use python to teach OOP, Big O intuition, and many standard data structures: lists, heaps, hashmaps, trees, queues, stacks, etc.
- CSCI 205: Software Engineering & Design
- Originally created by Brian King, we run a flipped-classroom software engineering course, in which students learn Java, OOP design patterns, git, agile/scrum processes, and culminate by building a larger software system with a group.
- CSCI 358: Human-Computer Interaction
- I created and teach Bucknell’s 300-level CS elective introducing students to the design processes and technical breadth of Human-Computer Interaction. I redesigned traditional HCI courses to create a more flipped classroom environment that encourages design, experimentation, andd communication. Rather than a semester-long project, student groups engage in rapid design sprints through 4-6 input/output modalities and goals. This structure is now used by a handful of universities in the USA.
- CSCI 479: Computer Science Design Project
- The capstone course for our BA and BS students attaining degrees through the College of Arts & Sciences. In this course, I teach technical writing and communication, instruct on project management, and guide students through system-building decisions to deliver a technical application to local or external clients.