=====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