APSU Notes

Chapter 1.1 - Computer Basics

Savitch 1.1

Computer Basics: Outline

  • Hardware and Memory
  • Programs
  • Programming Languages and Compilers
  • Java Byte-Code
  • Graphics Supplements

Hardware and Software

  • Computer systems consist of hardware and software.
    • Hardware includes the tangible parts of computer systems.
    • Software includes the programs - sets of instructions of the computer to follow.
  • Familitary with hardware basics helps us understand software.

Hardware and Memory

  • Most modern computers have similar components including
    • Input devices (keyboard, mouse, etc.)
    • Output devices (display screen, printer, etc.)
    • A processor
    • Two kinds of memory (main memory and auxiliary memory)

The Processor

  • The called the CPU (central processing unit) or the chip (e.g. Pentium processor)
  • The processor processes a program’s instructions.
  • It can process only very simple instructions.
  • The power of computing comes form speed and program intricacy.


  • Memory Holds
    • programs
    • data of the computer to process
    • the results of intermediate processing.
  • Two kinds of memory
    • main memory
    • auxiliary memory

Main memory

  • Working memory used to store
    • The current program
    • The data the program is using
    • The results of intermediate calculations
  • Usually measured in megabytes (e.g. 8 gigabyte of RAM)
    • RAM is short for random access memory
    • A byte ****is a quantity of memory

Auxiliary Memory

  • Also called secondary memory
  • Disk drives, CDs, DVDs, flash drives, etc.
  • More or less permanent (nonvolatile)
  • Usually measured in gigabytes (e.g. 50 gigabyte hard drive)

Bites, Bytes, and Addresses

  • A bit is a digit with a value of either 0 or 1.
  • A byte consists of 8 bits.
  • Each byte in main memory resides at a numbered location called its address.

Main Memory

Figure 1.1

Storing Data

  • Data of all kinds (numbers, letters, strings of character, audio, video, even programs) are encoded and stored using 1s and 0s.
  • When more than a single byte is needed, several adjacent bytes are used.
    • The address of the first byte is the address of the unit of bytes.


  • Large groups of bytes in auxiliary memory are called files.
  • Files have names.
  • Files are organized into groups called directories or folders.
  • Java programs are stored in files.
  • Programs files are copied from auxiliary memory to main memory to main memory in order to be run.

0s and 1s

  • Machines with only 2 stable states are easy to make, but programming using only 0s and 1s is difficult .
  • Fortunately, the conversion of numbers, letters, string of characters, audio, video, and programs is done automatically.


  • A program is a set of instructions for a computer to follow.
  • We use programs almost daily (email, word processor, video games, bank ATMs, etc.).
  • Following the instructions is called running or executing the program.

Input and Output

  • Normally, a computer receives two kinds or input:
    • The program
    • The data needed by the program.
  • The output is the result(s) produced by following the instructions in the program.

Running a Program

Figure 1.2

  • Sometimes the computer and the program are considered to be one unit.
    • Programmers typically find this view to be more convenient.

The Operating System

  • The operating system is a supervisory program that oversees the operation of the computer.
  • The operating system retrieves and start program for you.
  • Well-known operating systems including: Microsoft Windows, Apple’s Mac OS, Linux, and UNIX.

Programming Languages

  • High-level languages are relatively easy to use
    • Java, C#, C++, Visual Basic, Python, Ruby.
  • Unfortunately, computer hardware does not understand high-level languages.
    • Therefore, a high-level program must be translated into a low-level language.


  • A compiler translates a program from a high-level language to a low-level language the computer can run.
  • You compile a program by running the compiler on the high-level-language version of the program called the source program.
  • Compilers produce machine- or assembly-language programs called object programs.
  • Most high-level languages need a different compiler for each type of computer and for each operating system.
  • Most compilers are very large programs that are expensive to produce.

Java Byte-Code

  • The Java compiler does not translate a Java program into assembly language or machine language for a particular computer.
  • Instead, it translates a Java program into byte-code.
    • Byte-code is the machine language for a hypothetical computer (or interpreter) called the Java Virtual Machine.
  • A byte-code program is easy to translate into machine language for any particular computer.
  • A program called an interpreter translates each byte-code instruction, executing the resulting machine-language instructions on the particular computer before translating the next byte-code instruction.
  • Most Java programs today are executed using a Just-In-Time or JIT compiler in which byte-code is compiled as needed and stored for later reuse without needing to be re-compiled.

Compiling, Interpreting, Running

  • Use the compiler to translate the Java program into byte-code (done using the javac command).
  • Use the Java virtual machine for your computer to translate each byte-code instruction into machine language and to run the resulting machine-language instruction (done using the java command).


  • After compiling a Java program into byte-code, that byte-code can be used on any computer with a byte-code interpreter and without a need to recompile.
  • Byte-code can be sent over the Internet and used anywhere in the world.
  • This make Java suitable for Internet applications.

Class Loader

  • A Java program typically consists of several pieces called classes.
  • Each class may have a separate author and each is complied (translated into byte-code) separately.
  • A class loader (called a linker in other programming languages) automatically connects the classes together.

Compiling and Running a Program

Figure 1.3