CSC150 — Content

Lecture Notes

Trees.

Binary Search Trees: Part I.

Binary Search Trees: Part II.

Binary Search Trees: Part III.

Lists: Part I.

Lists: Part II + Accumulating Recursion..

Programming and the Programming Language

Fluxus, DrScheme and PLT Scheme

Fluxus makes possible an extremely interactive and adaptive demonstration of most of the concepts of CSC 148/150: Trees, Recursion, Objects (including, but not limited to, Python objects and classes), Models of Execution and Memory, etc. It will be used for some of the lectures.

As a bonus (and why Fluxus is even possible!), Fluxus is scripted in PLT Scheme, which has a strongly proven track record of teaching 1st year programming and preparing students for other languages (Java/C++/Python):

[...] at hundreds of high schools and universities on nearly every continent.

Several companies not only use [it], they have even begun to adopt [PLT's] curriculum for in-house training.

[...] some of [PLT's] material is now being successfully used even in middle-schools.

Experience documented there shows that students who learn programming via PLT Scheme, quickly do better in Java/Python/C++ than students who learned programming in one of those languages! So in CSC 150 we will easily cover the syntax of Python, and the quirks of Python's behaviour (read on), after understanding the programming concepts clearly, thoroughly, and more easily, via Scheme.

Switching from Java to Python in 1st year, to both introduce programming in CSC 108 and then use in CSC 148, has been a great success at UofT, with lots of positive feedback from students. But our 1st year instructors are continually thinking about improvements, and finding that Python has a lot of arbitrary hidden complications. PLT Scheme has much cleaner and clearer meaning and behaviour, where there are problems with Python:

  • "Aliasing [...]"
  • "Simple classes [...]"
  • "Global scope [...]"
  • "More scope [...]"
  • "In CS2 [i.e. 148/150], we're struggling with [...] information hiding [...]"
  • "no good GUI packages [...] usable on all three major OSes"

DrScheme is the required environment for learning PLT Scheme in CSC 150. It is available in the CDF labs (currently being upgraded to a newer version), and is easy to install and use on all three major platforms (Windows, Mac, Linux).

Fluxus is also being installed for use in the CDF labs.

Texts

To review programming: How to Design Programs, and the 2nd Edition in Progress.

Guide to PLT Scheme.

Explorations and Readings

Sep 9–13

Find your CDF Lab Username and log in from one of the labs.

Install DrScheme, or try it in the CDF labs, possibly via remote access. Watch the DrScheme Tour video.

Read Part I, Sections 1–5 of How to Design Programs, and do all the Exercises. Look up all the PLT Scheme functions, expression forms and statement forms used there, in the PLT Scheme Guide.

Sep 21–23

Read the rest of Part I of How to Design Programs, do exercises as necessary.

Sep 23–25

Read Part II, section 14.1 and 2.

Oct 2–5

Read Part II, section 9.

Ask questions or make comments about any of the above, on the Readings and Explorations bulletin board.