Semantic search

Jump to: navigation, search


Comma
The Axiom computer algebra system provides a compiler for the SPAD programming language which is particularly well suited for developing mathematical algorithms. Aldor is a non-free descendant of the SPAD language. The Comma project draws from the past experience of these systems to provide a new implementation and language definition.
Ct.js
A 2D game engine that is easy to use and student focused
Dive Into Python 3
Dive Into Python 3 is the successor to Mark Pilgrim's Dive Into Python, a popular book for learning programming with Python 2.x. It has been adapted to Python 3.x, and contains about 20% revised and 80% new material.
Dr-geo Heckert gnu.tiny.png
Dr. Geo, design & manipulate interactive geometric sketches with constraints. Dr. Geo aim is to be an open, easy to study, modify and extend interactive geometry software. It is distributed with its source code you can modify while using it. Ten years old kids use Dr. Geo to explore Euclidean geometric sketch, agile kids extend and program it with its embedded dynamic Smalltalk language and user interface.
EDUBlocks
A child and school centric block based programming language.
Eloquent JavaScript
Eloquent JavaScript is a book providing an introduction to the JavaScript programming language and programming in general.
Fennel
Fennel is a programming language that brings together the simplicity, speed, and reach of Lua with the flexibility of a lisp syntax and macro system. Anywhere you can run Lua code, you can run Fennel code.
Firestr
Fire★ is a a simple platform for decentralized communication and computation. Provides a simple application platform for developing p2p applications and share these applications with others in a chat like user interface. You don't send a message to someone, you send an program, which can have rich content. All programs are wired up together automatically providing distributed communication, either through text, images, or games. The source code to all applications is available immediately to instantly clone and modify.
Free Oberon
Free Oberon is a cross-platform IDE for development in Oberon programming language made in the classical FreePascal-like pseudo-graphic style. Compilation of user-written programs is performed using the Vishap Oberon Compiler and then GCC. The compiled console programs can be run in the built-in terminal emulator.
GNU SETL
GNU SETL is a modest extension and implementation of SETL, the World's Most Wonderful Programming Language.
Gnu-c-manual Heckert gnu.tiny.png
The GNU C Reference Manual is strictly a reference, not a tutorial. Its aim is to cover every linguistic construct in GNU C, but not the library functions which are documented in The GNU C Library Reference Manual.
Gofoss.net
gofoss.net is a beginners guide to free software, privacy, data ownership and durable tech. Learn how to: safely browse the Internet; keep your conversations private; protect your data; unlock your computer's full potential; stay mobile and free; own your cloud; avoid filter bubbles, surveillance & censorship.
Guido von Robot
Guido van Robot (GvR) is a minimalistic programming language that provides just enough syntax to help students learn the concepts of sequencing, conditional branching, looping, and procedural abstraction. Its biggest strength is that it permits this learning in an environment that combines the thrill of problem-solving with instant visual feedback.
Harvest
Harvest is a web application that provides a browsable directory of easy-to-start opportunities to contribute to a project such as translation, testing, or development. It is used by Ubuntu.
Haxe
Haxe is an free software high-level strictly-typed programming language with a fast optimizing cross-compiler. Haxe can build cross-platform applications targeting JavaScript, C++, C#, Java, JVM, Python, Lua, PHP, Flash, and allows access to each platform's native capabilities. Haxe has its own VMs (HashLink and NekoVM) but can also run in interpreted mode. Code written in Haxe can be compiled to any target Haxe supports.
Jackrabbit Relay
Jackrabbit Relay is a framework to manage trading signal alerts in JSON format from TradingView or similiar software to place trades on an exchange or broker.
Jtw Heckert gnu.tiny.png
Java Training wheels (J.T.W.) provides a less steep learning curve for learning to program in Java. The system is powered by a preprocessor that adds features to Java such as a superfor macro and a file inclusion system much like the C language's preprocessor.
KTurtle
A tool to teach students how to program
Khan exercises
Khan Academy has created a generic framework for building exercises. This framework, together with the exercises themselves, can be used completely independently of the Khan Academy application. The framework exists in two components:
  • An HTML markup for specifying exercises.
  • A jQuery plugin for generating a usable, interactive, exercise from the HTML markup.

