Table of Contents
COMPORG
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++]
C4ENG
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)
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
GAME
The following is a list of the major topics being covered in this course:
- Introduction
- Fundamental Game Elements
- Collaborative Software Development
- Media libraries: SDL
- Algorithms and Logic
- Collision detection
- Interaction
- Game Play Considerations
- Graphics
- Sprites
- User Interaction
- Animation
- Input: keyboard
- Input: joystick/gamepad
- Input: mouse
- Data files
- Two player interactions
- Concurrency/threads
- Basic Artificial Intelligence
- Basic networking
- Audio
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
PHP
coming soon
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