Programmieren lernt man wie eine Sprache, denn letztendlich sind Programmiersprachen nichts anderes als die Sprache der Computer. Das das auch spielerisch geht, zeigen verschiedene Angebote für Spiele zum Programmieren lernen. https://onlineuebung.de/computer-informatik/spiele-zum-programmieren-lernen/
3dpl GE the 3D Programming Language Gaming Environment, is mainly a learning tool for novice programmers and children. Aiming at reintroducing the concept of coding to computers the way we used to have BASIC on older systems, but this is 3D, it also features a Modeling tool which is similar to Minecraft, the models can then be programmed to do anything you want. This is a full featured language so it can be used for other applications such as CAD and just for playing games made in 3dpl. It is also real-time interpreted.
Learn how to program shell scripts using bash, the command interpreter from the GNU project. Start from the basics and become and advanced programmer.
A combination of Portal and Sokoban, AdaGate is a great example of OpenGL programming using the Ada language. While exploring a remote south-seas island you make a startling historical discovery. But before you can report your findings, an operational stargate transports you into a curious sequence of dungeons. Your escape will require the logical rearrangement of Zero Point Modules (ZPMs), that can roll in only two directions. Escape each level and find your way back to a beautiful lake on the surface. Uses fully modern OpenGL methods in Ada using textures, shaders and uniforms that achieves version 3.3 core profile contexts in a way that is sufficiently mainstream that it easily compiles and runs on Windows, GNU/Linux and Mac OS-X systems. This project serves as a testbed for learning the complexities of modern OpenGL and GLSL.
asciinema player is a terminal session player written in ClojureScript. Contrary to other "video" players asciinema player doesn't play heavy-weight video files (.mp4, .webm etc) but instead it plays light-weight terminal session files called asciicasts (simple .json files). Asciicast is a capture of terminal's raw output and thus the player comes with its own terminal emulator based on Paul Williams' parser for ANSI-compatible video terminals. It covers only the display part of the emulation as this is what the player is about (input is handled by your terminal+shell at the time of recording anyway) and its handling of escape sequences is fully compatible with most modern terminal emulators like xterm, Gnome Terminal, iTerm, mosh etc. You can see the player in action on asciinema.org. You can also host the player and the recordings yourself.
BASM is a user friendly and easy to use assembler for The Basic Computer, capable of creating the object, list and hex file and giving detailed error reports. It's more of academic use for students who wish to understand how does The Basic Computer actually work.
Blockly is a web-based, graphical programming editor. Users can drag blocks together to build an application. No typing required.
C is the most commonly used programming language for writing operating systems. Unix was the first operating system written in C. Later Microsoft Windows, Mac OS X, and GNU/Linux were all written in C. Not only is C the language of operating systems, it is the precursor and inspiration for almost all of the most popular high-level languages available today. In fact, Perl, PHP, and Python are all written in C.
The C++ Annotations offer an extensive tutorial about the C++ programming language. It can be used as a textbook for C/C++ programming courses.
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.
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, 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.
Eloquent JavaScript is a book providing an introduction to the JavaScript programming language and programming in general.
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 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.
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.
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 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.
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.
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.
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.
The process for writing exercises is rather well documented. More information about this process can be found in the Khan Exercises wiki. Specifically:
Have fun and make games, or hack your homework using Ruby! Just tell your parents or teachers you're learning Ruby programming... ;)
a book for people who already know how to program in another language, but don't know Perl.
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 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 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 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.
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 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 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 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 Linux distributions, in particular Debian. See, e.g., https://packages.debian.org/search?keywords=oxref&searchon=names&suite=all§ion=all Github's web-pages for oxref are here: https://fbb-git.gitlab.io/oxref/
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.
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!
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
(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.
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.
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.
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.
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.
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 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 technology for adding UML constructs to programming languages, or representing models textually; includes a code generator, Eclipse plugins, and the UmpleOnline web app
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.
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.