=====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:
* 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
* Singly Linked Lists
* creating
* inserting
* appending
* obtaining
* copying
* deleting
* 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 vs. Remote resources
* Client, Host, Node, Peer, Server
* Types of files
* Regular
* Directory
* Current/Present Working Directory
* Home Directory
* Parent Directory
* Root Directory
* Traditional Directory Structure
* location of common utilities
* Links (Symbolic)
* Special
* Manual Pages
* Manual Sections
* apropos, man
* History
* origins
* strains of UNIX
* flavors of Linux
* lineage, influence
* File Manipulation
* Creating
* Duplication (Copying)
* Moving
* Deleting
* Archiving, Unarchiving
* Compressing, Uncompressing
* Encoding, Decoding
* Encrypting, Decrypting
* File Access
* Ownership
* User, Group, World
* Permissions
* Read, Write, Execute/Search
* UNIX Philosophy
* Everything is a File
* Do One Thing, and Do that One Thing Extremely Well
* Small is Beautiful
* Text Processing
* moded editing, vi/vim editor
* Filtering
* cat
* head, tail
* tr, cut, grep, sed, diff
* The UNIX Shell
* variables
* local, ENVIRONMENT
* declaring, initializing, accessing
* $PATH, $HOME, $USER
* performing arithmetic
* wildcards
* quotes
* expansion
* variable expansion
* command expansion
* tab completion
* I/O redirection
* STDIN, STDOUT, STDERR
* write/overwrite, append
* hidden/dotfiles
* Job Control
* foreground/background(ing) jobs
* process management
* viewing status of running processes (ps, top)
* altering priority of processes (nice)
* terminating processes (kill, pkill)
* job scheduling
* cron, at
* The UNIX Programming Environment
* Compiler (gcc), Assembler, Linker, Loader
* Source Code, Object Code, Binary Code, Library
* Relationship between UNIX and C
* Regular Expressions
* Pattern Matching
* Pattern Creation
* Extended Regular Expressions
* egrep
* Shell Scripting
* shabang
* bash syntax
* variables
* I/O
* selection statements
* if
* case
* loops
* numeric for loop
* list-based for loop
* while
* arrays
* functions
* Networking
* UNIX Networking Tools
* ping, ifconfig, traceroute, route, nslookup
* TCP/IP
* standards, protocols, RFCs
* Security
* groups
* application of permissions
* considerations of access
* public_html
* System Administration
* software
* package management
* source
* logs
* configuration
* deployment
* X Window System
* X server, X clients, interactions thereof
* Projects
* installation of OS
* virtualization
* web server
* blog
* version control (hg)
* screen / tmux
* irc
* irc bot
* vim configuration
* brute-force password cracking
* automated drawing
* puzzle box
* course list processing