CPSC 120B -- Final Exam Topics
In general, any topic that we spent a significant amount of time on in class
or in lab is a good candidate for the final. Here are some highlights.
- Linux
- basic shell commands (ls, cd, pwd, mv, cp, mkdir, rm)
- file permissions
- directory structure
- commands and expressions
- Hardware
- The von Neumann architecture
- components: bus, CPU (ALU, control unit), main memory
- fetch-decode-execute cycle
- instruction register and program counter
- Main and secondary memory -- characteristics, importance, differences
- Processor speed -- how it is measured (MHz), what this means
- Networks -- LAN, WAN, the Internet, IP addresses, Internet addresses
- Programming Languages
- Machine, assembly, and high-level languages
- Compilers and interpreters
- How Java is compiled and executed (byte code, JVM)
- Syntax and semantics
- Representation of Integers
- Convert a base 10 number to any other base
- Convert a number in another base to base 10
- Use the special properties of bases 2, 8, 16 to efficiently convert
between them. Understand why this works.
- Two's complement -- convert back and forth to base 10, add twos complement
numbers, detect and understand overflow
- Bits and things -- how many things can be represented in n bits? What
is the largest integer that can be represented in n bits interpreted as
unsigned? As twos complement?
- Logic
- Basic operators -- AND, OR, NOT -- mathematical and Java symbols
- Truth tables, construct and interpret
- Laws of logic, use in simplifying boolean expressions
- Equivalence of boolean expressions using truth tables, laws of logic
- Circuits -- relationship to truth tables, boolean expressions. Be
able to construct any two given the third.
- Java Programming
- Statements and expressions
- Arithmetic operators (+,-,*,/,%)
- Primitive types and type casting
- Compile-time vs. run-time errors
- Random number generation and manipulation
- Basic methods of the String class (length, concat, toUpperCase, charAt, etc)
- The toString method of any class
- Input using the Keyboard class
- If statements and Boolean expressions (no break or conditional
expression)
- Loops (while, do..while, for)
- Loop control mechanisms (counting, ask-the-user, sentinel, other)
- Common looping tasks (counting, summing, finding average, max, min, checking
for valid input)
- Nested loops
- Objects, Classes, and Methods
- Storage of primitive values (direct) vs. objects (references)
- Parameter passing of primitive values and objects
- Public vs. private for variables, methods
- Instance vs. static for variables, methods
- Class design
- Use of a class given type signatures for its public components
- Constructors
- Method overloading
- Formal and actual parameters
- Return values
- Type signatures of methods
- GUIs, Events, Listeners, Interfaces
- Java components -- JButton, JTextField, JLabel, ContentPane
- The steps in creating a Java GUI
- The ActionListener interface and how it is used
to handle button and textfield events.
- What an interface is, how to implement one
- Applets and Graphics
- The Java coordinate system
- Basic applet methods (init, paint)
- Basic drawing classes and methods (Graphics, drawRect, fillRect, etc)