User Tools

Site Tools


haas:spring2020:common:topics

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
haas/spring2020/common/topics.txt · Last modified: 2019/08/04 13:12 by 127.0.0.1