Ozten Recent Activities

Home › Items tagged with sicp

  • Sections 2.1 and 2.2

    SICP Section 2.1The text introduces the topic of Data Abstraction. Coming into this discussion, I see this as a core feature of Object Oriented Programming and an element for enabling programming in the large.It is also another tool for adding abstraction to a system. Given selectors, constructors, and invariant rules or contracts, one can happily go about programming by “wishful thinking” caring only about this interface and not the actual data representation on the backend. This is important as one either builds layers of abstraction, or attempts to collaborate on a system with other programmers.The text runs though silly implementations of basic “primitives” of Lisp, to show that as long as selectors and constructors use the same silly implementation everything will work, albeit slowly.This has massive benefits for prototyping and agile system development. Once can sketch-out a component of the system, but not commit to it’s details or spend time on making it efficient, until it is something that is worth investing in. Also this supports David Parnas style information hiding and module de-composition. If one structures the abstract data types so that they use only the constructors and selectors of other abstract data types, then one can rework the implementation without recoding these parts.Section 2.2The text continues to blur the lines between data and code, when introducing the concept of hierarchical data and the closure property. This term “closure property” used in the text been superseded by a new concept of scoping rules and environment. I would call this feature composition or regularity. A cons is a pair of boxes that point to something. A cons pair may in-fact point to two other cons pairs. Thus the definition achieves “closure” and powerful abilities emerge out from this. I think about GUI programming where every widget is composable and recomposable. Example you can place a frame inside of a panel inside of a tabbed widget and so on. The ability to nest them brings power and the regularity brings simplicity.We can model sequences or hierarchical structures with the same simple glue. The section on “A Picture Language” is a very cool example. In this picture language the only primatives are painters. A painter given a rectangle, paints itself into that rectangle. The means of combination are functions, created with a rectable, that compose other painters. We are given two painters “Rogers” and an Escheresque “Wave” drawing where the line segments wrap around the image, for maximum trippiness factor.Very quickly the text begins creating composition combinators that do nothing more than compose other painters, but which create complexity from simple parts very quickly. Thus the “beside” combinator breaks the field in half and populates each half recursively with it’s two arguments.These painters are sort of data, in that they represent a photo, but at the same time they are a procedure that given a rectangle, render onto the screen.Again, similar to writing of Parnas, the text stress the importance of stratified design, such that each layer in a system builds on the abstraction below it only. This allows one to make a more robust system and to focus on less details at any one time.

    • Tags:
    • lisp
    • eval scheme apply learnings
    • sicp
    • section 21 22
  • SICP Exercises 1.1 - 1.7

    I have been slow in posting these, but here is exercises 1.1 - 1.7

    Exercise 1.1 Exercise 1.2 Exercise 1.3 Exercise 1.4 Exercise 1.5 Exercise 1.6 Exercise 1.7

    • Tags:
    • lisp
    • eval scheme apply learnings
    • scheme
    • sicp
    • homework
    • exercises
  • Seattle SICP study group kick off meeting was fun

    I had a lot of fun last night. We had our kick off meeting in the University district at Big Time Brewery. We settled all the logistics of how to run the group. Most of the people are attached to UW directly or indirectly and our backgrounds vary. I think attrition will be high for SICP, but we are starting with a promising crew.For anyone setting up a study group here are some statistics. Announced as a meat-space study group in Seattle with a mailing list on Google Groups. 21 people signed up online. 7 people attended kick off meeting. I advertised on my (obscure) blog, craigslist activities, and two mailing lists. I put up a couple flyers at work and in a couple coffee shops. By far, I think the mailing lists where the most effective. They are SeaFunc and LispSea. Okay, time to get McCrack'n on the text.

    • Tags:
    • meeting
    • eval scheme apply learnings
    • sicp
    • study group
  • HELO

    Howdy.I am going to use this livejournal for recording my progress through SICP. I have wanted to work through this text for a long time, as "The Structure and Interpretation of Computer Programs" is a classic. I am doing two independent study classes with Regis university as part of a Masters degree through their professional studies program.So the focus of this journal will be Lisp including Scheme and Common Lisp and working through the exercises  in the text, commentary on videos, etc.

    • Tags:
    • lisp
    • eval scheme apply learnings
    • scheme
    • cl
    • sicp
    • howdy
    • introduction
Copyright © 2010 Me. All Rights Reserved. Running on Sweetcron v1.08e

This site is monitored by mon.itor.us