Assembly Language: Class Project 2
CS 301 Lecture, Dr. Lawlor
From the syllabus:
sizable class project--one big program written in or relating to
Each project is 10% of your course grade, so it should have some pretty good stuff! Conversely, the total end-to-end time for the project is under 1 month, so keep it manageable. Here's the schedule:
November 2009 The project topic
(see ideas below) should be easy to describe in two sentences.
You'll say those sentences in class, partly so that I hear them, and
partly so that other people in class that are interested in the same
thing have a chance to join your group. Group work is optional,
but not required for this project.
Su Mo Tu We Th Fr Sa
22 23 24 25 26 27 28 <- Describe your topic in-class (& thanksgiving break)
Su Mo Tu We Th Fr Sa
1 2 3 4 5 <- Rough draft code due
6 7 8 9 10 11 12
13 14 15 16 17 18 19 <- Final draft code due (& final exam)
The rough draft code should work, but not necessarily do everything you want, or be polished or very high performance.
The final code should be fully debugged, tuned, commented, and include a short README explaining what
it is, how fast it runs, and what you did to make it faster.
Project Topic Ideas
Or, pick your own! This half of the semester
has mostly focused on performance: SSE, tuning and benchmarking, and
GPU code. Thus, you'll need to measure and document the
performance of your code somehow. Your code can run totally
inside NetRun, or be a standalone
executable, but it should run somewhere.
- Extend your project 1 project: make it faster, more interesting, more parameterizable, or run on a different machine.
- Write or modify a program to do something high-performance in assembly language.
- Do something interesting with SSE. Almost any code where
different floats take a different number of iterations is very
interesting under SSE.
- Do something interesting on the graphics card: render a new image, or even use my gpgpu library to do something non-image related.
- Tune and benchmark any existing program. No assembly code is needed!