Table of Contents

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