colleen lewis
I'm an Associate Professor of CS at the University of Illinois Urbana-Champaign. I was previously the McGregor-Girand Associate Professor of CS at Harvey Mudd College. I research equitable and efficient teaching practices and curate CSTeachingTips.org, a NSF-sponsored project for disseminating effective CS teaching practices.

CS199-CA: Transparent Grading and Collaboration Policies

Experience Report: Physical Models of Java Inheritance

Java HashSet Chaining Algorithm - 3D Representation

Java HashSet Open Addressing Algorithm - 3D Representation

Review of Java HashSet Properties

Introduction to Java HashSet Properties

HashSet Diagrams Explanation - Chaining & Open Addressing Algorithms

3D Java HashSet Explanation - Chaining & Open Addressing Algorithms

3D Java - Make a reference variable

3D Java - Make a double

3D Java - Make a boolean

3D Java - Make 50 int variables

3D Java - Make an int

APCSA - Quicksort Algorithm In-Place vs. Merge Sort (Part 2 of 3)

APCSA - Quicksort Algorithm Performance (Part 3 of 3)

APCSA - Quicksort Algorithm (Part 1 of 3)

APCSA - Binary Search Algorithm

APCSA - Sorting Algorithm Comparison

Java explanations - Overview (

3D Java examples - Overview (

Preview - Unit 2a APCSA - Annotated Anchor Code

Preview - Unit 2b APCSA - Annotated Anchor Code

APCSA - Unit 2a - Annotated Anchor Code

Unit 1 - Types: Variables can hold different types

Preview - Unit 1 APCSA - Annotated Anchor Code

Unit 2-String Alias: In an assignment statement, we always copy the value in the variable-Java APCSA

Unit 2 - Dog Alias: In an assignment statement, we always copy the value in the variable(Java APCSA)

Unit 2 - Constructor: Calling a constructor makes a new object (Java APCSA)

Unit 2 - Null: If we don’t give a reference variable a value, it will be null (Java APCSA)

Unit 2 - Types: Non-primitive variable types always store a reference (Java APCSA)