Fundamentals of Computer Programming: Scheme


Announcements

  • (July 23) Solution to the n-queens problem (we have already done most of hard work in the homeworks) is here. Just run (allsols n) to get all the solutions for an n x n chess board.
  • (July 23) Today is the final exam. You may consult your class notes, text book, course webpage (for previous homeworks and solutions) during the exam.
  • (July 17) Changes in HW 8 (Tree traversals only).
  • (July 16) You should tell me if you want a letter grade or a Pass/Fail grade before 11:59 pm on July 23rd. If I don't hear from you by then I will assume you want a letter grade.
  • (July 16) The last homework is HW 8. No more homeworks.
  • (July 16th) The complete source code for the binary tree related code is here.
  • (July 7th) The complete source code for the permutation program can be got from here.
  • (July 7th) The midterm solutions are up now. You will also need to download the corresponding scheme files as well. (Just click on the links in the PDF file).
  • (June 28th) The mid term will be held in the MacLab on Friday, July 2nd from 1.30 to 3.30.
  • (June 23rd) Linux account: You will need a departmental linux account for the midterm. Instructions to get one.
  • (June 21st) CLASS ROOM CHANGE: The class will be held in Ry 255.

Administrative Information

Contact

  • Any email regarding the class should be sent to gmkrishn+class(at)cs.uchicago.edu.
  • My office is in Ry254. You are welcome to walk in and try your luck, but I prefer that you make a prior appointment.

Reading Material

Departmental linux account

Go to www.cs/info/services and click on "Request a CS account". You will need a CNet ID in order to request an account. If you don't have a CNet ID, let me know.

You should familiarise yourself with using DrScheme on the departmental Linux machines. Suggest solving your homework problems on the linux machines.

Homework, Exams and such

  • There will one mid term, one final and no quizzes.
  • All home works will count to 40% of your grade, the mid term 25% of your grade, and the final 35%.
  • The midterm and the final exam will be a lab exam, i.e.
    • You will have to solve some problems using DrScheme (on a departmental linux machine) in a prescribed time limit.
    • You can consult your notes as well as the textbook, during the exam.
    • There may also be some theory questions, i.e. questions for which your answer should be written on a piece of paper.
  • For homework details see here.

What we covered in the lectures...

  • (June 21) Designing scheme functions to calculate functions from numbers to numbers.
  • (June 23) Boolean functions, Symbols and the guessing game.
  • (June 25) Defining structures and using them, Error checking.
  • (June 28) Recursive functions
  • (June 30) Lists
  • (July 02) MID TERM EXAM
  • (July 05) No class
  • (July 07) Functions returning lists, sorting, permutations
  • (July 09) Quick Sort, Functions as arguments, filter, foldr, map
  • (July 12) Review of prev class, local, lambda
  • (July 14) Using local and lambda
  • (July 16) Binary trees, traversals and evaluating syntax trees
  • (July 19) Binary search trees
  • (July 21) Review, Student submitted problems...
  • (July 23) Final Exam

Other scheme links (unrelated to course)