Featured Post

What is this blog about?

ABOUT : "BSCSUS" in [ bscsus dot com ] name stands for "BS in CS in US", which stands for Bachelor of Science in Compute...

Right click image below & "open link in new tab"

Right click image below & "open link in new tab"
Right click image above, then "open link in new tab"

Search This Blog

Showing posts with label Information from Academia. Show all posts
Showing posts with label Information from Academia. Show all posts

Saturday, September 18, 2021

Hardware Notes: For my self-learning and subject revision

  • Digital technology - is everywhere in our lives
  • It is important to have a good foundation in fundamentals of Digital Technology
  • It is important to know Programmable Logic
  • "Digital": The word is used because work happens by counting digits 
  • Digital Technology has progressed from: Vacuum-Tube --> Circuits --> Discrete Transistors --> complex ICs (Integrated Circuits)
  • Many integrated circuits contain millions of transistors
  • Many transistors are programmable
  • Electronic circuits: 2 categories: (1) Digital and (2) Analog
  • Still typing, while learning...

Tuesday, September 14, 2021

UNIX Operating System

(From Wikipedia at the link)

"Unix (trademarked as UNIX) is a family of multitasking, multiuser computer operating systems "

This is just an initial post. More information coming soon...


Monday, September 13, 2021

Main topics in the book: Coding all-in-one for Dummies

(These topics are from Coding for Dummies)




















Getting started with coding
  • What is coding?
  • Programming for the web'
  • Becoming a programmer
Career building with coding
  • Exploring coding career paths
  • Exploring undergraduate and graduate degrees
  • Training on the job
  • Coding career myths
Basic web coding 
  • Exploring basic HTML
  • Getting more of HTML
  • Getting stylish with CSS
    Building floating page layouts
  • Using alternative positioning
Advanced web coding
  • Working faster with Twitter bootstrap
  • Adding in JavaScript
  • Understanding Callbacks and Closures
  • Embracing AJAX and JSON
  • jQuery
Creating web applications
  • Building your own App
  • Researching your first web application
  • Coding and debugging your first web application
Selecting data analysis tools
  • Wrapping your head around Python
  • Installing a Python distribution
  • Working with real data
Evaluating data
  • Conditioning data
  • Shaping data
  • Crash course for MatPlotLib
  • Visualizing data
  • Exploring Data Analysis
  • Exploring four simple and effective algorithms
Essentials of machine learning
  • How to machines learn?
  • Demystifying the Math behind Machine Learning
  • Descending the right curve
  • Validating Machine Learning
Applying machine learning
  • Starting with Simple learners
  • Leveraging similarity
  • Hitting complexity with Neural Networks
  • Resorting to ensembles of learners
  • Real world applications

Main and Subtopics in the Middle School Study Guide book

(These topics are from the CS & Coding book as below) 











Computing Systems

  • What is Computer Science?
  • What is a computer?
  • How do we interact with computers?

Data and Analysis

  • Storing information
  • Collecting and using information

Software Engineering

  • Designing computer systems
  • Testing
  • Documenting
  • Incorporating feedback
  • Collaborating

Algorithms and Programming

  • Using algorithms
  • Programming languages
  • Computational thinking

Universal Programming Principles

  • Variables
  • Conditional statements
  • Loops
  • Events
  • Procedures

Programming with Scratch

  • Start
  • Basic algorithms
  • Data and Operators
  • Control Blocks and Event Blocks
  • Reusing Scripts

Programming in Python

  • Start
  • Variables
  • Strings
  • Numbers as variables
  • Lists and Boolean expressions
  • For loops
  • While loops
  • Nested loops
  • Conditional statements
  • Functions

Web Development

  • What is the internet?
  • Cybersecurity
  • Creating a basic webpage
  • HTML text elements
  • Link elements
  • Styling with CSS
  • Styling individual elements with CSS

Sunday, September 12, 2021

MIS Graphic - Management Information Systems

Management Information Systems explained in one graphic, from the link:








An Algebraic intersection between {Tech: Computer Engineering, Computer Science, etc.} and {Business: Accounting, Finance, Marketing, Economics, Strategy, General Management etc.}

