=====ASM===== The following is a list of the major topics being covered in this course: * von Neumann vs. Harvard architecture * Fetch-Execute Cycle * Binary and Hexadecimal Number Representation * Processor & Memory Organization * Registers (General Purpose/Integer, Floating Pointer, Accumulator, Data) * Registers (Stack Pointer, Program Counter, Flag/Status) * Registers (Index/Pointer) * Instruction Sets (CISC, RISC) * Boolean Arithmetic Operations (Addition, Subtraction, Multiplication, Division) * Logic Operations (AND, OR, XOR) * Negated Logic Operations (NOT, NAND, NOR, XNOR) * Data Instructions (Data Movement, Address Movement, Data Conversion, Bit Manipulation) * Control and Data Flow * Subroutines (Calling, Return Address) * Storage * Machine Word * Stack Operations * Data Representation (Big Endian, Little Endian, Size, Integer, Floating Point, ASCII) * Data Representation (Sign Representation, One's Complement, Two's Complement) * Linking, Object and Machine Code * I/O * Interrupts * Address Bus * Data Bus =====COMPESS===== The following is a list of the major topics being covered in this course: * Number Systems * Digital Processing * Computer Hardware * System Software * Application Software * Artificial Intelligence * System Development * Telecommunications * Internet and Web * Databases * Security, Privacy, Ethical Issues * Programming * Computer History =====CPROG===== The following is a list of the major topics being covered in this course: * Standard I/O (STDIO, STDOUT, STDERR) * Header Files (Local and System), C Standard Library (Libc), Libraries * arithmetic (equations, operators) * logic and operators (and, or, not, xor) * Variables (types, ranges, sizes) * Scope (Block, Local, Global, File) * Pointers (address of, assignment, dereferencing) * Type Casting * Selection Structures (if, case/switch) * Repetition/Iteration Structures (for, while, do while) * Arrays (standard notation, pointer arithmetic, single-dimensional, multi-dimensional) * File Access (Read, Write, Append) * Structures (Declaration, Accessing Elements, Pointers to) * typedef, enum, union * Functions, Parameters (Pass by: Value, Address, Reference), Return Types, Recursion, Command-line arguments * Compiler, Preprocessor, Flags, Assembler, Linker, Multi-file programs (how to structure, how to compile) * I/O Streams (cin, cout, cerr, stream operators) [C++] * Namespaces [C++] * Type Casting Operators, Const-Volatility Specifiers (const, volatile) [C++] * Classes (Objects, Constructor, Destructor, Access Control, Public, Protected, Private, Friend, "this" pointer) [C++] * Inheritance (single, multiple Inheritance), Polymorphism/Virtual Functions, Abstract Base Class [C++] * Overloading (Functions, Operators) [C++] * Exception Handing (throw, try, catch) [C++] * Templates, STL (Standard Template Library) [C++] =====DATA===== The following is a list of the major topics being covered in this course: * Version Control (checkout, commit, update, add, log) * Pointers (address of, assignment, dereferencing) * arrays, pointer arithmetic * pointers to pointers * null pointers * void pointers * function pointers * Static allocation vs. Dynamic allocation * Memory allocation (malloc(), new) * Memory De-allocation (free(), delete) * structures * structure pointer * Linked Lists * Doubly Linked Lists * Stacks (array-based, linked-list based) * Pushing * Popping * Top * Overflow condition (where applicable?) * Underflow condition * LIFO or FIFO? * Queues (array-based, linked-list based) * Enqueuing * Dequeuing * Overrun and Underrun conditions * LIFO or FIFO? * Computational Complexity * Big-O, Theta, bounds * Sorting Algorithms * Selection sort algorithm * Bubble sort algorithm * Insert sort algorithm * Quick sort algorithm * Merge sort algorithm * Binary Search algorithm * Trees, Binary Trees (nodes, parents, children) * insertion * removal * searching * traversal (pre-order, post-order, in-order) * Graphs * Hash Tables (keys, collisions) =====DATACOMM===== The following is a list of the major topics being covered in this course: * network communications * coding * protocols * network/socket programming * error detection * data transmission * TCP/IP protocol family * datagrams * transport layer * internet/network layer * link layer * physical layer * Programming with Datagrams * Threads * Inter Process Communication =====DISCRETE===== The following is a list of the major topics being covered in this course: * Basic Logic * Predicate Calculus * Sets * Set Operations * Induction and Deduction * Algorithmic Efficiency * Matrix Operations * Recursion * Counting * Combinatorics * Relations * Graphs * Trees * Boolean Algebra * Theory of Computation =====HPC0===== The following is a list of the major topics being covered in this course: * Introduction & Getting Started * UNIX review (as a user) * UNIX review (as a developer) * UNIX as an administrator * UNIX networking tools * security * package management * file access / transfer * networking services * system administration * documentation * backups * virtualization * visualization * installation * configuration =====HPC1===== The following is a list of the major topics being covered in this course: * lab operations * maintenance * logging * accessibility * upgrades * backups * documentation * projects * research * resource configuration and usability * remote administration * on-site administration * security - internal * log analysis * troubleshooting * security - external =====HPC2===== The following is a list of the major topics being covered in this course: * lab operations * maintenance * logging * accessibility * upgrades * backups * documentation * resource usability * remote administration * on-site administration * security - internal * log analysis * troubleshooting * security - external =====SYSNET===== The following is a list of the major topics being covered in this course: * Communication * Concurrency * Documentation * Investigation * Creation * Collaboration * Clusters * Resource Utilization * Exploration * Projects * Deployment * Implementation =====SYSPROG===== The following is a list of the major topics being covered in this course: * UNIX Systems Programming * User space * Kernel, Kernel space * Users, Files, and the Manual * File Access (open, read, write, lseek, close) * File descriptors * Buffering * System Calls * Directories and File Properties * File Types and File Properties * Bit Sets and Bit Masks * User IDs, Group IDs * Focus on File Systems * Filesystem Structure; inodes and data blocks * Directories * Links * Connection Control * Device files * Race conditions * Atomic Operations * Streams * Terminal Control and Signals * Blocking vs. Non-Blocking * Signals * Event-Driven Programming * Alarms, Interval Timers * Reentrant code, critical sections * Asynchronous input * Processes and Programs * UNIX process model, processes * Parent/Child processes * Shell Variables and the Environment * I/O Redirection and Pipes * I/O Redirection * Pipes * Servers and Sockets * Client/Server model * Coroutines * Connections and Protocols * Server sockets * Client sockets * Zombies * Programming with Datagrams * TCP vs. UDP * Distributed Systems * UNIX domain sockets * Threads * Multithreading * Creating/destroying threads * Sharing data between threads * Synchronizing data * Inter Process Communication * Named pipes * Shared memory * File locks * Semaphores =====UNIX===== The following is a list of the major topics being covered in this course: * Local host * Remote host * Home directory * Current working directory * Types of files (regular, directory, special) * File manipulation * Text Processing * The VI editor * The UNIX Shell * Environment variable * $PATH * wildcards * tab completion * Job Control * The UNIX Programming Environment * Compiler, Assembler, Linker, Loader * Source Code, Object Code, Binary Code, Library * Pattern Matching * Regular Expressions * Filtering * Shell Scripting * networking, UNIX Networking Tools * Security * X Window System