CSC 151 (Functional Problem Solving, Fall 2024)

About

  • Instructors: Peter-Michael Osera (sections 01 and 02), Leah Perlmutter (section 03)
  • Class Meeting Location and Times: Noyce 3813
    • Section 01: 8:30–9:50 AM CT
    • Section 02: 10:00–11:20 AM CT
    • Section 03: 2:30–3:50 PM CT
  • Instructor Office Hours
  • Mentors: Jacob Bell (section 01), Owen Block (section 02), Tiffany Yan (section 03)
  • Mentor sessions: Sunday 6-7 pm in Noyce 3813, Thursday 8-9 pm in Noyce 3819
  • Evening Tutors: Caelan Bratland, Ethan Hughes, Ishita Sarraf, Boston Gunderson, Dieu Anh Trinh, Alma Ordaz, Charles Wade, Tiffany Tang, Avaash Bhattarai
  • Evening Tutor Sessions: Sundays, 3–5 PM; Sundays through Thursdays, 7–10 PM in Science 3813 and 3815

Welcome to CSC 151! In this class, you will learn computer programming using the Scamper programming language. You do not need any prior knowledge of computer science or programming.

Learning Objectives

This course covers 18 learning objectives (LOs).

  • Unit 1 (Weeks 1–4)
    • Decomposition. Decompose a computational problem into smaller sub-problems amendable to implementation with functions.
    • Procedural abstraction. Take a concrete implementation in Racket and create a procedure that generalizes that behavior.
    • Tracing. Trace the execution of a Racket program using a substitutive model of computation.
    • Primitive types. Express basic computations over primitive values and their associated standard library functions.
    • Conditionals. Use Boolean expressions and conditional operations to produce conditional behavior.
    • Testing. Test programs according to good software engineering principles.
  • Unit 2 (Weeks 5–8)
    • Documentation. Document programs according to good software engineering principles.
    • Local bindings. Refactor redundancy and add clarity in computations with let-bindings.
    • Lists. Manipulate lists with fundamental higher-order list functions.
    • List recursion. Design and write recursive functions over lists.
    • Numeric recursion. Design and write recursive functions over the natural numbers.
    • Higher-order programming. Write procedures that take procedures as parameters and return procedures as results.
  • Unit 3 (Weeks 9–13)
    • Lambda-free anonymous procedures. Use section and composition to simplify computations.
    • Dictionaries. Design and write functions that use dictionaries.
    • Vectors. Design and write functions (potentially recursive functions) that use vectors.
    • Data abstraction. Design data structures to separate interface from implementation.
    • Tree recursion. Design and write recursive functions over trees.
    • Running time. Use a mental model of computation to count the relevant number of operations performed by a function.

Communication

Course Website : This website contains all courses policies. Course materials and homework deadlines will be posted here as they become available. Familiarize yourself with the website so you know where to find everything.

Email : Your instructor will send course announcements via email. You are responsible for reading all email from your instructor.

Microsoft Teams : Our class has a Teams channel for Q&A shared by all three sections. If you have a question and others in the class could benefit from its answer, please post in the teams Q&A channel.

Getting in touch with your instructor : If you need to get in touch with me privately, use email or teams. We try to reply to messages within about 24 hours, excluding weekends and holidays. If you do not hear back within that amount of time, please send a reminder.

Gradescope : You will submit assignments via gradescope. Please confirm that you have been added to this class on gradescope.

Class meetings : Most days of class are lab days. Your instructor will make announcements and might briefly present concepts. Most of the time, you will collaborate with your lab team on programming practice problems.

Evening tutors : 5 days per week, peer educators will be available in our classroom during certain hours to help you with homework questions. You can drop in at any time to work on your homework or ask a question.

Mentor sessions : 3 times per week, a peer educator will hold a supplementary session where they might offer a review of concepts from class or practice problems. You should show up at the start of the session and stay until the end.

Informal time : You are encouraged to come to our classroom to study and work at any time that the room is not reserved for class or a meeting. This is an opportunity to studycollaborate with peers and form community.

Office hours : Your instructor will hold office hours each week. This time is for you to meet with your instructor and talk about any course related matter that you like!

Individual tutors : If you are taking advantage of the resources above and need more help, contact your instructor to request an individual tutor to meet with you one-on-one.

Academic advising : Grinnell offers academic coaches available to you as a resource to help you develop learning strategies and support you in your learning.

Deliverables

Reading responses : Prior to each class meeting, you will read an online reading assignment about computing concepts, work through code examples in a programming environment, and answer a few questions about the reading

