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 second part of this section, Introduction to Computer Science is meant to provide a brief introduction into the different areas of Computer Science.  Lectures need not cover all the areas listed in the notes.  However it is highly recommended that they do be tailored to match the areas of research in the department.  The final part of this section is a brief introduction into computers: the hardware 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.   

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 as to why I arranged the notes the way that I did.

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: 

After this I then lay out the foundations for the remainder of the term by briefly discussing what the area of Computer Science is all about and some of the different areas of research.   This is an important task because it is not only essential that students who have completed their first year have at least a rough idea of what Computer Science is about but also I have found that it helps them understand why they have to learn about some of things that they do during that initial year. Also I find that taking about some of the nifty research that is conducted at my university gets students excited and motivated about the area as well as educating them about the important work that is done here.  Finally a brief introduction about how and why things work the way they do in a computer (hardware and software) is in order for the introductory section.