What Can I Do with the Things I Learn in This Class?
Computers are great at some things humans find difficult:
- Repeating the same actions many, many times (maybe thousands or millions of times). Humans get bored and careless pretty quickly, but computers don't, and they can generally do things much faster that we can.
- Keeping a record of exactly what you did, and allowing you to make changes and easily re-do similar jobs. Once you've written a computer program that predicts a planet's future position for example, you can make corrections without rewriting the whole program.
What the Course Will be Like:
- This is a one-credit course, so we'll have one meeting per week. We'll meet in a computer lab, and the meetings will be in a lecture/workshop format. During much of the meeting you'll be working with a partner and doing short exercises on the computers.
- Because we only have one meeting per week, I'll send out some background information about what we'll be doing, in advance of each meeting.
- Most weeks, there will be one short graded homework assignment (usually this will require you to write a computer program like the ones you've been practicing in class).
- There will occasionally be ungraded quizzes to make sure we're on track.
- Instead of a final exam, there will be a final project that will be like a longer version of the homework assignments.
- Your final grade will be based on homework and the final project.
The C Programming Language
Gnuplot
About the Tools We'll Use:
All of the tools we'll use in this class are free! You can use them even after you leave UVa, and you can pass them along to other people. (Spread your knowledge!)The programming language you'll learn is called C, and a smattering of C++. The C language and its cousins like C++ are the most popular programming languages in use today. You'd be hard-pressed to find a program on your computer that isn't written in one of these languages. Much of the software written for scientific research is also written in these languages.
Even if you move on to other languages, learning C will give you a firm foundation in the concepts shared by all programming languages. In fact, many other languages have adopted C-like syntax, and will be comprehensible to C programmers.
The particular version of C you'll be using is GNU C, which is available for free for Windows, Mac OS X and Linux.
For making graphs, we'll learn to use Gnuplot. Gnuplot is a versatile plotting program that's easy to use and can create publication-quality graphs. It's capable of making 2- and 3-dimensional graphs, and it can even find best-fit parameters to match a mathematical model to a set of data.