Labs : During each class meeting, you will work with a partner to complete programming exercises to practice the concepts from the readings

Take-Home Assessments Homeworks : About once per week you will complete an individual programming assignment where you apply and extend concepts from readings and labs. No programming assignment on midterm exam weeks.

Final project : The final programming assignment will be more open ended and completed in teams.

Quizzes : About once per week, you will complete an individual, 15-minute quiz in class on paper (time extended according to any accommodations)

Exams : 4 times during the semester, you will complete an individual midterm exam in class on paper, lasting the entire class period (time extended according to any accommodations)

Pre-reflections : Before each take-home assessment homework and each exam, you will answer some reflection questions to help you prepare and feel confident to dive in.

Post-reflections : After each take-home assessment homework and each exam, you will answer some reflection questions to help you understand what went well and what went poorly.

Collaboration and Resources

  • Outlook
    • Do collaborate in your learning
    • Collaborate in ways that support rather than undermining your learning
      • We'll talk about this throughout the semester!
    • On individual assignments
      • Don't do somebody else's work for them or let them do yours
    • Don't turn in the same or highly similar work
  • Deliverables
    • Reading responses
      • Encouraged to work with others to understand the readings
      • Write your own answers to the reading response questions
      • You can get help from others but make sure you are able to explain your answers yourself
    • Labs
      • Typically completed in teams of 2
      • Both partners should contribute equally to all parts of the lab
      • You may ask other teams for help
      • Make sure every team member can explain your team's answers
    • Take-home Assessments Homeworks
      • Individually completed
      • As additional resources, use only what you find on the course website
      • You may get help from course staff, including evening tutors, mentors and instructors
      • You may not discuss the assessment or get help from peers, inside or outside the class
    • Quizzes
      • Completed individually in class
      • No form of collaboration is permitted
    • Exams
      • Completed individually in class
      • No form of collaboration is permitted
    • Final project
      • Completed in groups of 3–4
      • All members should contribute equally to the project
      • You may ask others for help

Grading

Deliverables

  • Reading responses
    • Graded S/N based on whether you answered the assigned questions with a good faith effort
    • S = satisfactory, N = Not satisfactory
  • Labs
    • Graded S/N based on whether you answered the assigned questions with a good faith effort
    • S = satisfactory, N = Not satisfactory
  • Take-home Assessments and the Final Project
    • Graded EMRN based on correctness and following instructions
      • E = Exceeds expectations
      • M = Meets expectations
      • R = Needs revision
      • N = Not complete (did not make a good faith effort)
    • Criteria for each letter grade are given on the homework instructions for each assessment.
  • Learning Objectives (Quizzes and Exams)
    • You will demonstrate your mastery of each Learning Objecive (LO) in assessments (quizzes or exams).
    • Each quiz gives you an opportunity to demonstrate mastery of one LO.
    • Each exam gives you an opportunity to demonstrate mastery of every LO that has been covered in class up until the date of the exam. There will be one exam problem for each LO.
    • Each LO is graded S/N
      • S = Satisfactory (demonstrated mastery)
      • N = Not Yet Satisfactory (did not yet demonstrate mastery)
    • Once you have demonstrated mastery of a certain LO, you do not need to be assessed on that LO again. That is, you can skip exam problems about LOs you have already mastered.

Final grade

Major letter grades for the course are determined by tiers, a collection of required grades from your demonstration exercises and core exams. You will receive the grade corresponding to the tier for which you meet all of the requirements. For example, if you qualify for the A tier in one category and the C tier in another category, then you qualify for the C tier overall as you only meet the requirements for a C among all the categories.

TierTake-home Assessments (8)Core (18)Project (1)
CNo Ns, at most 3 Rs, at least 1 EsAt least 10 SsR
BNo Ns, at most 2 Rs, at least 3 EsAt least 12 SsM
ANo Ns, at most 1 R, at least 5 EsAt least 14 SsE
  • D: two of the requirements of a C are met.
  • F: zero or one of the requirements of a C are met.

Plus/minus grades

To earn a plus/minus grade, you must have completed one tier’s requirements and partially meet the next tier’s requirements. This will arise in two situations: C/B and B/A. For example, you may completely meet the requirements of a C and meet the requirements of a B for take-home assessments but not for core learning outcomes.

  • If you have completed two of the upper tier's requirements, then you earn a minus grade for the higher tier, i.e., B- if you are between a C and B.
  • If you have completed one of the upper tier's requirements, then you earn a plus grade for the lower tier, i.e., C+ if you are between a C and B.

Be aware that if you are at an A tier for one deliverable category but at a C tier for another, then you fully qualify for the C tier and partially meet the requirements of the B tier and thus would be considered for plus/minus grades in the B/C range.

