CS374: Principles of Programming Languages - Preparing for Each Class and How Participation Works (10 Points)

Assignment Goals

The goals of this assignment are:
  1. To arrive at each POGIL session ready to build and to discuss
  2. To read technical and formal material in a way that survives contact with the Part 0 preparation work
  3. To understand how class activities and participation are evaluated
  4. To know the many valid ways of contributing to a working session

The Assignment

This course is a build, and the build happens in class. Our meetings are hands-on POGIL sessions where your team works through activities that develop the concepts and the code together, so showing up ready matters far more here than showing up early. Being ready isn’t a matter of talent or luck. It’s a short routine you can run before every meeting, and this page is that routine, along with a clear account of how I value the daily work of participating.

Purpose

Two things make a working session productive. One is that you come having engaged the material. The other is that you come with something specific to do with it, whether that’s a question, a place you got stuck, or a half-built idea. This guide gives you a repeatable way to prepare technical reading, a set of things to try when a section won’t open, and a transparent picture of how I assess participation, so the grade rewards your preparation and growth instead of how much airtime you take.

How Class Activities and Participation Are Evaluated

Your participation grade is 10% of the course, and I assess it holistically across the term against four dimensions. You get the rubric here, up front, so nothing at the end comes as a surprise.

Dimension Pre-Emerging Beginning Progressing Proficient
Preparation Arrives without having read or attempted the open assignment’s Part 0 Has skimmed the reading but attempted nothing Has read and attempted the Part 0 work for the unit Arrives having read, attempted Part 0, and marked a specific question or stuck point to raise
Contribution Disengaged from the team and the room Participates only when prompted Engages actively in the POGIL activity Advances the group: proposes an approach, catches an error, or asks the question that unblocks the team
Collaboration Works alone or lets the team carry the work Does the assigned role minimally Takes the rotating team role seriously Makes teammates better: explains, listens, and helps others past a bug rather than around it
Reflection Skips the reflection prompts Reflections are perfunctory Reflections engage the concepts honestly Reflections connect ideas across the course and name their own confusion as a place to grow

A Routine for Preparing

Please run this before each meeting. It turns the assigned reading into readiness, and it pairs with each activity’s own “Before You Begin” box, which lists the specific skills that day assumes.

  1. Survey first (5 minutes). Skim the assigned reading and the day’s activity, including the headings, the “Key Concepts” table, the models, and the in-deck exercises. Build a map before you read for detail, so you know what the session is going to ask you to do.
  2. Read the technical prose slowly, with a pencil and an interpreter open. You read formal and technical writing at sentence speed, not paragraph speed. When the text shows you a grammar rule, a regular expression, or a snippet, run it, whether that’s in the Python REPL, on paper, or by hand. You don’t really know a definition you have only read.
  3. Work the open assignment’s Part 0 before class. Most assignments and labs open with a short Part 0: Before You Start tied to that unit’s reading, and each one names the session it prepares you for. It is graded, but it is graded on the attempt and the thinking, not on getting it right. Arrive with it done, because that’s what the in-class work builds on.
  4. Bring one question, or one place you got stuck. Mark the single thing that gave you the most trouble, whether that’s a rule you couldn’t derive, a snippet you couldn’t trace, or a tradeoff you couldn’t resolve, and bring it to class. It’s how I know the reading happened, and it’s usually where the best discussion of the day begins.

Ways to Contribute

Speaking up in whole-class discussion is one way to participate, and a good one. It isn’t the only one, and I’ve designed this component to value several:

  • Work the activity: engage with your POGIL team, because that’s where the daily learning happens.
  • Take your role: as Manager, Recorder, Presenter, or Reflector, each rotating role is a real contribution; in the project phase, the same is true of Coordinator, Builder, Evaluator, and Scribe.
  • Post to the board: when the Recorder posts the team’s answers to the class discussion board, that is participation the whole class learns from.
  • Ask: a precise question about a rule, a bug, or a tradeoff moves the room forward as much as an answer does.
  • Help a teammate: explaining a concept or helping someone past a bug is among the most valuable things you can do in a working session.

Being confused is part of learning this material. It isn’t a sign that you don’t belong, and it’s never something to hide. If the spoken room is consistently hard for you, the written and role-based channels above are real ways to earn this component. Please talk with me early and we’ll find the path that fits.

Self-Assessment (Midterm and End of Term)

At midterm and at the end of the term, please write a short self-assessment, a paragraph or two, against the four rubric dimensions:

  1. Preparation and reflection: How reliably have you been arriving with the reading done and the unit’s Part 0 attempted? What do your reflection responses show?
  2. Contribution and collaboration: Name one session you helped move forward, and one teammate you helped.
  3. A goal: One concrete thing you will do differently in the second half of the term.

Your own account of your growth is part of this grade, and the self-assessment is where we reconcile your sense of it with mine.

See also

Submission

Nothing to submit. This is a support page; return to it before class throughout the term.

Please refer to the Style Guide for code quality examples and guidelines.