Lab solutions should be submitted on the course moodle by 6:00 p.m. on the due date. Your write-up should be submitted as a PDF file along with any code. Either a typeset or a (legible) handwritten write-up is acceptable.
You are encouraged to work on lab assignments in pairs, enabling pair programming. Lab assignments are the main opportunity to learn material in this course and thus they count for a relatively small portion of your final grade. It is strongly advised that you work on all the problems in a lab assignment together so that you understand all of the material and are prepared for the exam. Everyone will submit assignments, and you must cite your partner explicitly. You may switch partners between assignments, and you are responsible for all assignments individually (e.g., if your partner drops the course midway though an assignment, you still need to submit on time).
Lab Assignment 6
Due Saturday, December 1, 2012
- Handout--updated 11/27 2:57pm, typos
- Project Code: zip--updated 11/21 12:05pm, calling your RegExprParser (no changes to Lab6_YourIdentiKey.scala)
Lab Assignment 5
Due Saturday, November 10, 2012
- Handout--updated 11/9 9:00pm, fixed the missing M' in the search rules
- Project Code: zip--update 10/30 11:55pm
Lab Assignment 4
Due Saturday, October 27, 2012
Lab Assignment 3
Due Saturday, October 6, 2012
- Handout--updated 9/23 7:29pm
- Project Code: zip--parser/driver updated 10/4 12:22am
- Run jsy programs as js programs: jsy.js--updated 9/23 8:30pm
Lab Assignment 2
Due Saturday, September 22, 2012
- Handout--updated 9/17
- Project Code: Download the project archive (zip--updated 9/18) or as individual files (code template, ASTs, main driver, library--bug fix 9/17, test case--added 9/17)
- Run jsy programs as js programs: jsy.js
Lab Assignment 1
Due Saturday, September 8, 2012
The goal of the teaching project is to identify a topic of your choosing from the course that you will explain to your peers. Most often, this project will involve formulating a concrete example and then walking through the example to illustrate some concept. Such examples may be through diagrams on slides or code.
The main deliverable for this project is a screencast or video that you produce to present your example and explanation. There is no length limit, but we are seeking explanations about 8-15 minutes in length.
You will have the opportunity to do a practice run of your presentation during class and lab. These practice runs will not be graded (except for done/not done), but they provide you with an opportunity to get feedback and a check on correctness. While there's no limit on your video productions, you will sign-up for short slots for your practice presentations.
In lab on Fri 12/7, prepare an early draft presentation potentially with open questions on correctness. On Tue 12/11, correctness issues should have been resolved and the focus is on polish and delivery.
Projects will be done in teams of 4. Each member must speak in the video production/practice presentation. Please also sign-up for a practice presentation where all of your team members can attend.
Take this opportunity as a way to review for the final exam. Pick a topic on which you could use reinforcement.
Evaluation. Take a look at the presentation evaluation form. Your peers will use this form to evaluate your presentation.
Peer Review. You will have to an opportunity to write reviews of your peers' video presentations for extra credit.
Submission. Please submit a high-quality video of your production and a short write-up (~half page) of your intended learning goals on the moodle.
- Fri, December 7, 2012. First practice presentations. Sign-up for slots are first-come, first-served.
- Tue, December 11, 2012. Second practice presentations. Sign-up for slots are first-come, first-served.
- Wed, December 12, 2012. Videos due.
- Tue, December 18, 2012. Extra credit reviews due.
I highly recommend the following brief handouts on creating a presentation:
- Jean-Luc Doumont. Effective oral presentations.
- Simon Peyton Jones. How to give a good research talk. These slides are biased towards research talks, but most of the advice holds for just about any talk.
Classes focus on discussion, so it is certainly important to participate in class and read the readings beforehand.
Students are expected to be active participants in the online forums (e.g., around at least 1 substantive post per week). You may and are encouraged to post comments or questions about the reading before the class where we will cover it. Posting early will help focus our discussion.
Here are some examples of good comments:
- Questions about the reading or the class discussion.
- Thoughtful answers to other people's questions.
- Clarification of some point discussed in class.
- Comments on a web resource related to a reading or class discussion (e.g., you happened upon an interesting blog post related to our discussion).
If everything from a class meeting seems clear to you, try to come up with a question that tests your classmates' understanding. Put yourself in the position of an instructor!
Overall, the intent is for you to to take a moment to reflect upon the day's reading or class discussion. I will read all posts, but I may not respond to all of them (e.g., if I believe your classmates' answers are sufficient).