Timely Work

You may miss turning in at most six timely work deliverables (reading questions, labs, pre- and post-reflections) without penalty. After the first six deliverables, your overall letter grade will lower by one-third of a letter grade (i.e., A becomes A-, B- becomes a C+, C becomes a D) for every two additional deliverables you miss. The following table summarizes this policy for concrete numbers of missed timely work deliverables through 12, although the policy extends to any number of missed assignments.

Missed timely workLetter adjustment
0–6 deliverables-0
7 deliverables-1/3
8 deliverables-1/3
9 deliverables-2/3
10 deliverables-2/3
11 deliverables-1
12 deliverables-1

Deadlines and Late Days

Check the schedule to see your assignments. Check Gradescope to see the time of day that each assignment is due. Due times are typically as follows:

Readings : 10 pm the day BEFORE it appears on the schedule

Labs : 10 pm on the next lab day (except around breaks and exams)

Take-Home Assessments : 10 pm the day it appears as "due" on the schedule

Reflections : 10 pm the day it appears on the schedule

Late Days

  • Late days are a currency that you can spend to turn in assignments late.
  • You start the semester with 10 late days.
  • You are responsible for keeping track of your own late days.
  • You may spend late days on reading responses, labs, pre-reflections, post-reflections, take-home assessments, and take-home assessment revisions.
  • You may spend one late day to submit any of the named assignments up to 24 hours late.
  • You may spend up to two late days on any given assignment, for a maximum lateness of 48 hours on that assignment.

Redo and Revision Opportunities

  • Learning Objectives (Quizzes and Exams)
    • When you earn an N on an LO, you can attempt to demonstrate mastery on that LO again on every following exam.
    • The final exam allows you to redo past LOs but does not introduce new LOs, ensuring that you get a minimum of 2 tries to earn an S on every LO.
  • Take-Home Assessments
    • You may revise and resubmit take-home assessments after receiving feedback.
      • You may submit up to 2 revision assessments in each weeklong revision period.
      • Revision periods are shown in the revision form below.
    • When revised work is graded, the new grade, if higher, replaces the old grade. Submitting revised work cannot lower your grade.
    • To be eligible for resubmission, you must have completed the assessment homework in good faith on your first attempt, earning at least an R. Redo opportunities cannot be used as a way to skip take-home assessments and do them later.
    • Resubmit an assessment by filling out the Take-Home Assessment Revision Request Form and resubmitting your work on gradescope. The form also clarifies some nuances of the revision policy.
  • Reading responses, labs, and reflections are graded based on good faith engagement with the assigned questions and cannot be revised for credit.

Attendance

We expect you to attend class every day because collaborative learning is such an integral part of the class. If you need to be absent, talk to your instructor as soon as you know. This means a week or more in advance for planned absences such as religious observances and sporting events.

Sick Policy

Please stay home when you are sick. Wait to come back to class until you truly feel well enough to learn. Each day that you will miss class due to illness, contact your instructor before class (or as soon as possible).

When coming back to class, wear a mask until there is no more than a normal concern of contagion. Protecting the people around you from your illness is a matter of professionalism and personal respect.

Late Work due to Illness and Time Away

You are responsible for checking the course website to see what is assigned while you are out and for completing all assigned work.

The late day and redo policies are designed to offer flexibility so that late work resulting from one or two minor to moderate illnesses or unforseen circumstances will not lower your grade in the class. If you find yourself needing to take lots of time away, please talk to your instructor about getting additional late days or increasing the number of late days you can spend on a given assignment.

Access Needs

To ensure that your access needs are met, I encourage individual students to approach me so we can have a discussion about your distinctive learning needs and how to meet them within the context of this course. In addition, Grinnell College makes formal accommodations for students with documented disabilities. Students with disabilities partner with the Office of Disability Resources to make academic accommodation letters available to faculty via the accommodation portal. You can reach Disability Resources staff via email at access@grinnell.edu, by phone 641-269-3089, or by stopping by their offices on the first floor of Steiner Hall.

Grinnell College is committed to compliance with Title IX and to supporting the academic success of pregnant and parenting students and students with pregnancy related conditions. If you are a pregnant student, have pregnancy related conditions, or are a parenting student (child under one-year needs documented medical care) who wishes to request reasonable related supportive measures from the College under Title IX, please email the Title IX Coordinator at titleix@grinnell.edu. The Title IX Coordinator will work with Disability Resources and your professors to provide reasonable supportive measures in support of your education while pregnant or as a parent under Title IX.