last update: 20 August 2002

CSC 271 Introduction to Computer Systems 4 cr.

The important concepts of a complete large computer system are introduced, including the machine and assembly language, the low level use of a standard environment and its implementation language. They are firmly interlinked by studying the methodologies of low level program control and debugging of assembler and implementation language code under the standard environment, the assembly code generated by compilers, and the overall environment. Three lecture hours per week and three hours of scheduled laboratory per week, plus extensive laboratory work outside of class.
Prerequisite: CSC 260 with grade of C+ or higher.

Goals:

      The goals of this course are to provide a technical bridge between the sequence CSC 201J, CSC 202J, and CSC 260, which emphasize programming and problem solving skills, and the explicit knowledge of the environment in which real problems are solved.
      This provides a basis for advanced courses, which more and more will use standard environments because of the wide availability of course materials for them.   It also provides a concrete preparation for CSC 280.
    Specific goals are:

  • CG1: to understand the basic features of a syustem such as Unix or Linux;
  • CG2: to understand the methodology used to create a program on such a system;
  • CG3: to be familiar with the assembly language of a high-performance RISC processor such as SPARC or MIPS;
  • CG4: to understand how the efficiency of high-level languages relates to assembly language;
  • CG5: to be familiar with a language used for system programming or scripting, such as C or Perl.
Objectives:
   Upon successful completion of the course a student will have:
  • CO1: used the operating system presented as the base for several programs successfully designed, implemented and debugged;
  • CO2: designed, implemented and debugged several programs in assembler;
  • CO3: examined the code produced by a compiler or performance of an interpreter;
  • CO4: written at least one program in a scripting language.
Topics:
  • Introduction to computer organization
  • Review of number systems and encoding
  • Processor programming model
  • Mechanics of programming under a standard operating system
  • Processor control flow
  • Linkage conventions
  • Delay slots and performance issues
  • Arithmetic instructions
  • Bits and bytes
  • Implementation language and compiler usage of the instruction set
  • Standard libraries
  • Standard preprocessors
  • Basic program management and structure

Typical assignments:   a small binary program hand compiled from assembler, several small assembler programs, several small implement- ation language programs including a sparse matrix abstract data type, benchmarking of the implementation language, and hand-tuned assembler versions of an enumerative puzzle solver.

Consult the main list of CSC courses for the languages and software currently used in this course.

All programs must conform to departmental guidelines for program design and implementation, and all laboratory reports must conform to the written guidelines supplied by the instructor. Regardless of numeric average or grades on individual assignments or examinations, a student will not be eligible for a passing grade in the course unless he or she has submitted a lab report for every programming assignment within the time-frame specified by the instructor.

The course grade will be determined using the following approximate weights: lab reports — 40%; final examination — 25%; other tests and homework — 35%.


Bibliography:
  • Harbison & Steele.   C—A Reference Manual.   (Prentice Hall, 1987)
  • Kane & Heinrich.   MIPS RISC Architecture.   (Prentice Hall, 1992)
  • Paul, Richard.   SPARC Architecture, Assembly Language Programming and C.   Second Edition.   (Prentice Hall, 2000)
  • Ramteke, Timothy.   Unix by Experimentation.   (Prentice Hall, 1999)
  • Sebesta, Robert.   Little Book on Perl.   (Prentice Hall, 2000)
  • Weaver & Germond.   The SPARC Architecture Manual.   (Prentice Hall, 1994)


Salem State Home Computer Science Home Faculty Computer Studies Major Flow Sheet
Computer Studies Minor Courses Course Sequence Diagram Computer Laboratories