Using the Framework Locally

You need to serve the files from some sort of a server. You can't just open the files directly in a browser. For example:

   cd khan-exercises
   python -m SimpleHTTPServer

or

   cd khan-exercises
   python3 -m http.server

Now if you open your browser to `http://localhost:8000` (or `http://127.0.0.1:8000/`) you should see the contents of the `khan-exercises` directory. Navigate to the `exercises` subfolder, and an HTML file under there to see an exercise.


Writing Exercises

The process for writing exercises is rather well documented. More information about this process can be found in the Khan Exercises wiki. Specifically:

KidsRuby
Have fun and make games, or hack your homework using Ruby! Just tell your parents or teachers you're learning Ruby programming... ;)
Learning Perl the Hard Way
a book for people who already know how to program in another language, but don't know Perl.
Libcsdbg
Libcsdbg is a C++ exception stack tracer. When an exception is thrown, caught and handled, libcsdbg offers the tools to create and process the exception stack trace, the path the exception has propagated up the call stack, unwinding it, up to the section were it was handled. The traces are detailed with demangled function signatures and additional addr2line info (the source code file and line that each function was called). Libcsdbg will perform flawlessly with single and multi-threaded (or multi-process) programs, with any dynamically linked shared object (DSO - Dynamic Shared Object) and with any statically linked library. Additionally, libcsdbg helps the developer/tester create sophisticated stack traces of any thread, at any given moment during a process execution, as a snapshot of the runtime call graph. This is very useful in cases of fatal errors, reception of terminating signals or process abortion/termination (such as segmentation faults). libcsdbg can use all the well-known objective code file formats (a.out, elf, coff, ecoff, etc.) and can easily be used as the base for your own instrumentation code. libcsdbg transparently loads the symbol tables of the chosen dynamic libraries and of the executable, demangles function symbols to complete signatures, and binds function names to runtime addresses (even for the DSO symbols).
Librsb
librsb is a library for sparse matrix computations featuring the Recursive Sparse Blocks (RSB) matrix format. This format allows cache efficient and multi-threaded (that is, shared memory parallel) operations on large sparse matrices. The most common operations necessary to iterative solvers are available, e.g.: matrix-vector multiplication, triangular solution, rows/columns scaling, diagonal extraction / setting, blocks extraction, norm computation, formats conversion. The RSB format is especially well suited for symmetric and transposed multiplication variants. On these variants, librsb has been found to be faster than Intel MKL's implementation for CSR. Most numerical kernels code is auto generated, and the supported numerical types can be chosen by the user at build time. librsb implements the Sparse BLAS standard, as specified in the BLAS Forum documents.
Little Wizard
Little Wizard is a development environment for children. It is intended to be used by primary school children to learn about the main elements of real computer languages. Using only the mouse, children can explore programming concepts such as variables, expressions, loops, conditions, and logical blocks. Every element of the language is represented by an intuitive icon, making it easy to learn.
Mdk Heckert gnu.tiny.png
MDK stands for MIX Development Kit, and provides tools for developing and executing, in a MIX virtual machine, MIXAL programs. The MIX is Donald Knuth's mythical computer, described in the first volume of The Art of Computer Programming, which is programmed using MIXAL, the MIX assembly language. MDK includes a MIXAL assembler (mixasm) and a MIX virtual machine (mixvm) with a command line interface. In addition, a GTK+ GUI to mixvm, called gmixvm, and a Guile interpreter with an embedded MIX virtual machine called mixguile, are provided. It also contains an Emacs major mode for MIXAL programming and an elisp program allowing to run the MIX virtual machine in one buffer while viewing the MIXAL source code in another.
Musicblocks
Music Blocks is designed to run in a browser. It is derived from Turtle Blocks JS which can be found at https://github.com/sugarlabs/turtleblocksjs. You can run the software locally from the index.html file, from the github repo, or by setting up a local server. If you want to run Music Blocks offline, download this repo and point your browser to the index.html file found in the musicblocks directory on your local file system. Otherwise point your browser to https://musicblocks.sugarlabs.org NOTE: The most current version of the code may be followed at https://github.com/sugarlabs/musicblocks See Using Music Blocks and Music Blocks Guide
OpenCircuits
OpenCircuits allows you to plan and simulate digital circuits in an easy-to-understand interface. It can be used for educational, personal or commercial purposes due to its LGPL licensing.
OpenHatch
OpenHatch provides a way for free software projects to offer mentorship to new developers. Projects are able to register "bitesize" bugs and offer guidance. New developers are able to browse bugs and go on "training missions".
Oxref
Oxref generates a cross reference listing of symbols defined in non-stripped object files and/or libraries. A cross reference listing shows the functions using certain symbols (functions, data). This is useful information during program develop- ment and debugging phases. E.g., assuming that the signature; the pre-conditions or the post-conditions of a function must be changed it is important to know from what function(s) the function-to-modify is called to verify that the changes to the modified function do not break its calling functions. The generated cross reference listing starts with a header showing information about the program, a time stamp and the arguments passed to oxref. E.g., To create the program from its sources, either descend into the oxref directory, or unpack a created archive, cd into its top-level directory and follow the instructions provided in the INSTALL file found there. Alternatively, binary ready-to-install versions of oxref are available in verious GNU/Linux distributions, in particular Debian. See, e.g., https://packages.debian.org/search?keywords=oxref&searchon=names&suite=all&section=all Github's web-pages for oxref are here: https://fbb-git.gitlab.io/oxref/
PicoForge
The aim of the PicoForge project (previously known as PicoLibre) is to provide a set of high level libre software applications that are well integrated in order to provide a collaborative "forge". It makes it easy to deploy a collaborative work platform for developing software or hosting other collaborative activities. Having started (as PicoLibre) in an educational context, PicoForge is now a quite generic platform, comparable (but sometimes less advanced) to other *-Forge software platforms. It groups several high-level applications like phpGroupware, Sympa, TWiki, Subversion, and CVS.
Portable Ada Sound Package
This is an Ada utility that can play WAV files on Windows, OSX, and GNU/Linux, using Ada tasking and OpenAL libraries. It includes a partial Ada binding to OpenAL. It provides sound-playing capabilities for Ada apps to:
  • asynchronously start and stop music/sound loops,
  • initiate transient sounds,
  • allow unlimited sound concurrency.