To quote from the same link: "Information is the lifeblood of all organizations, now more than ever and they need someone who understands both business (programmers/computer scientists don't) and technology (other kinds of managers don't). As the managers of information and technology within the organization, MIS professionals bring technology and business together to deliver information solutions that help organizations meet their goals"


Saturday, September 11, 2021

Python Programming Language Notes

(Only scant, random, scattered main topics here. Not detailed or comprehensive)

ABOUT Python Code:

  • Versatile - Works on Windows, Mac, Linux, Supports Object-Oriented and Structured programming 
  • High level - Uses natural language to present abstract programming functions
  • Dynamically typed - Variable types change, based on the data they hold rather than being declared statically on creation
  • Multiple libraries - Open source, easily accessible, many modules containing predefined definitions for easy functionality
  • Incompatibility - 3.x incompatible with 2.x code
  • Importing modules - import x, import x as y, from x import functional1, from x import *, dir(x)
  • Scope - indentation
  • Global scope - accessible by whole program, will persist until program runs
  • Meaningful indentation - indentation deleanates change in scope (more indentated to left means narrower), each segment of indentation is equal to 4 spaces (don't use tabs) 
NAMING Conventions:
  • Uppercase vs. lowercase - Class names are uppercase, all others are lowercase
  • Leading underscores - Underscore before name is privatization. Function names that begin with 1 will not be imported when using the "from x import*" statement 
  • Trailing underscores - Single underscore after name is used to avoid naming conflicts. A double underscore after a name is used in conjuction with a double underscore before a name to indicate name with a special function 
  • Reserved keywords - Some words have special function, and can not be used to name variables, functions or classes (examples: and, as, assert, break, class, continue, def, del, elif, else, except, exec, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, print, raise, return, True, try, while, with, yield)
  • Comments - explain in plain language
  • Triple quotation marks - docstring to explain purpose
  • Pound sign - Comments using # sign when describing how, why, what of code
WRITING Code Basics:
  • Making variables - Declaration and assignment, assigning variables
  • Types - Integer, Floating point (float), Complex, String, List, Tuple, Boolean (bool), Dictionary (Dict), Changing types 
  • Console - Outputting text, taking user input
  • Error handling - try, except, else, finally, raise
  • Saving and loading files - open(filename, mode), file.read(size), file.readline(), file.write(), file.close()
Coding STRUCTURES:
  • List operations - List, tuple, & dict
  • Math operators - (int, float & complex)
  • Strings - test values without any meaning (mathematical or logical)
  • Statements - commands that initiate operation. Boolean, For, While, 
  • Functions - used to break down operations into smaller, reusable chunks
  • Dictionaries - special list types that contain key value pairs. 2 dimensional arrays with unique identifier keys attached to values
USING Structures:
  • String formatting - Using, Returns, Other formatting options
  • String methods - Slicing, reversing, splitting, joining, enumerating
  • Escape sequences - newline, printing special characters literally
  • Bool characters - used to perform operations related to true and false statements
  • Writing Boolean statements - Alternate if-else, Nesting if
  • Recursion & iteration - Recursion, Iteration, Break, Continue, 
  • Classes - Creating, filling
Coding CONCEPTS: 
  • Inheritance - Process by which objects gain properties of other objects. Classes, for example. 1st - Parent class. 2nd - Child class. Children can overwrite the inherited properties of their parent, changing functionality. Overriding. Inheritance from multiple parents. 

Sub-Topics of the main topics in Linux+

Preparing your environment
  • Setting up a learning space
  • Exploring Linux distributions
  • Locating a terminal
Sifting through services
  • What is a Linux server?
  • Serving the basics
  • Serving local networks
  • Implementing security
  • Improving performance
Managing files, directories, text
  • Handling files and directories
  • Linking --- " ---
  • Reading files
  • Finding information
Searching and analyzing text 
  • Processing text files
  • Redirecting input and output
  • Editing text files
Explaining the boot process
  • The Linux boot process
  • The firmware startup
  • Linux bootloaders
  • System recovery
Maintaining system startup and services
  • Looking at init
  • Managing systemd systems
  • Managing SysV init systems
  • Digging deeper into systemd
Configuring network connections
  • Configuring network features
  • Basic network troubleshooting
  • Advanced network troubleshooting
Comparing GUIs
  • Focusing on the GUI
  • Serving up the GUI
  • Using remote desktops
  • Forwarding
Adjusting localization options
  • Understanding localization
  • Setting your locale
  • Looking at time
Administering users and groups
  • Managing user accounts
  • Managing groups
  • Setting up the environment
  • Querying users
  • Managing disk space usage
Handling storage
  • Storage basics
  • Partitioning tools
  • Understanding filesystems
  • Formatting filesystems
  • Mounting filesystems
  • Managing filesystems
  • Storage alternatives
Protecting files
  • Understanding backup types
  • Looking at compression methods
  • Comparing archive and restore utilities
  • Securing offsite / off-system backups
  • Checking backup integrity
Governing software
  • Working with source code
  • Packaging applications
Tending kernel modules
  • Exploring kernel modules
  • Installing --- " ---
  • Removing --- " --- 
Applying ownership and permissions
  • Looking at file and directory permissions
  • Access control lists
  • Context based permissions
  • Understanding Linux user types
  • Restricting users
Looking at access and authentication methods
  • Getting to know PAM
  • Exploring PKI concepts
  • Using SSH
  • Using VPN as a client
Implementing logging services
  • Understanding the importance of logging
  • Basic logging using rsyslog
  • Journaling with systemd-journald
Overseeing Linux firewalls
  • Providing access control
  • Looking at firewall technologies 
  • Forwarding IP packets
  • Dynamically setting rules
Embracing best security practices
  • User security
  • System security
  • Network security
Analyzing system properties and remediation
  • Troubleshooting the network
  • Troubleshooting storage issues
  • Troubleshooting the CPU
  • Troubleshooting memory
  • Surviving a lost root password
Optimizing performance 
  • Looking at processes
  • Monitoring processes in real time
  • Managing processes
Investigating user issues
  • Troubleshooting access
  • Examining file obstacles
  • Exploring environment and shell issues
Dealing with Linux devices
  • Communicating with Linux devices
  • Working with devices
  • Using hot pluggable devices
Troubleshooting application and hardware issues 
  • Dealing with storage problems
  • Uncovering application permission issues
  • Analyzing application dependencies
  • Looking at SELinux context violations
  • Exploring firewall blockages
  • Troubleshooting additional hardware issues
Deploying bash scripts
  • Basics of Shell scripting
  • Advanced shell scripting
  • Writing script programs
Automating jobs
  • Running scripts in background mode
  • Running scripts without a console
  • Sending signals
  • Job control
  • Running like clockwork
Controlling versions Git
  • Understanding version control
  • Setting up Git environment
  • Committing with Git
  • Merging versions
Understanding cloud and virtualization concepts
  • Considering cloud services
  • Understanding virtualization
  • Exploring containers 
Inspecting cloud and virtualization services
  • Focusing on VM tools
  • Understanding bootstrapping
  • Exploring storage issues
  • Considering network configurations
Orchestrating the environment
  • Understanding orchestration concepts
  • Provisioning the data center
  • Looking at container orchestration engines

CompTIA Linux+ Study Guide Topics

(These topics are from CompTIA Linux+ Study Guide)


Tools

  • Preparing the environment
  • Sifting through services
  • Managing files, directories, and text
  • Searching and analyzing text

Starting up and configuring the system

  • Explaining the boot process
  • Maintaining system startup and services
  • Configuring network connections
  • Comparing GUIs
  • Adjusting localization options

Managing the system

  • Administering users and groups
  • Handling storage
  • Protecting files
  • Governing software
  • Tending kernel modules

Securing the system

  • Applying ownership and permissions
  • Looking at access and authentication methods
  • Implementing logging services
  • Overseeing Linux firewalls
  • Embracing best security practices

Troubleshooting the system

  • Analyzing system properties and remediation
  • Optimizing performance
  • Investigating user issues
  • Dealing with Linux devices
  • Troubleshooting application and hardware issues

Automating the system

  • Deploying bash scripts
  • Automating jobs
  • Controlling versions with Git

Realizing virtual and cloud environments

  • Understanding cloud and virtualization concepts
  • Inspecting cloud and virtualization services
  • Orchestrating the environment

Friday, September 10, 2021

Sub-Topics of the main topics in C++ programming

(From the same book. Only main topics listed here)


An introduction to C++ programming

  • Overview of programming and C++
  • Quick look at C++ development
  • Use Visual Studio for Windows development
  • Use Xcode for macOS development

How to write your first programs

  • Basic coding skills
  • Work with numeric variables
  • Use the console for input and output 
  • Work with standard library
  • Work with char and string variables
  • Test and debug a program

How to make decisions

  • Get started with "if" statements
  • More skills for coding "if" statements
  • Other ways to make decisions

How to code loops

  • More skills for coding arithmetic expressions
  • How to code "while" and "do-while" loops
  • How to code for loops and nested loops
  • How to code break and continue statements

How to work with I/O streams and files

  • How to work with input streams
  • How to work with output streams
  • How to work with file streams
  • How to work with string streams

How to work with data types, strings, and vectors

  • Basic skills for working with data types
  • More skills for working with data types
  • How to work with vectors
  • How to work with strings

How to code functions

  • How to start coding your own functions
  • How to plan the functions of a program
  • More skills for coding functions
  • How to work with header files and namespaces

How to test, debug, and deploy a program

  • Basic skills for testing and debugging
  • How to use Visual Studio to debug a program
  • How to use Xcode to debug a program
  • How to deploy and run a program

How to work with structures and enumerations

  • Basic skills for working with structures
  • More skills for working with structures
  • How to work with enumerations

How to work with STL containers and iterators

  • Introduction to STL containers and iterators
  • More skills for working with vectors
  • Arrays
  • Lists
  • Queues and stacks
  • Sets 
  • Maps
  • Nested containers

How to work with STL algorithms

  • Introduction to STL algorithms
  • Basic skills for working with algorithms
  • More skills --- " ---
  • More skills for passing functions to algorithms

How to work with built-in arrays and C strings

  • Basic skills for built-in arrays
  • How to work with C-strings
  • Advanced skills for built-in arrays

How to work with exceptions

  • How to get started with exceptions
  • More skills for working with exceptions

How to define classes

  • An introduction to Object-Oriented programming
  • More skills for coding member functions
  • How to store a class in header and source files
  • How to work with UML diagrams
  • How to work with object composition
  • The Pig Dice game

How to work with inheritance

  • How to get started with inheritance
  • More skills for networking with inheritance
  • How to work with multiple inheritance
  • When to use inheritance

More skills for object-oriented programming

  • How to work with static members
  • How to work with friend function
  • How to overload operators

How to work with memory and pointers

  • An introduction to pointers and memory
  • How to use pointers with functions
  • How to use pointers to work with dynamic memory
  • How to avoid memory leaks and memory corruption
  • More skills for working with pointers

How to work with templates

  • How to work with function templates
  • How to work with class templates

How to code custom containers, iterators, and algorithms

  • How to code a custom container
  • How to code a custom iterator
  • How to code a custom algorithm

C++ Programming Topics

(These topics are from Murach's C++ programming)


Essential skills for modern C++

  • Introduction to C++
  • Write your first programs
  • Make decisions
  • Code loops
  • Work with I/O streams and files
  • Work with data types, strings and vectors
  • Code functions
  • Test, debug, and deploy program

More skills

  • Structures and enumerations
  • STL containers and iterators
  • STL algorithms
  • Built-in arrays and C-strings
  • Exceptions

Object-Oriented programming

  • Define classes
  • Work with inheritance
  • Skills for Object-Oriented programming

Skills for legacy and generic programming

  • Memory and pointers
  • Templates
  • Code custom containers, iterators and algorithms

Sub-Topics of the main topics in Introduction to Computer Science

(From same book. Only main topics listed here)


Computers and programs

  1. The universal machine
  2. Program power
  3. What is computer science?
  4. Hardware basics
  5. Programming languages
  6. The magic of Python
  7. Inside a python program
  8. Chaos and computers

Writing simple programs

  1. The software development process
  2. Example program: Temperature converter
  3. Elements of programs - names, expressions
  4. Output statements 
  5. Assignment statements - Simple assignment, assigning input, simultaneous assignment
  6. Definite loops 
  7. Example program - future value

Computing with numbers

  1. Numeric data types
  2. Type conversions and rounding
  3. Using the Math library
  4. Accumulating results - factorials
  5. Limitations of computer arithmetic

Objects and graphics

  1. The object of Objects
  2. Simple graphics programming
  3. Using graphical objects
  4. Graphing future value
  5. Choosing coordinates
  6. Interactive graphics - getting mouse clicks, handling textual input
  7. Graphics module reference - GraphWin Objects, Graphics Objects, Entry Objects, Displaying Images, Generating Colors, Controlling Display Updates (advanced)

Sequences: Strings, lists and files

  1. The string data type
  2. Simple string processing
  3. Lists as sequences 
  4. String representation and message encoding - programming an encoder
  5. String methods - programming a decoder
  6. Lists have methods too
  7. Encoding to encryption
  8. Input / Output as string manipulation - example application: date conversion, string formatting, better change counter
  9. File processing - multi-line strings, file processing, example program: batch usernames, file dialogs

Defining functions

  1. The function of functions
  2. Functions, informally
  3. Future value with a function
  4. Functions and parameters: The exciting details
  5. Functions that return values
  6. Functions that modify parameters
  7. Functions and program structure

Decision structures

  1. Simple decisions
  2. Two-way decisions
  3. Multi-way decisions
  4. Exception handling
  5. Study in design: max of three. Compare each to all, decision tree, sequential processing, use of python

Loop structures and Booleans

  1. For loops 
  2. Indefinite loops
  3. Common loop patterns - interactive, sentinel, file, nested
  4. Computing with Booleans - Boolean operators, Boolean algebra
  5. Other common structures - post-test loop, loop and a half, Boolean expressions as decisions
  6. Example - a simple event loop

Simulation and design

  1. Simulating racquetball - A simulation problem, analysis and specification, 
  2. Pseudo-random numbers
  3. Top-down design - Top-level design, separation of concerns, second-level design, designing simNGames, third-level design, finishing up, summary of design process
  4. Bottom-up implentation - unit testing, simulation results
  5. Other design techniques - prototyping and spiral development, the art of design

Defining classes

  1. Quick review of Objects
  2. Example program: Cannonball, program specification, designing the program, modularizing the program
  3. Defining new classes: multi-sided dice, projectile class 
  4. Data processing with class
  5. Objects and encapsulation: Encapsulating useful abstractions, putting classes in modules, module documentation, working with multiple modules
  6. Widgets: Example program: Dice roller, building buttons, building dice, the main program
  7. Animated Cannonball: Drawing the animated window, creating a shot tracker, creating an input dialog, the main event loop

Data collections

  1. Example problem: simple statistics
  2. Applying lists: Lists and arrays, list operations, statistics with lists
  3. Lists of records
  4. Designing with lists and classes
  5. Case study: Python calculator: Calculator as an object, constructing the interface, processing buttons
  6. Case study: Better cannonball animation: Creating a launcher, tracking multiple shots
  7. Non-sequential collections: Dictionary basics, dictionary operations, example program: Word frequency

Object-Oriented Design

  1. The process of OOD
  2. Case study: Racquetball simulation: Candidate objects and methods, implementing SimStats, implementing RBallGame, implementing Player, the complete program
  3. Case study: Dice poker: Program specification, identifying candidate objects, implementing the model, a text-based UI, developing a GUI
  4. OO concepts: encapsulation, polymorphism, inheritance

Algorithm design and recursion

  1. Searching: Simple searching program, linear seach, binary search, comparing algorithms
  2. Recursive problem solving: Definitions, functions, string reversal, anagrams, fast exponentiation, binary search, recursion vs. iteration
  3. Sorting algorithms: Naive sorting: selection sort, divide and conquer - merge sort, comparing sorts
  4. Hard problems:  Tower of Hanoi, the halting problem

Introduction to Computer Science Topics

(These topics are from Zelle, Python programming)


  1. Computers and Programs
  2. Writing Simple Programs
  3. Computing with Numbers
  4. Objects and Graphics
  5. Sequences: Strings, Lists and Files
  6. Defining Functions
  7. Decision Structures
  8. Loop Structures and Booleans
  9. Simulation and Design
  10. Defining Classes
  11. Data Collections
  12. Object-Oriented Design
  13. Algorithm Design and Recursion

Sub-Topics of the main topics in College Algebra

(From the same book. Only main topics listed here.)


Prerequisites 

  1. Modeling the real world with Algebra - using and making algebraic models 
  2. Real numbers
  3. Integer exponents and scientific notation
  4. Rational exponents and radicals
  5. Algebraic expressions
  6. Factoring 
  7. Rational expressions
  8. Solving basic equations
  9. Modeling with equations

Equations and Graphs

  1. Coordinate plane
  2. Graph of equations in two variables
  3. Lines
  4. Solving quadratic equations
  5. Complex numbers
  6. Solving other types of equations
  7. Solving inequalities
  8. Solving absolute value equations and inequalities
  9. Solving inequalities and equations graphically 
  10. Modeling variation

Functions

  1. About functions
  2. Graphs of functions
  3. Getting information from the graph of a function 
  4. Average rate of change of a function
  5. Linear functions and models
  6. Transformations of functions
  7. Combining functions 
  8. One to one functions and their inverses

Polynomial and Rational Functions

  1. Quadratic functions and models
  2. Polynomial functions and their graphs
  3. Dividing polynomials 
  4. Real zeros of polynomials 
  5. Complex zeros and the fundamental theorem of Algebra
  6. Rational functions
  7. Polynomial and rational inequalities

Exponential and Logarithmic Functions

  1. Exponential functions
  2. Natural exponential function
  3. Logarithmic functions
  4. Laws of logarithms
  5. Exponential and logarithmic equations
  6. Modeling with exponential functions
  7. Logarithmic scales

Systems of Equations and Inequalities

  1. Systems of linear equations in two variables
  2. Systems of linear equations in several variables 
  3. Partial fractions
  4. Systems of non linear equations
  5. Systems of inequalities

Matrices and Determinants

  1. Matrices and systems of linear equations
  2. Algebra of matrices 
  3. Inverses of matrices and matrix equations
  4. Determinants and Cramer's rule

Conic Sections

  1. Parabolas
  2. Ellipses
  3. Hyperbolas
  4. Shifted conics

Sequences and Series 

  1. Sequences and summation notation 
  2. Arithmetic sequences
  3. Geometric sequences
  4. Mathematics of finance
  5. Mathematical induction
  6. The binomial theorem

Probability and Statistics

  1. Counting
  2. Probability
  3. Binomial probaility
  4. Expected value 

College Algebra Topics

(These topics are from Cengage book, as below)


Broad topics:

  1. Prerequisites 
  2. Equations and Graphs
  3. Functions
  4. Polynomial and rational functions
  5. Exponential and logarithmic functions
  6. Systems of equations and inequalities 
  7. Matrices and determinants 
  8. Conic sections
  9. Sequences and series 
  10. Probability and Statistics
  11. Additional:
  12. Formulas and definitions
  13. Calculations and significant figures
  14. Graphing with graphing calculator
  15. Numbers (working with)
  16. Expressions (working with) 
  17. Equations (working with)
  18. Graphs (working with)

Sub-Topics of the main topics in Digital and Hardware Technology

(From same book. Only main topics listed here)


Major Topics and Sub-Topics:

Introductory Concepts

  1. Digital and analog quantities
  2. Binary digits, logic levels, and digital waveforms
  3. Basic logic functions
  4. Combinational and sequential logic functions
  5. Programmable logic
  6. Fixed-function logic devices
  7. Test and measurement instruments
  8. Introduction to troubleshooting

Number Systems, Operations, and Codes

  1. Decimal numbers
  2. Binary numbers
  3. Decimal to binary conversion
  4. Binary arithmetic 
  5. Complements of binary numbers
  6. Signed numbers
  7. Arithmetic operations and signed numbers
  8. Hexadecimal numbers
  9. Octal numbers 
  10. BCD - Binary coded decimal
  11. Digital codes 
  12. Error codes 

Logic Gates 

  1. Inverter
  2. AND gate
  3. OR gate
  4. NAND (Not-And) gate
  5. NOR (Not-Or?) gate
  6. Exclusive-OR and Exclusive-NOR gates
  7. Programmable logic
  8. Fixed-Function logic gates 
  9. Troubleshooting

Boolean Algebra and Logic Simplification 

  1. Boolean Operations and expressions
  2. Laws and rules of Boolean algebra
  3. DeMorgan's theorems
  4. Boolean analysis of logic circuits
  5. Logic simplification using Boolean algebra
  6. Standard forms of Boolean aglebra
  7. Boolean expressions of truth tables 
  8. Karnaugh map
  9. Karnaugh map SOP minimization
  10. Karnaugh map POS minimization
  11. Quine-McCluskey method
  12. Boolean expressions with VHDL 

Combinational Logic Analysis

  1. Basic combinational logic circuits
  2. Implementing combinational logic
  3. Universal property of NAND and NOR gates 
  4. Combinational logic using NAND and NOR gates 
  5. Pulse waveform operation
  6. Combinational logic with VHDL
  7. Troubleshooting

Functions of Combinational Logic 

  1. Half and full adders
  2. Parallel binary adders
  3. Ripple carry and look-ahead carry adders
  4. Comparators 
  5. Decoders
  6. Encoders 
  7. Code converters
  8. Multiplexers (data selectors)
  9. Demultiplexers
  10. Parity generators / checkers
  11. Troubleshooting

Latches, Flip-Flops and Timers

  1. Latches
  2. Flip-flops 
  3. Flip-flop operating characters
  4. Flip-flop applications
  5. One-shots
  6. Astable multivibrator
  7. Troubleshooting

Shift Registers

  1. Shift register operations
  2. Types of shift register data I/Os
  3. Bidirectional shift registers 
  4. Shift register counters
  5. Shift register applications 
  6. Logic symbols with dependency notation
  7. Troubleshooting

Counters 

  1. Finite state machines 
  2. Asynchronous counters
  3. Synchronous counters
  4. Up/down synchronous counters
  5. Design of synchronous counters
  6. Cascaded counters 
  7. Counter decoding 
  8. Counter applications
  9. Logic symbols with dependency notation
  10. Troubleshooting

Programmable Logic 

  1. SPLDs - Simple programmable logic devices
  2. CPLDs - Complex programmble logic devices
  3. Macrocell modes
  4. FPGAs - Field-programmable gate arrays
  5. Programmable logic software
  6. Boundary scan logic
  7. Troubleshooting

Data Storage 

  1. Semiconductor memory basics
  2. RAM - Random-Access Memory
  3. ROM - Read Only Memory
  4. Programmable ROMs
  5. Flash memory
  6. Memory expansion
  7. Special types of memories
  8. Magnetic and optical storage
  9. Memory hierarchy 
  10. Cloud storage 
  11. Troubleshooting

Signal Conversion and Processing 

  1. Analog-to-digital conversion
  2. Methods of analog-to-digital conversion
  3. Methods of digital-to-analog conversion
  4. Digital signal processing
  5. DSP - Digital Signal Processor 

Data Transmission

  1. Data transmission media 
  2. Methods and modes of data transmission
  3. Modulation of analog signals with digital data 
  4. Modulation of digital signals with analog data 
  5. Multiplexing and demultiplexing
  6. Bus basics 
  7. Parallel buses 
  8. USB - Universal Serial Bus
  9. Other Serial Buses
  10. Bus interfacing

Data Processing and Control 

  1. The computer system
  2. Practical computer system considerations
  3. Processor - basic operation
  4. Processor - addressing modes
  5. Processor - special operations
  6. Operating systems and hardware
  7. Programming
  8. Microcontrollers and embedded systems 
  9. SoC - System on Chip

Integrated Circuit Technologies 

  1. Basic operational characteristics and parameters
  2. CMOS circuits 
  3. TTL (bipolar) circuits 
  4. Practical considerations in the use of TTL
  5. Comparison of CMOS and TTL performance 
  6. ECL (Emitter-Coupled Logic) circuits
  7. PMOS, NMOS, and E2CMOS

Digital Hardware and Technology topics

(These topics are from Pearson, Floyd)


Topics in the Core of Technology / Digital Hardware:

  • Core Fundamentals 
  • Programmable Logic and PLD programming
  • Applied Logic

Some details of topics:

  1. Introductory Concepts
  2. Number Systems, Operations, and Codes
  3. Logic Gates 
  4. Boolean Algebra and Logic Simplification 
  5. Combinational Logic Analysis
  6. Functions of Combinational Logic
  7. Latches, Flip-Flops, and Timers
  8. Shift Registers
  9. Counters
  10. Programmable Logic
  11. Data Storage
  12. Signal Conversion and Processing 
  13. Data Transmission
  14. Data Processing and Control 
  15. Integrated Circuit Technologies