=====ASM===== The following is a list of the major topics being covered in this course: * von Neumann vs. Harvard architecture * Data Representation * Binary Number Representation * Hexadecimal Number Representation * Logic * Computer Arithmetic * Architecture Details * Processor & Memory Organization * Addressing Modes * Register * Indirect * Immediate * Memory * Registers * General Purpose / Integer * Floating Point * Stack Pointer * Program Counter * Flag / Status * Accumulator * Data * Index * Instruction Sets * CISC * RISC * Arithmetic Instructions * Addition * Subtraction * Multiplication * Division * Logic Operations * AND * OR * NOT * XOR * Data Instructions * Data Movement * Address Movement * Data Conversion (ASCII vs. integer vs. float) * Bit Shifting, Rotation * Control and Data Flow * Subroutines * Storage * Machine Word * Data Representation * Big Endian * Little Endian * Size * Signed * Unsigned * One's Complement * Two's Complement * Integer * Floating Point * ASCII * 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) * arithmetic (equations, operators) * logic and operators (and, or, not, xor) * Variables (types, ranges, sizes) * "String", Format/Formatted Text String * 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) * Multi-dimensional arrays * File Access (Read, Write, Append) * Structures * typedef, enum, union * Functions * Parameters (Pass by: Value, Address, Reference) * Return Types * Recursion * Command-line arguments * Code stages (Source, Object, Binary) * Compiler, Preprocessor, Flags, Assembler, Linker * C Library, Libraries, and Makefiles * Multi-file programs (how to structure, how to compile) * Version Control (checkout, commit, update, add, log) * I/O Streams (cin, cout, cerr, stream operators) [C++] * Array of char vs. C++ string data type [C++] * Namespaces [C++] * Type Casting Operators [C++] * Const-Volatility Specifiers (const, volatile) [C++] * Classes and Objects (Constructor, Destructor, Members) [C++] * Access Control (Public, Protected, Private, Friend) [C++] * "this" pointer [C++] * Inheritance (single, multiple Inheritance) [C++] * Polymorphism/Virtual Functions [C++] * Function Overloading [C++] * Operator Overloading [C++] * Exception Handing (throw, try, catch) [C++] * Abstract Base Class [C++] * Templates [C++] * 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) =====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 * resource 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 * Files * Listing * Copying * Moving/Renaming * Removing * Creating * Archiving/Unarchiving * Compressing/Decompressing * Links * Permissions * Ownership * Viewing * Text Processing * The VI editor * insert mode * command mode * extended command mode * The UNIX Shell * Environment variable * $PATH * wildcards * tab completion * Job Control * Program vs. Process * backgrounding a process * foregrounding a process * signals * killing a process * Multitasking * The UNIX Programming Environment * Compiler * Object Code * Linker * Library * C * Assembly * Pattern Matching * Regular Expressions * Basic Regular Expressions * Extended Regular Expressions * Filtering * Shell Scripting * networking, UNIX Networking Tools * 'Netiquette, Security * X Window System * High-Performance Computing