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/05/03 14:57] (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]] ​               | [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​solns/​lab09_solns.txt|Solutions to Lab. 09]]   | 
 +|  **12** ​ |  10   ​| ​ [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab10_problems.txt|Lab. 10 Problems]] ​               | [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​solns/​lab10_solns.txt|Solutions to Lab. 10]]   | 
 +|  **13** ​ |  11   ​| ​ [[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab11_problems.txt|Lab. 11 Problems]]\\ (Bonus Lab)  ​| ​                                                                                                    ​|
  
  
Line 43: Line 52:
 === 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]] 
 + 
 + 
 +=== Lab. 10 === 
 + 
 +We have reached the end of this exploration of ideas of computer science, with two new ways of storing information:​ the **vector** and the concept of the **data structure**. In this lab. we will revisit a couple of old problems to see how we can recreate them using vectors, and then explore the connections between data structures, Scheme, and poker... 
 + 
 +[[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/​lab10_problems.txt|Problems for Lab. 10]] 
 + 
 + 
 +=== Lab. 11 (Bonus Lab.) === 
 + 
 +There are many interesting computations which can be done in mathematics. Some we have seen in class: the Fibonacci series and the Ackermann function, for example, but there are many more. Computers can help us with the vast majority of them. One of my favourites is the idea of the 'happy number':​ a number is happy if... Well, read the lab. instructions and find out what makes a number happy -- or not. 
 + 
 +This lab. is 100% optional. It is worth 3 bonus lab. points. 
 + 
 +[[https://​www.cs.vassar.edu/​~cs101/​ell-spr-2019/​labs/lab11_problems.txt|Problems for Lab. 11]]