Examples for each O.S. are included.
  • Suitable for any Ada application that requires background or transient sound effects; eg. games, simulations.
  • There are no software dependencies; this package is self-contained.
Project-Mindfulness
Project Mindfulness is an initiative to improve societal understanding of mindfulness by way of data science and computer programming. This project is 100% free (as in freedom) and open source. Feel free to contribute! Mindfulness: observing (physical or mental, positive or negative) followed by describing (internally or externally). A person skilled in mindfulness will then fully bring the mind back to baseline through an act of awareness while simultaneously accepting the observation without judgment. Click on the supplied URL and check out the README.md!
Qtcreator
Qt Creator is a cross-platform integrated development environment (IDE) designed to make development with the Qt application framework even faster and easier. It includes:
  • An advanced C++ code editor
  • Integrated GUI layout and forms designer
  • Project and build management tools
  • Integrated, context-sensitive help system
  • Visual debugger
  • Rapid code navigation tools
  • Supports multiple platforms
Rstudio
An integrated development environment (IDE) for R. R is a programming language and software environment. RStudioIt includes a console, syntax-highlighting editor that supports direct code execution, tools for plotting, history, debugging and workspace management.
SNAP!
(formerly BYOB) is a visual, drag-and-drop programming language. It is an extended reimplementation of Scratch (a project of the Lifelong Kindergarten Group at the MIT Media Lab) that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, and continuations. These added capabilities make it suitable for a serious introduction to computer science for high school or college students. SNAP! runs in your browser. It is implemented using Javascript, which is designed to limit the ability of browser-based software to affect your computer, so it's safe to run even other people's projects, even if you don't trust our competence or good intentions. SNAP! is presented by the University of California at Berkeley. It was developed by Jens Mönig at MioSoft Corporation, with design input and documentation by Brian Harvey at Berkeley, and contributions by students at Berkeley and elsewhere.
Sonar Sedcat Plugin
Sedcat is a plugin that provides metrics about quality of unit testing of a software project. These metrics are the quality of unit tests as a percentage and recommended actions to improve that quality in order of priority. These metrics are calculated from expert systems created with the tool xfuzzy at software project level.
Sqltutor Heckert gnu.tiny.png
Interactive web based tool for learning SQL by examples. GNU Sqltutor consists of two modules: a database of questions and answers and a simple CGI interface for running tests. Questions are chosen at random for each session, submitted queries are checked against correct answers stored in the database. Query results differing only in column permutations are evaluated as correct. For each session queries and answers are logged and the final score is evaluated when the test is finished. GNU Sqltutor is written in C++ with lipqxx library to connect to PostgreSQL database.
Squeakland
An educational tool for teaching children powerful ideas in compelling ways
THERMITS
It is a program for displaying thermomagnetic data curves, added with its 1st and 2nd derivative. These addition is for estimating the Curie temperature, which is essential in defining rock mineral type. The estimation is done by finding the maximum curvature of the thermomagnetic data, which is the maximum value of the 2nd derivative curve.
Think Python
The focus is on the programming process, with special emphasis on debugging. The book includes a wide range of exercises, from short examples to substantial projects, so that students have ample opportunity to practice each new concept.
TinyCNC-II , Heckert gnu.tiny.png
The TinyCNC-II four axis controller was designed as a multi-purpose lathe and mill accessory for the hobby user. The TinyCNC-II was designed for use with a 200 step per revolution (1.8 degree per step) unipolar stepper motor for use with 0.050, 0.100 and 0.200 inches per axle rotation Imperial mills and lathes and 1mm per axle rotation Metric mills and lathes. The TinyCNC-II unit helps with the monotonous repetitive operations found in using a lathe or milling machine with accuracies of 0.001 inches to a distance of 99.999 inches for any single move for Imperial units and 0.01 mm to a distance of 999.99 mm for any single move for Metric units. The X, Y and Z axis’s are user selectable as one of the three types of Imperial or Metric selections. The fourth Axis (A) is dedicated as a degrees axis with accuracies of 0.01 degrees for up to 999.99 degrees of rotation for any single move. The TinyCNC-II provides the user with several useful control types. These are Simple for ease of use, Advanced for complex moves, Remote for control from another unit and Hole modes for creation of hole patterns.
Turtle JS
The Javascript version of Turtle Blocks is designed to run in a browser. Turtle Blocks is an activity with a Logo-inspired graphical "turtle" that draws colorful art based on snap-together visual programming elements. Its "low floor" provides an easy entry point for beginners. It also has "high ceiling" programming, graphics, mathematics, and Computer Science features which will challenge the more adventurous student.
Umbrello
Umbrello UML Modeller is a Unified Modelling Language diagram editor for KDE. It can create diagrams of software and other systems in the industry-standard UML format, and can also generate code from UML diagrams in a variety of programming languages. This package is part of the KDE Software Development Kit module.
Umple
Umple technology for adding UML constructs to programming languages, or representing models textually; includes a code generator, Eclipse plugins, and the UmpleOnline web app
VisualOS
VisualOS is an educational visual simulator of an operating system for GNOME/GTK+. It represents a working operating system visually, allowing the user to select the different algorithms to use for each of the simulated subsystems: CPU, Memory and disk I/O.
Waterbear
Waterbear is a toolkit for making programming more accessible and fun.
ZerSol
The purpose of the ZerSol C++ library is the finding all the zeros of an analytic function that are contained in a given rectangular region of a complex plane. It is based on the argument principle and recursive subdivisions of the region coupled with the Newton's iterations at the final stage of the search. The ZerSol library assumes that evaluation of the function is expensive and tries to minimize the number of the function calls by using efficient algorithms and special data structures. Although easy to use, the library provides an extensive set of interface functions for the search customization and detailed diagnostic messages in case of failures. It is supplied with a set of test cases and bindings for C and Fortran users. The library is thoroughly tested on many hard problems and demonstrates a good performance.


Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.