News and announcements

26 April 00:
Here's a link to the applet page from our textbook's author and one to the corresponding source code.

14 April 00:
Lab 8 due date extended to Mon 17 April 2000!

27 March 00:
Reminder: Exam on Friday 31 March!
Solutions to the written homeworks (lab 3 and lab 5) are now on-line here and here.

10 March 00: As per announcements in class today:

  • there will be no class on the Friday before Spring Break (the 17th) to allow for my surgery;
  • Lab 7 will be due Fri 17 March to allow for clearing out excess demos;
  • there will be an exam after break, on the 31st of March, and no new labs until roughly then;
  • we have finished up on the PC-231 as a lecture topic and will concentrate on Java for the rest of semester (today's lecture introduced loops, as described in Chapter 7 of the textbook).
3 March 00: Classes were cancelled due to my illness on Wednesday 1 March. Consequently, I have extended the due date for Lab 6 until Friday. I have also posted a Lab 7 due on the following Friday.

21 Feb 00: In honor of President's Day I have extended the due date for Lab 5 until Wednesday 23 February. Here's a little cartoon about programmers and managers to amuse you while you wait for Lab 6 to be posted.

18 Feb 00: Added a graphic about StickFigure measurements to the Miscellaneous Figures section; also added a link to some sample PC-231 code.

16 Feb 00: New lecture (hardware), plus PC-231 Computer Supplement and Miscellaneous Figures links added (also, some fancier web graphics).

14 Feb 00: New link added to the StickFigure code examples (see below); also, new lab (#5) up-loaded.

Quick index

On-line lecture notes

Lecture notes are available here for review; I will also a post review sheet before each exam.

  • Computers and Information

    This the first lecture; in it, I tried to define some basic terms, like computer, information, etc., which in turn led to some basic concerning the nature of language and symbolic representation. This material is a bit on the philosophical side and may seem "fluffy" given the nature of the course, but its main purpose is to lay a conceptual and terminological foundation for the rest of the course and for the Computer Science major in general.

    There aren't many testable issues in this lecture, but on the other hand it can be reviewed pretty quickly. You should know the difference between syntax, semantics and pragmatics, for example. I'll try to find other specific points to study when I produce a review sheet for the first exam. By the way, it's perfectly OK if you want to consult other source materials on some of these topics as you study: any text on rhetoric, communication theory or linguistics will consider these issues at greater length than I have here.

  • Numbers, numerals and bases

    In these next two lectures, we begin to get into the nitty-gritty of how computers actually represent information. To spoil the story, everything comes down to sequences of bits (binary digits) and thus effectively to sequences of ones and zeros. In this lecture we lay down a foundation for these issues of representation by discussing how numbers are represented in different numeral systems, conversion between systems, and the central role of binary numerals.

  • Data Representation

    As mentioned above, with computers, everything comes down to sequences of bits (binary digits). The trick to making this an effective choice is in how those bits are interpreted (as with any language). The fact that any symbolic data can be reduced to this "medium" is not too hard to see. But the representation of "not necessarily symbolic" information (such as music and images) requires some insight ... and perhaps cutting some corners. The combination of digital representation and digital computers is nevertheless extremely powerful, and by nearly all accounts is ushering in a new age in many areas of human endeavor.

On-line homework and programming projects

These assignments should be posted earlier in the week and then undertaken during scheduled lab times in Collins 411.

  • Lab #1: First Experiences with Java and Cafe

    Assigned: Wed 19 Jan 2000

    This is just a short exercise to give you the opportunity to get set up on the 411 lab machines and get started with Symantec Cafe. You will need to spend some time reading the assignment and the text, but it is largely just an exercise in the truest sense of the word.

    This lab was kindly provided by Professor Jim Levenick!

  • Lab #2: Drawing Graphics Under Program Control

    Assigned: Wed 26 Jan 2000

    This is our first significant programming exercise; it's not really that difficult, but since it's the first time most of you will have written your own program, it will present some challenges. It also serves to set the stage for a discussion of abstraction in lectures and for further elaboration as an assignment "theme" in lab.

  • Lab #3: Number Bases and Representations

    Assigned: Mon 31 Jan 2000

    This lab is one of two "paper-and-pencil" assignments we will do relating to material from lecture on number bases and data representation. Although it serves as a break from programming, it may not be as much fun ...

  • Lab #4: Using Classes to Structure Your Code

    Assigned: Mon 7 Feb 2000

    With this lab we continue the "stick figure" theme, now moving our program code into classes as a better means of organizing it. Notions of class and object will be motivated and explained in lecture.

  • Lab #5: Digital Representation of Data

    Assigned: Mon 14 Feb 2000

    This lab returns to issues of binary representation, as in Lab #3, but now looks to higher-level problems concerned with representation techniques, rather than just the low-level details of different numeral systems. An understanding of these issues will help you understand the needs of graphic designers, web page designers, sound engineers and other "para-programmers" in your programming work. It will also help you to develop intuitions about more general data storage and complexity analysis issues.

  • Lab #6: Programming the PC-231

    Assigned: Wed 23 Feb 2000

  • Lab #7: More Programming Problems for the PC-231

    Assigned: Fri 3 Feb 2000

  • Lab #8: Naive animation

    Assigned: Mon 3 Apr 2000

Production notes

Miscellaneous stuff