Table of Contents
Introduction to Computer Science
- Importance, Use, and Value of Computing and Informatics
- Computer Scientist Profile
- Computer Components and the Von Neumann Model (Data, Hardware, and Software)
- Databases and Information Systems
- Networks, Internet, and World Wide Web
- Computer/Network/System Architecture
- Operating Systems and Virtualization
- Computer/Network/System Security
- Computer Graphics and Visualization
- Human-Computer Interaction (HCI) and UI/UX
- Software Engineering
- Artificial Intelligence
- Societal, Ethical, Legal, Professional Issues, Concerns, and Considerations
- Problem Solving and Algorithmic Thinking
Programming I
Setting Up and Getting Started
- Set Up Windows OS
- Set Up VS Code
- Set Up Git/GitHub
- Set Up C# and .Net in VS Code
- Set Up Java in VS Code
- Set Up Python in VS Code
- Set Up Node.JS in VS Code
- Writing and Running (Debugging) Your First Program
- Understanding Source Code (Syntax, Case-Sensitivity)
- Understanding Compilation (Building, Tasks, Scripts, Compile-Time Errors)
- Understanding Execution (Breakpoints, Console Outputs, Runtime Errors)
- Understanding IDE UI/UX (Shortcuts and Feedback)
Data Types I
- Primitive (Built-In) and Wrappers (Object-Based)
- Variables and Constants (const/final/readonly)
- Literals
Operators I
- Unary (
+, -, ++, --)
- Arithmetic (
+, -, *, /, %, ^, **)
- Assignment (
=, +=, -=, *=, /=)
- Relational (
==, !=, <, <=, >, >=)
- Logical or Boolean (
!, ||, &&)
- Ternary (
? :)
Expressions I
- Declarations and Initializations (Naming Hard Rules and Conventions)
- Operator Precedence and Parenthesis
- Implicit and Explicit Convertion (Truncation, Promotion, Casting, Parsing)
- Overflow, Division By Zero
- String and Character Utilities
- Escaped Characters
- Concatenation and Formatting
- IsDigit / IsLetter
- IsNullOrEmpty / IsNullOrWhiteSpace
- IsLowerCase / IsUpperCase
- ToLowerCase / ToLowerCase
- Contains / IndexOf
- Substring / Slice
- Split / Join
- Verbatim or Multi-Line (
@, """, \\)
- Interpolated (
$, `, f)
Control Structures I
- If, Else-If, and Else
- Switch
- Loops (While, Do-While, For, For-Each)
Data Structures I
Functions I
- Invocation or Call
- Arguments
- Return Type
Input/Output I
- Console I/O
- String Parsing
- Input Validation
Documentation I
- Line or Inline Comments (
// or #)
- Block Comments (
/* ... */)
- Consistent Formatting (Indentation, Long-Lines Breaking)
Programming II
Structured Programming (avoid gotos, breaks, continues, and multiple returns)
Modularization and Code Reuse
Data Types II
Operators II
- Null-Coalescing (
??)
- Null-Forgiving (
!)
Expressions II
- Lambda or Arrow or Anonymous Functions (
=> or ->)
- Data Flow Pipelines (Map-Reduce, Pipe-and-Filter, Streams)
Control Structures II
- Nested Loops and Loop Control (break, continue, labels, return)
- Exception Handling (Try-Catch-Finally)
- Resource Management (Using, Try-With-Resources)
Data Structures II
- Multi-Dimensional Arrays (Matrices)
- Enums
- Structs, Records, and Tuples
- Concrete Collections (Array/Linked List, Hash Tables/Maps/Sets, Dictionaries, Key-Value Pairs)
Functions II
- Custom Definitions
- Parameters (By Copy, By Reference)
- Variable Scope/Lifetime and Hiding/Masking/Shadowing
Input/Output II
Documentation II
- Doc Comments (
/** ... */)
- Code Readability and Style Guides
Programming III
Object-Oriented Programming (OOP)
- Terminology (Fields, Methods, Class/Instance Members, State, Inner Classes)
- Fundamental Concepts (Encapsulation, Inheritance, Abstraction, Polymorphism)
- Structure and Organization (Properties, Constructors, Destructors, Getters, Setters)
- Common Behaviors (ToString, Equals, GetHashCode)
- Design Patterns (Factory, Singleton, Observer)
Data Types III
- Access Modifiers (public, private, protected, default, internal, const, final, readonly, sealed, static)
- Non-Access Modifiers (abstract, virtual, override, volatile, transient, synchronized, native)
- Type Systems: Static vs. Dynamic, Strong vs. Weak
Operators III
- Type Checks and Casting (
instanceof, is, is not, as)
- Bit-Wise (
~, |, &, ^, <<, >>, >>>, |=, &=, ^=)
- Overloading
Expressions III
- Generic and Templates
- Truthy / Falsy
- Short-Circuiting Pipe or Processing (
|, ||, &, &&, |>)
- Recursion
- Regular Expressions
Control Structures III
- Asynchronous Control (Promises)
- Async/Await
- Then-Catch-Finally
Data Structures III
- Classes, Abstract Classes, and Interfaces
- Abstract Collections (List, Stacks, Queues, Deques, Maps, Sets)
- Memory Management and Garbage Collection (new, finalize, delete)
Functions III
- (Signature) Overloading and Default Values
- Invocations with Named Arguments
- (Definition) Overriding
- Higher-Order Functions and Closures
Input/Output III
Documentation III
- Annotations and Metadata (
@)
- Version Tracking (Git/GitHub Commit Messages/History/Log)
Back to top ↑