Lecture 10 Slides - Q1 Review

1 of 9

Lecture 10

Q1 Review

2 of 9

Logistics and Week Ahead

For some - Ethics Module 3 - Accountability - reflections due on Sunday

  • Friday - Q1 Review (MQ 7) (Ex 3 Due - hints available on edSTEM)

Next Week (WEIRD SCHEDULE):

  • For some - Ethics Module 4 - Bias
  • Monday - Q1
    • Note: Deadline to have any grades corrected for any assignments prior to Q1. No grades posted (0 or otherwise) will be changed for any reason after the start of Q1.
  • Wednesday - Recursion (Pre-Recorded + MQ8) + Tutorial 4
    • Ex 4 posted - will be due the following week on Tuesday
  • Friday - Iterative Recursion (Pre-Recorded + MQ9) + Tutorial 5

3 of 9

Some other reminders

  • There's a Canvas page for every lecture that includes link to slides & recordings, any Racket files we used in class, and even some bonus content.
  • Office Hours Schedule is linked on Canvas.
  • Don't just click on "Assignments" / "Quizzes" / "Panopto" on Canvas. The home page is organized with every assignment grouped under a week.
  • TypeChecker runs at least every 30 minutes until Sunday at 11:30pm.
  • ~100 of you aren't registered on edSTEM
  • There are a lot of instructions in this class, but they're there to streamline everything and to make it so you don't have to wait for me to reply.
  • Our course has a rigorous Academic Honesty Policy. I do (and unfortunately have already) report people for Academic Honesty violations. If you need help in this course, please come see me or a course staff member. We are here to help you.

4 of 9

Quiz 1 - 10/13 Monday

  • In-person here in the Auditorium at the time you are officially registered for (those with testing accommodations should follow the instructions in your email)
  • Taken on the Lockdown Browser on your personal computer while connected to eduroam; details on how to set it up are on our Canvas page
  • If you have NOT tried the Lockdown Browser version of Practice Quiz 1b, DO IT ASAP. YOU WILL NOT RECEIVE EXTRA TIME IF YOU WAIT TO SET IT UP.
  • Three Types of Problems:
    • What's the type of this expression?
    • Here's a program; here's what we want to get out of it; here's what we get; fix it
    • Write a valid test for the given function definition
  • Covers everything up to and including Lecture 9 (Manipulating Composite Data)
  • You do NOT need to memorize all of the functions (you get a glossary)
  • You DO need to know the Rules of Execution and Special Forms
  • CHARGE YOUR COMPUTER THE NIGHT BEFORE.

5 of 9

Quiz 1 - 10/13 Monday Logistics

  • Please arrive at the auditorium on-time (there will be a hard deadline of 49 minutes; if you arrive late, that will eat into your time)
  • I will have a limited number of paper copies of the Glossary at the front of the class along with some scratch paper. The glossary will be available to you in the LDB.
  • When you get here do not sit directly next to another person. There should be at least one seat between you and the closest person. You may use the Balcony.
  • As soon as you get seated, go ahead and open your computer and make sure you are connected to EDUROAM (we log IP addresses).
  • You'll have to use MFA to login to Canvas, as soon as you're logged in put away your phone.
  • Open the Lockdown Browser application, and get logged into Canvas. The Quiz will automatically appear and enable at the start of your registered class time.

  • Make sure to have your Wildcard out. A proctor may ask to see it.
  • If at any time you receive an ERROR (e.g. not connected to the network) You need to raise your hand IMMEDIATELY and a proctor will come help you.

6 of 9

Topics Overview for Q1

  • Calling Functions and using Special Forms
  • Function Composition
  • Defining Functions - Lambda Abstraction
  • Graphics Language
  • Composite Data - Lists + Structs (Record Types)
  • Conditionals
  • Iterators - Images (iterated-*) + Lists (map, filter, foldl, etc)

Will Not Be Tested

  • These specific special Forms: cond and require*
  • higher order functions that produce functions as outputs

*meaning it will never be the cause of any underlying issues and can be assumed it is used correctly to import say the graphics functions or the iterators

7 of 9

Preparing for the Quiz

  • You should be able to explain any program we’ve written so far in plain-spoken language to ANYONE. Even those without any programming experience. If you find yourself struggling with part of the explanation…you've found a part that you don't quite understand.
  • For the quizzes, there are at most one or two questions that could be “tricky.” If you find yourself thinking all questions are tricky, you’re overthinking.
    • These questions are written with the time limit in mind!
  • Part 1 Qs will have only one correct answer; Part 2 Qs will only have 1 specific “error” you need to fix; Part 3 Qs have many possible valid tests

Best Ways to Study

  • Deliberate programming (i.e. Exercises, Tutorials, Lecture Examples)
  • Getting used to the instructions and question types using the practice exams
    • Some tips on using Practice Quizzes are available on Canvas under Course Resources
  • Reading programs using the Rules of Computation

8 of 9

Rubber Duck Debugging

  • You should be able to explain them in plain-spoken language to ANYONE. Even those without any programming experience.
  • If you find yourself struggling with part of the explanation…you've found a part that you don't quite understand.
  • A common way of forcing yourself to be clear is to try and explain it to an inanimate object. Like a rubber duck.
  • I'm not kidding. This is a real thing.
  • Ducks don't know how to program. If you commit and actually explain it to the duck, you'll find yourself searching for the WHY of stuff you took for granted.

9 of 9

Note: PollEv questions available via lecture recording