CS111 TOPICS General notions Algorithms, data Programming details, Java Applications, applets Syntax program structure, reserved words, declarations, statements Variables types objects, integer, real, char, boolean, string, array scope Statements assignments, loops, if, if/else Classes Methods how to think about them, what happens to parameters Text files Documentation, indentation, and descriptive identifiers Pseudo code Program verification Programming languages machine instructions assembly language high-level and special purpose languages compiling portability Searching, sorting, and efficiency Machine architecture physical machine: circuits, bits, bytes, CPU, memory, I/O devices, bus memory and addressing representation of characters and integers ASCII codes binary and hexadecimal numbers integer storage: sign/magnitude, two's complement CPU registers, program counter, stack pointer, etc. simple machine language and corresponding assembly language fetch, decode, execute cycle disk storage and types of files Applied topics Graphics Simulation Text and file processing Theoretical topics Bare bones language Turing machines Computability Halting problem