Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
courses:cs101-201954:labs [2019/02/13 10:02]
sellis [Lab. Descriptions]
courses:cs101-201954:labs [2019/04/19 12:23] (current)
sellis [Lab. Descriptions]
Line 9: Line 9:
 ==== Problems and Solutions ==== ==== Problems and Solutions ====
  
-^ Week    ^ Lab.  ^  Problems ​                                                                                   ^  Sample Solutions ​                                                                                 +^ Week     ​^ Lab.  ^  Problems ​                                                                                   ^  Sample Solutions ​                                                                                  ​
-|  **1**  |  0    | [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab00_problems.txt|Lab. 00 Problems]] ​  ​| ​                                                                                                   +|  **1**   ​|  0    | [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab00_problems.txt|Lab. 00 Problems]] ​  ​| ​                                                                                                    ​
-|  **2**  |  1    |  [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab01_problems.txt|Lab. 01 Problems]] ​ | [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​solns/​lab01_solns.txt|Solutions to Lab. 01]]  +|  **2**   ​|  1    |  [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab01_problems.txt|Lab. 01 Problems]] ​ | [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​solns/​lab01_solns.txt|Solutions to Lab. 01]]   ​
-|  **3**  |  2    |  [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab02_problems.txt|Lab. 02 Problems]] ​ |                                                                                                    |+|  **3**   ​|  2    |  [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab02_problems.txt|Lab. 02 Problems]] ​ | [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​solns/​lab02_solns.txt|Solutions to Lab. 02]]   | 
 +|  **4**   ​| ​ 3    |  [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab03_problems.txt|Lab. 03 Problems]] ​ |  [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​solns/​lab03_solns.txt|Solutions to Lab. 03]]  | 
 +|  **5**   ​| ​ 4    |  [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab04_problems.txt|Lab. 04 Problems]] ​ |  [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​solns/​lab04_solns.txt|Solutions to Lab. 04]]  | 
 +|  **6**   ​| ​ 5    |  [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab05_problems.txt|Lab. 05 Problems]] ​ | [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​solns/​lab05_solns.txt|Solutions to Lab. 05]]   | 
 +|  **8**   ​| ​ 6    |  [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab06_problems.txt|Lab. 06 Problems]] ​ | [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​solns/​lab06_solns.txt|Solutions to Lab. 06]]   | 
 +|  **9**   ​| ​ 7    |  [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab07_problems.txt|Lab. 07 Problems]] ​ | [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​solns/​lab07_solns.txt|Solutions to Lab. 07]]   | 
 +|  **10** ​ |  8    |  [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab08_problems.txt|Lab. 08 Problems]] ​ | [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​solns/​lab08_solns.txt|Solutions to Lab. 08]]   | 
 +|  **11** ​ |  9    |  [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab09_problems.txt|Lab. 09 Problems]] ​ |                                                                                                     |
  
  
Line 43: Line 50:
 === Lab. 03 === === Lab. 03 ===
  
-__Friday, ​12th February, 2019__+__Friday, ​15th February, 2019__
  
-This lab. is all about recursion and writing functions that call themselves to perform a task. This is an important and integral part of Scheme, and of computer science in general.+This lab. is all about recursion and writing functions that call themselves to perform a task. This is an important and integral part of Scheme, and of computer science in general. There are also some problems involving the conditionals ''​if''​ and ''​cond''​.
  
-/* 
 [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab03_problems.txt|Problems for Lab. 03]] [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab03_problems.txt|Problems for Lab. 03]]
 +
  
 === Lab. 04 === === Lab. 04 ===
  
-__Friday, ​5th October2018__+__Friday, ​22nd February2019__
  
-We have been looking at several different subjects of late: boolean operators ''​AND'',​ ''​OR''​ and ''​NOT'', ​recursion, and non-empty listsIn this lab. you will be solving problems mostly involving recursion ​and lists, although one problem about booleans explores how computers actually work.+We have been looking at several different subjects of late: 
 + 
 +  * recursion;​ 
 +  * conditional expressions using ''​if''​ and ''​cond'';​ 
 +  * the boolean operators ''​AND'',​ ''​OR''​ and ''​NOT''​
 +  * writing predicate functionswith or without conditionals. 
 + 
 +This lab. is intended to give you some practice with writing predicate functions ​and using boolean operators.
  
 [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab04_problems.txt|Problems for Lab. 04]] [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab04_problems.txt|Problems for Lab. 04]]
-*/+ 
 + 
 +=== Lab. 05 === 
 + 
 +__Friday, 1st March, 2019__ 
 + 
 +Manipulating non-empty lists is one of the most common operations in Scheme. We have seen how we can use the list operators ''​first'',​ ''​rest''​ and ''​cons''​ to access parts of a list and to stitch lists back together -- or maybe even create new ones. 
 + 
 +This lab. is intended to give you some practice using lists and list-based recursion, and to support you in solving the problems in this week's assignment. 
 + 
 +[[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab05_problems.txt|Problems for Lab. 05]] 
 + 
 + 
 +=== Lab. 06 === 
 + 
 +__Friday, 29th March, 2019__ 
 + 
 +This lab. will give you some more practice with list recursion. You will also practice re-writing non-tail-recursive functions as tail-recursive functions, as well as working with accumulators. 
 + 
 +[[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab06_problems.txt|Problems for Lab. 06]] 
 + 
 + 
 +=== Lab. 07 === 
 + 
 +__Friday, 5th April, 2019__ 
 + 
 +For the past couple of weeks we have been playing with accumulators,​ wrapper functions and list recursion. This lab. is intended to wrap up the topic with a few final problems, including working through hierarchical lists -- i.e. lists which contain lists. There is even a bonus question... 
 + 
 +[[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab07_problems.txt|Problems for Lab. 07]] 
 + 
 + 
 +=== Lab. 08 === 
 + 
 +__Friday, 12th April, 2019__ 
 + 
 +This week we have been working on local environments and variables, using ''​let'',​ ''​let*''​ and ''​letrec''​. This lab. gives you the chance to practice with these expressions,​ in part by revisiting problems you have already seen and rewriting them. 
 + 
 +[[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab08_problems.txt|Problems for Lab. 08]] 
 + 
 + 
 +=== Lab. 09 === 
 + 
 +__Friday, 19th April, 2019__ 
 + 
 +There have been many changes lately. Moving to using ''​let''​ and ''​let*''​ to handle variables, and writing self-contained recursive functions with ''​letrec''​. Now we can use **iteration** to solve problems, with the loop control functions ''​while''​ and ''​dotimes'',​ though we need to ''​set!''​ our own variables now. Ah, the vicissitudes of destructive programming... 
 + 
 +[[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/lab09_problems.txt|Problems for Lab. 09]]