Computer science, taught hands-on
I teach mainly in computer systems: computer organization, operating systems, networks, and security. I am also passionate about interdisciplinary courses on computers and society.
Fall 2026
- CSCI 315-02Operating Systems Design
- CSCI 315L-60Operating Systems Design Lab
- CSCI 306-02Computer Systems
- CSCI 306L-62Computer Systems Lab
- CSCI 378-01Individual Study: AI, Trust, & Consciousness
Since joining Bucknell in 2003, I have taught 24 different courses and created or significantly revamped 14 of them. They include core and elective courses in computer science as well as interdisciplinary courses: Integrated Perspectives (UNIV 200), a Foundation Seminar (FOUN 098), and three international editions of ENGR 290.
My teaching philosophy is based on student-centric pedagogies: rather than lecture at students, I prefer to create opportunities for them to grapple directly with the material we study.
In my teaching, I seize every opportunity to explore the intersection of applied ethics, moral philosophy, sci-fi literature, and international education. Three of my courses have been taught “on the road” as ENGR 290 Engineering in a Global and Societal Context: in Brazil (2010), Italy (2015), and Italy and France (2024).
Semesters in which each course appeared, Fall 2003 to Fall 2026. Labs and individual studies not counted.
| Operating Systems Design | 17 |
| Life, Computers, and Everything | 7 |
| Computer Organization | 6 |
| Computer Networks | 6 |
| Research Methods | 5 |
| Computers and Society | 4 |
| Computer and Network Security | 4 |
| Computer Systems | 3 |
Fall 2026
- CSCI 315-02Operating Systems Design
- CSCI 315L-60Operating Systems Design Lab
- CSCI 306-02Computer Systems
- CSCI 306L-62Computer Systems Lab
- CSCI 378-01Individual Study: AI, Trust, & Consciousness
Fall 2025
- CSCI 315-01Operating Systems Design
- CSCI 315L-60Operating Systems Design Lab
- CSCI 306-01Computer Systems
- CSCI 306L-62Computer Systems Lab
- CSCI 378-01Individual Study in Computer Science
Spring 2026
- CSCI 315-01Operating Systems Design
- CSCI 315L-60Operating Systems Design Lab
- CSCI 202-01Research Methods
- CSCI 376Honors Thesis
- CSCI 378-01Individual Study: Robots, Mind, & Ethics
Fall 2024
- CSCI 315-01Operating Systems Design
- CSCI 315L-60Operating Systems Design Lab
- CSCI 345-02Computers and Society
- CSCI 378-02Individual Study in Computer Science
Spring 2025
- CSCI 202-01Research Methods
- CSCI 307-01Computer Networks and Security
- CSCI 306-01Computer Systems
- CSCI 306L-60Computer Systems Lab
- CSCI 378-04Individual Study in Computer Science (2)
Fall 2023 · sabbatical
- CSCI 278-03Individual Study in Computer Science
Spring 2024
- CSCI 202-01Research Methods
- CSCI 307-01/02/03Computer Networks and Security (3 sections)
- CSCI 379-03Human-Robot Interaction
- CSCI 378-02Individual Study in Computer Science
Fall 2022
- CSCI 315-03Operating Systems Design
- FOUN 098-62The Unsecret Life of Robots
- CSCI 378Individual Study in Computer Science (3)
Spring 2023
- CSCI 202-01Research Methods
- CSCI 206-01Computer Organization
- CSCI 206L-61Computer Organization Lab
- CSCI 278-03Individual Study in Computer Science
Fall 2021
- CSCI 315-01Operating Systems Design
Spring 2022
- CSCI 202-01Research Methods
- CSCI 245-01Life, Computers, and Everything
- UNIV 200-07Digital Transcendence
Fall 2020
- CSCI 315-01Operating Systems Design
Spring 2021
- CSCI 245-01Life, Computers, and Everything
- UNIV 200-07Digital Transcendence
Fall 2019
- CSCI 315-02Operating Systems Design
Spring 2020
- CSCI 245-01Life, Computers, and Everything
- UNIV 200-10Time/Machine
Fall 2018
- CSCI 315-01Operating Systems Design
Spring 2019
- CSCI 245-01Life, Computers, and Everything
- UNIV 200-10Time/Machine
Fall 2017 · sabbatical
- No courses
Spring 2018
- CSCI 245-01Life, Computers, and Everything
- CSCI 240-01/02Computers and Society (2 sections)
- CSCI 206L-61/62Computer Organization and Programming Lab
Fall 2016
- CSCI 315-01/02Operating Systems Design (2 sections)
- CSCI 315L-60/61Operating Systems Design Lab
Spring 2017
- CSCI 245-01Life, Computers, and Everything
- CSCI 378-01Individual Study in Computer Science
- UNIV 200-10Time/Machine
Fall 2015
- CSCI 315-01/02Operating Systems Design (2 sections)
- CSCI 315L-60/61Operating Systems Design Lab
Spring 2016
- CSCI 245-01Life, Computers, and Everything
- UNIV 200-08Flights of Computing Fancy
Fall 2014
- CSCI 315-01/02Operating Systems Design (2 sections)
- CSCI 315L-61Operating Systems Design Lab
- CSCI 475Senior Design I
- CSCI 378-03Individual Study
Spring 2015
- CSCI 206Computer Organization and Programming
- CSCI 206LComputer Organization and Programming Lab
- CSCI 476Senior Design II
- CSCI 378Individual Study
Fall 2013
- CSCI 315-01Operating Systems Design
- CSCI 315L-60/61Operating Systems Design Lab
- CSCI 475Senior Design I
Spring 2014
- CSCI 206Computer Organization and Programming
- CSCI 206LComputer Organization and Programming Lab
- CSCI 476Senior Design II
Fall 2012
- CSCI 362Computer and Network Security
- CSCI 475Senior Design I
- CSCI 378Independent Study: Simulation
Spring 2013
- CSCI 315-01/02Operating Systems Design (2 sections)
- CSCI 315L-60Operating Systems Design Lab
- CSCI 476Senior Design II
- CSCI 378Independent Study: Simulation
- CSCI 376Honors Thesis
Fall 2011
- CSCI 206Computer Organization and Programming
- CSCI 206LComputer Organization and Programming Lab
Spring 2012
- CSCI 315-01Operating Systems Design
- CSCI 315L-60/61Operating Systems Design Lab
- CSCI 363Computer Networks
- CSCI 363L-60Computer Networks Lab
- CSCI 378Independent Study
Fall 2010 · sabbatical
- No courses
Spring 2011
- CSCI 315Operating Systems Design
- CSCI 315LOperating Systems Design Lab
- CSCI 362Computer and Network Security
Fall 2009
- CSCI 475Senior Design I
- ENGR 100Exploring Engineering
Spring 2010
- CSCI 476Senior Design II
- CSCI 363Computer Networks
- CSCI 363LComputer Networks Lab
Fall 2008
- CSCI 362Computer and Network Security
- ENGR 100Exploring Engineering
Spring 2009
- ENGR 139Technical Written and Oral Communication
- CSCI 363Computer Networks
- CSCI 363LComputer Networks Lab
Fall 2007
- CSCI 362Computer and Network Security
- CSCI 203Introduction to Computer Science I
- CSCI 203LIntroduction to Computer Science I Lab
Spring 2008
- CSCI 363Computer Networks
- CSCI 363LComputer Networks Lab
- CSCI 240Computers and Society
- CSCI 203LIntroduction to Computer Science I Lab
Fall 2006 · leave
- No courses
Spring 2007
- CSCI 206Computer Organization and Programming
- CSCI 206LComputer Organization and Programming Lab
- CSCI 363Computer Networks
- CSCI 363LComputer Networks Lab
Fall 2005
- CSCI 203Introduction to Computer Science I
- CSCI 203LIntroduction to Computer Science I Lab
- CSCI 206Computer Organization and Programming
- CSCI 206LComputer Organization and Programming Lab
Spring 2006
- CSCI 240Computers and Society
- CSCI 379Fundamentals of Computer Security
Fall 2004
- CSCI 204Introduction to Computer Science II (lab)
- CSCI 311Data Structures
- CSCI 379Fundamentals of Computer Security
Spring 2005
- CSCI 203Introduction to Computer Science I
- CSCI 363Computer Networks
- CSCI 363LComputer Networks Lab
Fall 2003
- CSCI 204Introduction to Computer Science II
- CSCI 311Data Structures
Spring 2004
- CSCI 315Operating Systems
- CSCI 203Introduction to Computer Science I (lab)
- CSCI 379Fundamentals of Computer Security
- CS 37Computer Architecture, summers 2001 and 2002