CPSC 120B: Test #1 Topics
The test covers Chapters 1 & 2 in the text plus all class notes,
handouts and lab materials. It would be a good idea to do the
self-review questions and exercises at the end of each chapter.
General Concepts
- Operating Systems (Lab 0 Handouts plus class notes)
- Know what an operating system is
- Know terminology associated with operating systems (shell, kernel, for example)
- Know some of the main tasks of an operating system
- Understand the file structure of the Unix (Linux) operating system
--- what it looks like, what the full and absolute pathname of a file,
shorthand notation for certain files
- Understand the idea of file permissions -- what they are, what they mean,
how you can find out the permissions in Linux
- Know the basic Linux shell commands we have used
- Compilers and Interpreters (Chapter 1 plus class notes and lab handouts)
- Know what compilers and interpreters are and what each does
- Know the difference between the source file and the file containing
bytecode (and the role of each in the compilation process)
- Know the command we use in this course to compile, know what file
is created as a result of this command (its type and what it contains);
know the command we use to run a Java application; know the difference
between running an application and running an applet
- Hardware (Chapter 1 plus class notes
plus Hardware Review Web Page)
- Know the 5 hardware components -- the role of each in the computer
system plus associated terminology (including the sub-components
within the CPU)
- Understand the role of controllers and the bus
- Understand the differences between main and auxiliary memory
- Know the various units of storage (bit, byte, KB, etc.) and how
much data each would hold.
- Know how many unique items an n bit code can represent.
- Understand how the Control Unit works to control the execution of
instructions (the fetch-decode-execute cycle)
- Understand the role of the clock in executing instructions;
know the terminology (and its meaning) for measuring clock speed (MHz, for
example)
- Understand what is meant by the von Neumann architecture and what
the stored program concept is (which is a fundamental feature of the
von Neumann architecture)
- Networking
- Understand what a network is
- Know basic network terminology: server (plus specific types
such as file server or terminal server), LAN, WAN, packet,
protocol, TCP/IP, Internet (IP) address, domain name, Web,
hypertext, HTML, browser, URL
Java and Programming Concepts (notes, lab, and the text)
- General Programming Concepts
- Problem solving steps
- Syntax versus semantics
- Comments/Documentation
- Use of White Space
- Levels of programming languages
- Types of errors in programming
- Basic Programming Constructs
- Identifiers -- what one is, syntax rules for identifiers in Java
- Variable declarations
- Declaration of named constants (final) & the reason for using these
- Primitive Data types in Java
- String and numeric (int, double, float) literals -- syntax
- Printing
- Assignment Statements - syntax and how one is executed
- Expressions (including the arithmetic operators and the precedence
and associativity rules)
- Objects, Classes, and Methods
- Be able to distinguish between an object and a class
- Be able to declare a variable to be a reference to an
object
- Be able to instantiate an object with the new operator
- Understand the use of the dot operator to invoke (call)
a method
- Be able to look at the signature of a method and from
that determine how to invoke the method
- Know how one invokes a static method
- Know the basics of using the String class, the Math
class, the Keyboard class, and the Random class.
- Syntax and Semantics
- Be able to find syntax errors in a Java program
- Be able to describe the semantics of statements
we have studied (for example,
what does the computer do with a variable declaration,
what is the relationship between memory and a variable
declaration, how
is an assignment statement executed, how are expressions
evaluated?)
- Be able to trace the execution of a program (show what
it would do in a step by step manner)