On this page, I release sources for courses I have attended. Here you may find all the sources for the courses 49104 (E98), 49142 (F00), 49280/49281 (E00), 49423 (E99), 50250 (E99), 50275 (F01) and 53113 (F00). You are free to download and study the solutions for the assigments, but please don't try to hand them in - it serves no purpose for anybody and is a pure waste of time - read them, see if you understand them and if you have any questions, mail me.
Use these sources at your own risk. I can in no way be held responsible for any damage caused by the compilation and/or execution of software based on the sources. If the sources fails to work you, are welcome to send me an email describing the error, but I am in no way responsible for correcting or updating the sources. There are no warranties associated with these files, if it does not work, though luck - not my problem.
Beyond this, feel free to use and distribute the sources (if not stated otherwise in the sources or attached information).
If you choose to use some of the source in your own application, please remember to give credit to the original author.
That oughta set it straight...now for the filez...
Please see http://meesoft.cjb.net/ for applications, only sources are available here.
A study planner written in Java, source code is freely available. Originally, it was designed to figure out how to make dependencies work through the schedule used at DTU, but since the entire schedule was changed, this program is now useless, but it still demonstrates the idea.
A collection of source-code in Java for the course 49104. Use this code freely as inspiration for your own solutions. Read the code, try to understand it, and use the ideas (please note, comments and code in danish!). I have put the funniest up here on my page...
Contains:
- HalloVerden
- Tabel - Prints a table.
- Skakbraet - prints a chess-table.
- Loen - Contains simple pay-calculator.
- Moenster - prints triangle patterns on screen.
- Pi - Contains calculation of π.
- Basenum - Conversion between different base number (base-2 to base-36).
- RandomMaths - Ask the user random algebraic questions.
- Pythagoras - Calculate pythagorian triples.
- FontFarveTest - A simple applet.
- GrafikTest - A more advanced applet.
- RegneTest - Ask the user random algebraic questions with an applet.
- FarveTest - Let the user compare colors.
- Encryptor - Encrypt text using a XOR encryptor.
- International - Convert danish national characters to international.
- CompareDK - Small applet to compare danish strings.
- Reverse - Test if a string is a palindrome (reversed equals original).
- Statistik - Calculate a number of random numbers and evaluate result.
- Sortering - Calculate a number of random numbers and sort the result.
- Roedder - Calculate roots in a 2. degree equation.
- MenuTest - A Java-application with a menu.
- Rekursion - Demonstration of recursion.
- Hieraki - Demonstration of object-oriented programming.
The source is most likely not perfect, but can be compiled.
49142 - Algorithms and Datastructures
Some of the problems stated in this course. The package contains: InsertionSort, QuickSort HashTable, BinaryTree, Heaps.
49161 - Functional Programming
Solutions to many of the problems stated in this course plus a number of additional solutions to earlier exams.
49280/49281 - Computer Organization and -Design
The purpose of the courses is to design (49280) and implement (49281) a MiniMIPS RISC processor based on a 5-stage pipeline in the VHDL (VHSIC (Very High Speed Integrated Circuit) Hardware Description Language), which is a special language designed to model digital systems. The archive contains the versions:
- minimips_asm\ - great MiniMIPS assembler.
- minimips_progs\ - great MiniMIPS assembly programs for testing the design.
- minimips_spec\ - the specification model, which executes instructions in a single cycle.
- minimips_pipeline\ - the pipelined version using two seperate memories.
- minimips_mcycle\ - based on the above, both a pipeline and a multi-cycle version (with experimental cache)
- minimips_mult\ - rewritten v.2 for implementation, includes shift'n'add multiplier and new bus interface.
- SpeedyGonzales\ - rewritten v.2 for implementation (small/fast) and bus interface.
The SpeedyGonzales version runs 13.88MHz in an EPF10K20-204-4, which was enough to win the price (we got wiped 15 min. after deadline, but by moving some logic speed could be increased further).
49423 - Expression Workshop 2000
For the people interested in the source-code for the course 49423, the sources for our implementation of the Expression Workshop 2000 may be downloaded here. The assignment was to create a simple command-line symbolic manipulation program for simple operations on expressions.
Here you may download our version of the programs required for the E99 version of 50250. These include an assembler program capable of reading numbers from a file, sorting the numbers and writing them back to another file. This serves to illustrate the requirements for interacting with an operating system like DOS on an extremely low level.
Another application, the RCL-SIM, serves to introduce the programmers to C. Our version features entry-fields and a bit of advanced editing functions not usually seen in simple tasks. The forms.h includes a complete set of editing features.
Requires a Borland C compiler due to the use of graphics.
50275 - Assembler and C for OS9 on Motorola 68x00
In the course 50275, you where working with the OS9 real-time operating system starting out doing a lot of training exercises to learn how to work with OS9 - these exercise solutions are located in ./ov1/, ./ov2/ ./ov3/ and ./ov4/. Our construction project was the serial ring network based on a ring of one-way serial links between two machines located in ./network/. This required quite a bit of designing and coding and we never got to implement layer3 and only parts of layer2 got implemented (understanding this requires danish skills and reading SRS.txt in ./network/). Nonetheless, all comments are written in english, so some of it should be understandable.
Requires OS9 and Ultra-C compiler due to the use OS9 features in the programs.
53113 - Assembler and C for the 80C537
This is our project for the course "Mikrodatamater i El-forsyningen" - quite a cool course for programmers, I strongly recommend it. The purpose of the course is to program a so called distance relay - an intelligent "fuse", that cuts off power if the impedance in the system gets too low (our version only reacts on resistance below a given limit). To do this, you need to sample the current and voltage on the transmission line with intervals below 5 ms (we made 3.5ms) and from 4 recorded samples an inductance and resistance is to be determined. Unlike any other version, our version features simplified floating-point arithmetics on the simple microcontroller (the Siemens 80C537).
On Keil's homepage you may download a fully workable evaluation version of the MicroVision Integrated Development Enviroment.
Matrix and Vector algebra in C++
For those lazy ones out there, that does not care to write their own code, I included this source for you to do matrices, vectors and fractions in C++. The sources has recently been updated to comply with the ISO C++ standard and can be compiled using GCC 2.95. The Fraction class represents a single fraction and has all the common operators overloaded. The Vector3D class uses double's as its fields and supports common operations on three-dimensional vectors. The Matrix template class currently supports adding, subtracting and transposition. A non-functional version of multiplication is included, but for some unknown reason, the compilers refuse to compile the method, so it is included as a comment.