Skip to content
/ CS61A Public

Structure and Interpretation of Computer Programs

Notifications You must be signed in to change notification settings

weikhor/CS61A

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS 61A: Structure and Interpretation of Computer Programs Fall 2018 Projects

Project 1: The Game of Hog

alt text

In this project, a simulator is developed and multiple strategies for the dice game Hog. The control statements and higher-order functions together are used.

In Hog, two players alternate turns trying to be the first to end a turn with at least 100 total points. On each turn, the current player chooses some number of dice to roll, up to 10. That player's score for the turn is the sum of the dice outcomes.

Read more here

Project 2: Yelp Maps

alt text

In this project, a visualization of restaurant ratings using machine learning and the Yelp academic dataset. In this visualization, Berkeley is segmented into regions, where each region is shaded by the predicted rating of the closest restaurant (yellow is 5 stars, blue is 1 star). Specifically, the visualization you will be constructing is a Voronoi diagram.

In the map above, each dot represents a restaurant. The color of the dot is determined by the restaurant's location. For example, downtown restaurants are colored green. The user that generated this map has a strong preference for Southside restaurants, and so the southern regions are colored yellow.

Read more here

Project 3: Project 3: Ants Vs. SomeBees

alt text

In this project, a tower defense game called Ants Vs. SomeBees. As the ant queen, the colony is populated with the bravest ants. The ants must protect their queen from the evil bees that invade the territory. Irritate the bees enough by throwing leaves at them, and they will be vanquished. Fail to pester the airborne intruders adequately, and the queen will succumb to the bees' wrath. This game is inspired by PopCap Games' Plants Vs. Zombies.

This project combines functional and object-oriented programming paradigms. The project also involves understanding, extending, and testing a large program.

Read more here

Project 4: Scheme Interpreter

alt text

In this project, you will develop an interpreter for a subset of the Scheme language. As you proceed, think about the issues that arise in the design of a programming language; many quirks of languages are byproducts of implementation decisions in interpreters and compilers. The subset of the language used in this project is described in the functional programming section of Composing Programs. Since we only include a subset of the language, your interpreter will not exactly match the behavior of other interpreters.

You will also implement some small programs in Scheme. Scheme is a simple but powerful functional language. You should find that much of what you have learned about Python transfers cleanly to Scheme as well as to other programming languages.

For this project, we have released an alternate version of the project which provides much less guidance in the project specification as well as a minimal amount of starter code. It is appropriate for students with a substantial amount of prior coding experience who want a rather challenging project. It will be worth no more points than the standard version, but can be completed instead of the standard version for full credit.

Later, there will also be an open-ended graphics contest (released separately) that challenges you to produce recursive images in only a few lines of Scheme. As an example, the picture above abstractly depicts all the ways of making change for $0.50 using U.S. currency. All flowers appear at the end of a branch with length 50. Small angles in a branch indicate an additional coin, while large angles indicate a new currency denomination. In the contest, you too will have the chance to unleash your inner recursive artist.

Read more here

About

Structure and Interpretation of Computer Programs

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published