This course is to familiarise you with some of the little tools and concepts that help us on our way, automate our tasks, make us look more like programmers. Give you a broader idea of what's out there. What is a script? A batch job? A profiler? Debugger?

And while we will be working on Linux boxes I want you to understand that many of these useful tools have counterparts on other operating systems. They're computers. You need a decent editor (no, MS Notepad and pico/nano don't count), a context in which to work/run your programs (a shell, and a compiler or interpreter), and some basic tools (for searching, sorting, organising, etc.).

There are many little skills and concepts you'll be introduced to this term; we're not looking for you to memorise them all, but to know that they exist, to be aware of the power at your disposal, and to be able to find the right tool, or instructions on the use of the tool you've chosen, to complete your task.

Almost all of the material in this course is stuff we've picked up over years of school, programming, teaching, doing research, cursing, etc.

This is an independent-study course, and an on-line course. Each of those facts, separately, means that the burden of learning lies more heavily upon your shoulders; taken together, even more so.

Happily, this is a class that invites exploration on your part. "What does this do?" "How do I get this to..." "How does this..." "What happens if..." are along the lines of questions I'm talking about. We're not looking for you to provide various pieces of Godels theorem. We're asking you to tinker, to explore, and, dare I say, have fun.

We'll provide lectures, of course, though they will often be deficient in "details". Where we discuss broader topics (e.g., what a good interface is) we'll give you what you need. But we will not exhaustively supply all of the options for all of the Unix utilities. We'll talk about the major differences between Java and C++, e.g., and might even point you at a library routine/class of interest, but we are not taking you through a Java course.

We will provide weekly labs, to help guide your exploration.

We have started a collection of sample programs and on-line resources on the Samples and Resources pages, respectively. If you see a big hole, or you've found something that would look really good up there, let us know.

You will be more dependent upon each other. I encourage you to use the discussion board on Bb Vista, answer each others' questions. There are also chat rooms you can get together in. Look to each other for help, where we're at in the course, etc. Programming assignments and quizzes must be done alone, as always, but general knowledge sorta questions should be posted there. Email me only for administrative-type stuff.


Currently, the Lecture frame (page) contains a list of topics, by week. The link there will take you to an HTML outline of topics for discussion. This page will contain links to pertinent examples, and often (though not always) lecture slides, as well as indicating the assigned reading from the text/elsewhere.


Okay, folks, here's the plan. I'm thinkin' of a weekly meeting, online, via Bb Vista. Probably no more than an hour, usually, maybe 2, if there's a good bit of material.

Generally, you'll have the lab from the previous week done and submitted before the meeting (remember, labs are part of your grade), I'll look at your stuff. I'm looking for honest effort here, rather than total correctness. You can ask me questions about the previous week. Then I'll introduce the new material for the week.

So, e.g., week 1, lecture 1. Read them this week (week 1). Use the discussion board for questions. Get the lab done before your meeting next week, week 2 (we'll figure meetings out during week 1). We'll answer any questions, and introduce material for lecture 2.


We will be using various tools in Bb Vista. You may also access Vista through Drexel One. But, Vista's class list shows icons for postings, assignments, etc.

Bb Vista provides a bulletin board for asynchronous discussion (and you're expected to make good use of this), chatrooms for synchronous discussion, a calendar, a mechanism for submitting assignments electronically, a group area, where you may share files w/your group, and a whiteboard, maybe. It wasn't working too well last time I looked at it, though, so we may have to find something else.

I encourage you to post appropriate questions (general knowledge, group assignments, etc.) to the discussion board. If a fellow student can answer, great. If not, then we'll get to it. But everybody will have the benefit of the discussion.

Disclaimer: Bloackboard Vista is not administered by the Computer Science department. I will help and answer questions as best as I can, but IRT is the holder of the keys.