Geoffrey Challen
Geoffrey
Teaching
Challen
Professor
Updated 10/24/2021

Geoffrey Challen

né Werner-Allen

My professional goal is to teach computer science to as many people as possible, and to inspire them to use their skills to change the world for the better.

Department of Computer Science
University of Illinois
Thomas M. Siebel Center for Computer Science
201 North Goodwin Avenue, Urbana, IL, 61801-2302

Email: challen@illinois.edu
Phone: 716.464.2749
Website: https://geoffreychallen.com
Primary Course Website: https://cs124.org
CV: https://geoffreychallen.com/CV
Previous Research Group Website: https://bluegroup.systems
Google Scholar Profile: https://geoffreychallen.com/scholar

My online CV (https://geoffreychallen.com) is usually more up-to-date than a paper copy.

Appointments and Preparation
Appointments and Preparation

I am currently a Teaching Associate Professor at the University of Illinois (Fall 2017–present). My appointment is 80% teaching and my focus is teaching CS1 at scale.

At this particular moment in computing history, what we need is not more computer power—we need more computer people. My goal is to create courses that excite, train, and retain these new computer scientists. I focus on instructional approaches that can scale to large numbers of students while using only limited human resources. I apply my own skills as a computer scientist to this task, by building novel tools and systems that create interactive and engaging learning environments, content, and assessments.

My CS1 course currently enrolls almost 2000 students per year. Since I began teaching the course in Fall 2017, enrollment has doubled, drop rates have fallen, success rates have increased, student performance in late courses has improved, a gender performance gap has disappeared, students are practicing and learning more, the amount of content covered has increased, we have introduced Kotlin as a language option alongside Java, and hundreds of staff members have made contributions that help diversify the voice with which the course speaks.

Previous Position
Previous Position

From 2011–2017 I worked in mobile systems as a research professor at the University of Buffalo. My research group designed, built, and evaluated novel computer systems. We focused on smartphones, since they represent the most pervasive and powerful distributed system ever deployed. My previous group’s website is the best source of information about my prior research, and includes project descriptions, copies of all of our published papers and funded grant proposals, information about the courses that we taught, and details about former group members.

Professional Preparation
Professional Preparation

Teaching
Teaching

Over nine semesters at Illinois I have taught a total of 7868 students, or an average of 874 per semester. I have centered my teaching efforts on expanding and improving our introductory course for majors and students with a deep interest in the material—previously numbered CS 125 and now CS 124.

Additional information about each course is linked off of it’s main website. Data about student success in each course and detailed student evaluation results available by request.

Summary
Summary

Course Innovations
Course Innovations

CS 125: Fall 2021
CS 125: Fall 2021

Enrollment 1288
Co-Instructors Colleen Lewis
Head CAs 5
Teaching Assistants 10
Course Associates 34
Course Assistants 161

CS 125: Spring 2021
CS 125: Spring 2021

Enrollment 523
Co-Instructors None
Teaching Assistants 12
Course Assistants 99

CS 125: Fall 2020
CS 125: Fall 2020

Enrollment 942
Co-Instructors None
Teaching Assistants 12
Course Assistants 99

CS 125: Spring 2020
CS 125: Spring 2020

Syllabus https://cs125-old.cs.illinois.edu/spring2020/
Enrollment 380
Co-Instructors None
Teaching Assistants 12
Course Assistants 99

CS 125: Fall 2019
CS 125: Fall 2019

Syllabus https://cs125-old.cs.illinois.edu/fall2019/
Enrollment 696
Co-Instructors None
Teaching Assistants 12
Course Assistants 99

CS 125: Spring 2019
CS 125: Spring 2019

Syllabus https://cs125-old.cs.illinois.edu/spring2019/
Enrollment 459
Co-Instructors None
Teaching Assistants 12
Course Assistants 99

CS 125: Fall 2018
CS 125: Fall 2018

Syllabus https://cs125-old.cs.illinois.edu/fall2018/
Enrollment 742
Co-Instructors None
Teaching Assistants 12
Course Assistants 99

CS 125: Spring 2018
CS 125: Spring 2018

Syllabus https://cs125-old.cs.illinois.edu/spring2018/
Enrollment 439
Co-Instructors None
Teaching Assistants 10
Course Assistants 157
  1. Restructured all course content to move away from outdated materials.
  2. Rewrote all lectures to use online materials and integrate participation tracking and in-class programming examples into classroom presentations.
  3. Deployed continuous assignment grading and the CS 125 online gradebook.
  4. Developed Java autograding support for PrairieLearn to enable programming questions on the weekly quizzes, which had previously been entirely multiple-choice.
  5. Held the first ever CS 125 Project Fair, featuring 165 Android projects developed by students working in pairs.
  6. Introduced Android programming to the course with new labs and a new Android assignment.
  7. Moved the final exam to the computer testing center (CBTF), enabling autograded programming questions and reducing TA grading burden.
  8. Updated outdated course development tools, replacing Eclipse with IntelliJ and Subversion with Git and GitHub Classroom.
  9. Began the course developer program with 10 students working on projects including new assignments, a new project fair, plagiarism detection, and data analysis.

CS 125: Fall 2017
CS 125: Fall 2017

Syllabus https://cs125-old.cs.illinois.edu/fall2017/
Enrollment 698
Co-Instructors Bill Chapman, Lawrence Angrave
Teaching Assistants 10
Course Assistants 71
  1. Updated course assignments and infrastructure while Bill Chapman and Lawrence Angrave gave the lectures.
  2. Rewrote and updated all assignments to use a modern build system (Gradle), exhaustive test cases, style checker (checkstyle), and modern Java idioms.
  3. Rewrote all labs to better match course content and use online (rather than printed) materials.
  4. Designed and deployed a new course website and Discourse forum.
  5. Began work on a continuous autograder and online grade return system.

University at Buffalo (2011–2016)
University at Buffalo (2011–2016)

During my five years at UB I taught a total of 1150 students—an average of 104 per semester—and offered four different courses to beginning undergraduates, advanced undergraduates and graduate students. Despite being extremely challenging and required for undergraduate computer science majors, my course on computer operating systems was among the most popular in the department and a favorite of both graduate and undergraduate students. My graduate seminar on rotating topics in mobile systems attracted a small group of motivated students and recruited sev-eral new Ph.D. students into my group, while giving advanced undergraduates the chance to explore research topics. In Fall 2016 I introduced a new course on the internet to freshman undergraduates.

My UB online teaching portfolio has information about these and other teaching- related activities at UB. I also have copies of a teaching statement and statements of course effectiveness and improvement that I prepared in 2016.

Curriculum Development
Curriculum Development

Service
Service

Prior to 2017
Prior to 2017

Prior to 2017 I led the blue Systems Research Group at the University at Buffalo. My CV there picks up where this one ends.