Interacting with faculty and teaching assistants, both in and outside of the classroom, is a powerful way to give students encouragement, to impart tacit professional knowledge, and to help students begin to see themselves as computer scientists. These interactions can take place in class or in lab, during office hours, or in other settings, and are important for sustaining student interest in computing.

Some suggestions

Learn names. Make an effort to learn your students' names and use their names in class and lab, and when you see them outside of class.

Use “we.” Use inclusive terms, such as "we," and informal language to create a sense of a shared community, with you as a member. Try using questions rather than commands to invite participation, e.g., “We know it’s important to test, so how will we do this?”

Advise in class. Take opportunities in your classes to provide career and academic advice to students. You may influence students who weren’t thinking of majoring in computing to consider it.

Mentor undergraduates. Involve undergraduates in research, encourage them to attend conferences and research talks, and provide guidance on finding and navigating internships. Reach out to and encourage women and minority students in all of these things.

Make office hours easy. This can be as simple as making sure all students can find your office and are incentivized to do so. One community college professor ensures students know where her office is by requiring them to sign their name on her door in the first weeks of class.  You might also try holding office hours in places where students tend to hang out, e.g., the student union, a student lounge or lab.

Examples from the collection

Air Quality Index Calculator

In this project, students make a calculator that determines the Air Quality Index (AQI) given user-input sensor data. All calculations follow methods published by the US Environmental Protection Agency (EPA) and give students practice handling user input, rounding/truncating, calculating the max and min, and must handle a a simple calculation that requires either a look-up table or conditionals. This assignment can be given early in the semester to help students gain experience and proficiency with loops, calculating max/min, using conditionals and boolean expressions. 

It can also be used--with some modifications--at many points in the curriculum to explore more complex data structures (2d arrays or dicts), to practice function decomposition, or even object-oriented programming. I have successfully used the assignment twice in one semester, letting students return to the assignment later to see how much simpler the solution becomes when they are able to use functions and complex data structures. See the "redux" files attached here.

Engagement Excellence

Image Processing (Warhol Pop Art Filter)

This is the eighth lab for computational art (CS1) using Processing where students practice creating an Andy Warhol silkscreen image filter. The goals for this lab are:

  1. Practice creating an Andy Warhol silkscreen image filter
  2. Practice using images in Processing
  3. Practice manipulating pixels of an image
  4. Practice using arrays and writing for loops
  5. Practice indexing a 1D ray with 2D coordinates
  6. Practice using boolean logic to control which parts of an image are modified (including implicit circles) 
Engagement Excellence

Resources

Blexbolex Style Exploring Scaling via Variables

This is the second lab for computational art (CS1) using Processing where students write a program that creates a scene that explores composition to convey story or mood.  The goals for this lab are:

  1. Use a variable to control scale and position of a sketch component
  2. Alter and explore the role of scale in a sketch’s composition
  3. Practice using transforms (translate and scale) in a sketch to control scale of a portion of your design
  4. Apply your knowledge of the 2D coordinate system in order to appropriately scale and translate a portion of your design
  5. Study the composition and coloring used by the artist, Blexbolex
  6. Copying composition and color to practice design 

Expressionist Animal Creation

First lab for computational art (CS1) using Processing where students write a program that creates a presentation of a creature in an expressionist style. The goals for this lab are:

  1. Understand the Processing 2D coordinate systems
  2. Practice creating shapes in Processing
  3. Understand draw order and command ordering
  4. Practicing using Processing
  5. Learn about expressionism
  6. Make a picture of a creature in an expressionist style 
Engagement Excellence

POGIL Activities (3) on Unit Testing in Java with JUnit

This is a team-based classroom activity using Process-Oriented Guided Inquiry Learning. Teams of 3-4 students work together to learn about unit testing in general, JUnit in particular, and effective test strategies.

The attached files are the student's versions of the activities. Please contact the author for the teacher's versions with solutions and additional information.

POGIL Activity on HTML 2: Documents and Links

This is a team-based classroom activity using Process-Oriented Guided Inquiry Learning (POGIL). Teams of 3-4 students work together to learn about HTML documents and links. Part 1 of the activity focuses on markup in general, HTML markup in particular, and related issues.

The attached file is the student's version of the activity. Please contact the author for the teacher's version with solutions and additional information.

POGIL Activity on HTML 1: Markup

This is a team-based classroom activity using Process-Oriented Guided Inquiry Learning (POGIL). Teams of 3-4 students work together to learn about markup in general, HTML markup in particular, and related issues. Part 2 of the activity focuses on HTML documents and links.

2_Poets: Reading Poetry Backwards – RPB v1.0

This programming assignment requires students to study, understand, and augment a Python program that (re)writes or “breaks” poems in various “deformed” manners, including printing the lines of a poem in reverse (last line to first line) and with randomized lines. Emily Dickinson wrote in the margins of a book: 'Did you ever read one of her Poems backward, because the plunge from the front overturned you?’ Learning goals include problem decomposition (functions), extending existing code, problem solving with multiple solutions, and building an app to handle a wide range of input texts.

The author of this material was awarded a 2016 NCWIT Engagement Excellence Award for this assignment. Learn more on NCWIT's awards page.

Engagement Excellence

Searching in Hi-Lo - CS1 First Day on Algorithm Design & Analysis

This is a team-based classroom activity using Process-Oriented Guided Inquiry Learning. I use this the first day of CS1, and sometimes the first week of CS2 (depending on students). Teams of 3-4 students work together to identify and evaluate several strategies (algorithms) to solve a Hi-Lo number guessing game. In doing so, they learn about tradeoffs between difficulty and efficiency, and are introduced to complexity analysis, although the activity does not use O() notation.

Wrapper classes

In this tutorial, students create a program in Java that utilizes wrapper classes. The program must include three ArrayLists (one of type Integer, type Double, and type Character) and it needs to parse values from the ArrayList.

Exam review: classes, methods, etc.

In this tutorial, students create a program in Java that covers methods, conditionals, and object-oriented programming. The activity requires students to use the Problem.java file to practice creating an interactive program that accepts user input and then performs some action on that entry. Then, the students must modify methods (such as answerCorrect) to evaluate the user's overall performance for answering questions correcting on the quiz/interactive program.

More about loops: "while" loops

In this tutorial, students create a program in Java that uses a while loop. The program must accept user input and then evaluate whether or not the value entered by the user is too high or too low. The program must continue to loop until the user enters the correct value.

Subscribe to Provide Opportunities for Interactions with Faculty