Coder Social home page Coder Social logo

sicp-project's Introduction

Structure and Interpretation of Computer Programs: Tamagotchi Project (Scheme)

This repo contains the project that I did in December 2014 for the "Structure and Interpretation of Computer Programs" course teached by Prof. De Meuter at the Vrije Universiteit Brussel. This course covered a great part of the excellent SICP book. The goal of the course was to get a "deep understanding of how programming languages work". It covered among others the following subjects: functional (higher order) programming, closure, anonymous functions, continuation, meta-programming (meta-circularity) and lambda calculus.

To code in Scheme, the following interpreter is recommended: DrRacket

A video of the project is available on Youtube.

Project

The project consisted to build a tamagotchi and program it in Scheme. The hardware given to us consisted of an Olimex LPC-H2214 microcontroller, an LCD screen, a protoboard, a USB cable, 3 leds, 3 buttons, 1 accelerometer, some resistors and some wires. I used the ZTerm terminal emulator to load my code on the board.

Here is what my final project looked like:

Tamagotchi

The instructions were to make it as much as possible similar to a real tamagotchi; that is, the monster should display its state (hungry, sleepy, sick,...) and we should be able to interact with it (by feeding it, playing with it, etc).

Here are few other pictures showing the final project:

Menu Monster is hungry

In addition to code the whole program for the tamagotchi, I also wrote the libraries to draw the various shapes and letters/integers. This code can be found in the init.scm file in the src folder. The other file (ArmSchemeLib.scm) defines some low-level commands and was provided to us by the teaching staffs.

A video of the project is available on Youtube.

Personal notes

This course was very interesting. I learned many new concepts (continuation, meta-programming,...) and a new programming paradigm (= functional paradigm).

sicp-project's People

Contributors

bdelhaisse avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.