Lecture notes for the Introduction to Computer Science I by James Tam Return to the course web page

Introduction To CPSC 231

Notes for the required material 

The main purpose of this section is to get students "up and running" for this course.  Consequently the course instructor should provide information on all the details required to use the Computer Science network computers (see "Teaching Tips" below).  A "hands-on" approach that actually allows students to complete useful tasks (e.g., login in, viewing and printing files, etc) is often a good idea but this can be done in the tutorials. The final part of this section is a brief introduction into computers: the hardware (and possibly the software) behind the machine.  Since this is the first introductory course into Computer Science, it is only appropriate that students get an idea what are the basic components of a computer as well as what is going on inside of it from the programmer's perspective. For me this section includes topics such as the relationship between memory (e.g., RAM) and storage (e.g., hard drive) because that sets the theoretical foundation for later sections (e.g., a memory leak is something that should be avoided because sloppy pointer programming can lead to most of memory being wasted so that the computer has to constantly swap information from storage into memory leading to extremely slow execution).

Optional teaching material

Background / Sources of additional information

Unlike the other sections for these course notes I don't have a formal list of academic references because I built up much of the material by teaching first year students over the years.  However, I do have a few sources that the instructor (or the keen student who is reading this) can go to for more information:

Teaching Tips

Note to the course instructor: This section is meant as a guide as to how to approach each section rather than a definitive cannon for how first year Computer Science courses should be taught.  Thus it can be used both as a starting point for new instructors and to provide a bit of insight for those with more experience with a potentially fresh point of view.

The introduction sets the stage for the rest of the course.  I usually begin by covering all of the administrative issues associated with the course which typically include: