Coder Social home page Coder Social logo

koans's Introduction

Next Level Koans build status Coverage Status

Next Level Koans is an HPI project to improve teaching of Smalltalk and Squeak to students in the lecture series Software Architecture. Koans consist of testsuites, introducing idioms and basic concepts through coding exercises within a graphical user interface.

How to Install

The Koans are compatible with either Squeak 5.1 or Squeak trunk (check Travis for more information). The easiest way to install the Koans is by getting Metacello and then executing the following snippet:

Metacello new
  baseline: 'Koans';
  repository: 'github://hpi-swa-teaching/Koans/src';
  load.

How to Start

  1. In the menu bar click on Apps>>Koans.

    Picture of the Apps Menu

  2. This should open the KoanBrowser. The KoanBrowser shows all the available chapters on the left, a description of the selected chapter in the top richt and the list of Koans inside the selected chapter on the bottom right.
    Note: The chapters are sorted by priority / the order they are meant to be solved.

    Picture of the Browser

  3. To start a specific Koan, first select its chapter on the left and then click the corresponding entry in the list on the right. This opens the KoanEditor. The KoanEditor consists of the statusbar at the top, the code panel in the center and a row of buttons at the bottom.

    Picture of the Editor

Editing Koans

  • You can navigate through the chapter of the currently opened Koan via the 'Previous' and 'Next' buttons. To change the chapter you have to return to the KoanBrowser via the 'Overview'-button.

  • The status of the opened Koan is represented by the status bar. It changes color depending on wheter the Koan is solved (green), failing (yellow) or erroring (red). In case the Koan is not successfully run, the bar also shows additional information about what went wrong.

    Picture of a green status bar Picture of a yellow status bar Picture of a red status bar

  • By default the Koan is tested (and the status bar updated) whenever changes to the opened Koan (or the Koan's required classes) are saved. This can be turned off (globally) via the editor's window menu.

    Picture of a window menu

  • If the test on save functionality has been turned off, the only way to test the opened Koan is through the 'Test'-button. It also saves the currently made changes.

  • The opened Koan can be returned to its original state through the 'Reset Koan'-button.

  • The 'Debug'-button opens a debugger on an execution context of the currently opened Koan.

  • Some Koans require the user to edit or look at specific classes. These classes can be easily accessed through a browser opened by the 'Browse Project'-button.

    Picture of a project browser

Contributors

Over the years, the following people have contributed to the Koans project:

Robin Schreiber, Patrick Rein, Eric Seckler, Daniel Stolpe, Tobias Pape, Jakob Reschke, Willi Müller, Daniel Kurzynski, Wenzel Pünter, Stephan Lutz, J-L-O, Jeilef, Fabio Niephaus, Robert Hirschfeld, Marcel Taeumel

History

You can find previous versions of the Koans project on the previous documentation page.

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.