CPSC 120: 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
--- the tree-like organization, the absolute (full) and relative pathnames
for files, 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, Interpreters and Languages
(Chapter 1 plus class notes and lab handouts)
- Know the programming language hierarchy
- 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
difference between bytecode and machine code
- 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 (be sure to understand 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 and
GHz 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 (hierarchy)
- Types of errors in programming (syntax or compile-time, run time, logic)
- 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
- Data conversion - automatic widening conversions, explicit
narrowing conversions through type casting
- Printing
- Assignment Statements - syntax and how one is executed
- Expressions (including the arithmetic operators and the precedence
and associativity rules) - be able to write expressions for computations;
be able to evaluate expressions exactly as the computer would and show
the results.
- 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 that this invokes a constructor method for the class
- 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 (class) method
- Know the basics of using the String class, the Math
class, the Keyboard class, and the Random class (be able to write
an expression to generate a random number in a given range).
- 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)
- Know the difference between...
- an applet and an application
- an expression and a statement
- a filename and a shell command