Programming Crash Course for InfoSoft Consulting Corp.
Scholars
2023-2024
Prepared by: James Bryan R. Torillo
Business Application Developer
Programming Basics
The basics of programming encompass fundamental concepts and principles that apply to almost all programming
languages. Here are the key elements:
1. Variables: Variables are used to store data in memory. They have a name and a value, which can be of
different types like numbers, strings, Booleans, etc.
2. Data Types: Programming languages have different data types, such as integers, floating-point numbers,
strings, Booleans, arrays, and more. Understanding data types is essential for handling and manipulating
data effectively.
3. Operators: Operators are symbols used to perform operations on variables and values. Common operators
include arithmetic (+, -, *, /), comparison (==, !=, >, <, etc.), and logical (and, or, not).
4. Control Structures: Control structures allow you to control the flow of your program. They include
conditional statements (if/else, switch) to make decisions and loops (for, while) to execute code repeatedly.
5. Functions: Functions are blocks of reusable code that perform a specific task. They help organize code and
promote modularity.
6. Input/Output (I/O): I/O refers to the process of taking input from the user or reading from external
sources and displaying output to the user or writing to external destinations.
7. Comments: Comments are lines in the code that are not executed but provide human-readable
explanations for the code's functionality. They help in code documentation and readability.
8. Debugging: Debugging involves identifying and fixing errors in the code. It is a crucial skill for any
programmer.
9. Scope: Scope defines where a variable or function is accessible within a program. Understanding scope is
essential for avoiding naming conflicts and managing memory efficiently.
10. Data Structures: Data structures are collections of data organized in specific ways to enable efficient
operations. Common data structures include arrays, lists, stacks, queues, and trees.
11. Algorithms: Algorithms are step-by-step procedures for solving specific problems or performing tasks.
Learning algorithms helps in developing efficient and optimized code.
12. Object-Oriented Programming (OOP): OOP is a programming paradigm that organizes code into objects
with properties (attributes) and behaviors (methods). OOP promotes code reusability and modularity.
13. Version Control: Version control systems like Git allow programmers to manage changes to their
codebase, collaborate with others, and track project history.
C# Programming (The shortest or the fastest way to learn C#)
Total Estimated Time of Completion: 30-40 Hours (Approx. 4/5 Regular Working Days)
Equipment’s Needed: PC / Laptop with any Visual Studio IDE installed
Lesson 1: Introduction to C# Estimated Time of Completion: 1 Hour
Video Tutorial: IDE & Hello World Tutorial
What is C# and its history
Installing Visual Studio (IDE for C#)
Your first C# program: Hello World!
Lesson 2: Variables and Data Types Estimated Time of Completion: 2 Hours
Video Tutorial: Variables & Datatypes
Declaring variables
Data types (int, float, double, char, string, bool)
Type conversion and casting
Lesson 3: Basic Input and Output Estimated Time of Completion: 1 Hour
Video Tutorial: User Input and Output
Console Input (Console.ReadLine())
Console Output (Console.WriteLine())
Lesson 4: Operators and Expressions Estimated Time of Completion: 2 Hours
Video Tutorial: Operators
Arithmetic operators (+, -, *, /, %)
Comparison operators (>, <, >=, <=, ==, !=)
Logical operators (&&, ||, !)
Lesson 5: Conditional Statements Estimated Time of Completion: 3 Hours
Video Tutorial: Conditional Statements
If-else statements
If...else...if statements
Lesson 6: Switch Statements Estimated Time of Completion: 2 Hours
Video Tutorial: Switch Statements
Switch statements
Lesson 7: Loops Estimated Time of Completion: 3 Hours
Video Tutorial #1: While & Do While Loop
Video Tutorial #2: For Loop
While loop
For loop
Do-while loop
Lesson 8: Arrays Estimated Time of Completion: 3 Hours
Video Tutorial: Working with Arrays
Declaring and initializing arrays
Accessing array elements
Iterating through arrays
Lesson 9: Functions Estimated Time of Completion: 2 Hour
Video Tutorial: Methods/Functions, Parameters, Arguments
Defining functions with parameters and return values
Calling functions
Function overloading
Lesson 10: Object-Oriented Programming (OOP) Basics Estimated Time of Completion: 3 Hours
Video Tutorial #1: Classes & Objects | OOP
Video Tutorial #2: Constructors | OOP
Video Tutorial #3: Object Methods | OOP
Classes and Objects
Constructors
Properties and Methods
Lesson 11: Inheritance Estimated Time of Completion: 2 Hours
Video Tutorial: Inheritance | OOP
Creating a class hierarchy
Base and derived classes
Lesson 12: Encapsulation Estimated Time of Completion: 2 Hours
Video Tutorial: Encapsulation | OOP
Access modifiers (public, private, protected)
Getters and Setters (Properties)
Lesson 13: Polymorphism Estimated Time of Completion: 2 Hours
Video Tutorial: Polymorphism | OOP
Method overriding
Abstract classes and methods
Interfaces
Lesson 14: Abstraction Estimated Time of Completion: 2 Hours
Video Tutorial: Abstraction | OOP
Abstraction Classes
Abstraction Methods
Interfaces
Lesson 15: Exception Handling Estimated Time of Completion: 1 Hour
Video Tutorial: Exception Handling
Handling exceptions (try-catch blocks)
Throwing exceptions
Lesson 16: Collections Estimated Time of Completion: 2 Hours
Video Tutorial: Arrays, List and Collections
Lists, Dictionaries, and other collection types
Lesson 17: Delegates and Events Estimated Time of Completion: 2 Hours
Video Tutorial: Delegates & Events
Understanding delegates
Creating and using events
Lesson 18: Asynchronous Programming Estimated Time of Completion: TBA
Video Tutorial: Async, Await and Tasks
Introduction to async and await
Asynchronous tasks
Lesson 19: Working with Strings Estimated Time of Completion: 1 Hour
Video Tutorial: Working with Strings
String manipulation
Regular expressions
Lesson 20: Final Project
Bring together the concepts learned in a small C# project
Data Structures and Algorithms
Total Estimated Time of Completion: 32-35 Hours (Approx. 4/5 Regular Working Days)
Equipment’s Needed: PC / Laptop with any Visual Studio IDE installed
Lesson 1: Introduction Estimated Time of Completion: 1 Hour
Video Tutorial: Introduction to Data Structures
What are data structures and algorithms
Importance of understanding data structures and algorithms
Lesson 2: Arrays Estimated Time of Completion: 3 Hours
Video Tutorial #1: Overview of Arrays and Methods
Video Tutorial #2: Intro to Classes & Objects - Part 1
Video Tutorial #2: Intro to Classes and Objects - Part 2
Introduction to arrays and their properties
Array operations: access, insertion, deletion, searching
Time and space complexity analysis for array operations
Lesson 3: Linked Lists Estimated Time of Completion: 2 Hours
Video Tutorial: Intro to Linked List
Singly linked lists and doubly linked lists
Linked list operations: insertion, deletion, searching
Time and space complexity analysis for linked list operations
Lesson 4: Stacks and Queues Estimated Time of Completion: 2 Hours
Video Tutorial: Intro to Stacks and Queues
Introduction to stacks and their LIFO (Last-In-First-Out) behavior
Stack operations: push, pop, peek
Introduction to queues and their FIFO (First-In-First-Out) behavior
Queue operations: enqueue, dequeue, peek
Applications of stacks and queues
Lesson 5: Trees Estimated Time of Completion: 2 Hours
Video Tutorial: Introduction to Trees
Introduction to trees and their hierarchical structure
Binary trees and binary search trees
Tree traversals: Inorder, Preorder, Postorder
Balancing trees: Red-Black Trees and AVL Trees
Lesson 6: Graphs Estimated Time of Completion: 2 Hours
Video Tutorial: Introduction to Graphs
Understanding graphs and their components (nodes/vertices and edges)
Graph representations: adjacency matrix, adjacency list
Graph traversals: Breadth-First Search (BFS) and Depth-First Search (DFS)
Applications of graphs
Lesson 7: Hashing Estimated Time of Completion: 2 Hours
Video Tutorial: Hash Tables and Dictionaries
Introduction to hashing and hash tables
Hash functions and collision resolution techniques
Applications of hashing
Lesson 8: Heaps Estimated Time of Completion: 3 Hours
Video Tutorial: Intro to Heaps
Introduction to heaps and their properties (min heap and max heap)
Heap operations: insertion, deletion, extract-min/max
Applications of heaps (e.g., priority queues)
Lesson 9: Sorting Algorithms Estimated Time of Completion: 3 Hours
Video Tutorial #1: Intro to Quicksort
Video Tutorial #2: Intro to Sorting Algorithms
Video Tutorial #3: Introduction to Selection Sort
Video Tutorial #4: Introduction to Bubble Sort
Video Tutorial #5: Introduction to Insertion Sort
Video Tutorial #6: Introduction to Merge Sort
Bubble sort, Selection sort, Insertion sort
Merge sort, Quick sort, Heap sort
Comparison of sorting algorithms based on time complexity
Lesson 10: Searching Algorithms Estimated Time of Completion: 3 Hours
Video Tutorial #1: Intro to Binary Search
Video Tutorial #1: Intro to Linear Search
Linear search
Binary search
Lesson 11: Greedy Algorithms Estimated Time of Completion: 2 Hours
Video Tutorial: Introduction to Greedy Algorithms
Introduction to greedy algorithms and their approach
Solving problems using greedy strategies
Lesson 13: Divide and Conquer Estimated Time of Completion: 2 Hours
Video Tutorial: Introduction to Divide and Conquer
Understanding the divide and conquer paradigm
Applying divide and conquer techniques to solve problems
Lesson 14: Backtracking Estimated Time of Completion: 1 Hour
Video Tutorial: Introduction to Backtracking
Introduction to backtracking and its use in problem-solving
Implementing backtracking algorithms
Lesson 15: Space and Time Complexity Analysis Estimated Time of Completion: 2 Hours
Video Tutorial: Intro to Big O Notation and Time Complexity
Understanding Big O notation and analyzing algorithm complexity
Evaluating the efficiency of algorithms and data structures
Database Management System
Total Estimated Time of Completion: 80 Hours (Approx. 10 Regular Working Days)
Equipment’s Needed: PC / Laptop with any SQL Server Management Studio Installed
Fundamentals of Database Management cover the core concepts and principles involved in the design, creation,
and maintenance of databases. Databases are essential for storing and managing large volumes of data efficiently.
Here are the key fundamental concepts:
1. Data and Information:
Understand the difference between raw data and processed information.
Recognize the importance of data integrity, accuracy, and reliability.
2. Database Management System (DBMS):
Learn about DBMS, which is software that enables users to interact with databases.
Understand the role of DBMS in data storage, retrieval, and manipulation.
3. Database Models:
Study different database models like relational, hierarchical, network, and NoSQL.
Relational databases, based on tables and relationships, are the most widely used.
4. Entity-Relationship (ER) Diagrams:
ER diagrams help visualize the database's logical structure, showing entities, attributes, and
relationships.
5. Tables and Schemas:
Understand tables as the basic unit of data storage in a relational database.
Learn about database schemas, which define the structure and organization of data.
6. SQL (Structured Query Language):
SQL is the language used to interact with relational databases.
Learn to write SQL queries for data retrieval, insertion, deletion, and updating.
7. Data Integrity:
Maintain data integrity by setting constraints like primary keys, foreign keys, and unique
constraints.
Ensure data remains consistent and accurate throughout the database.
8. Normalization:
Normalize database tables to eliminate redundancy and improve data integrity.
Learn about different normal forms (1NF, 2NF, 3NF, etc.).
9. Indexing and Optimization:
Indexes speed up data retrieval by creating pointers to data within tables.
Optimize database performance by tuning queries and using appropriate indexing strategies.
10. Transactions and Concurrency Control:
Understand transactions as sets of operations that should be executed together, all-or-nothing.
Implement concurrency control mechanisms to ensure data consistency in multi-user
environments.
11. Backup and Recovery:
Learn about database backup strategies to safeguard against data loss.
Understand recovery techniques to restore the database in case of failures.
12. Security and Access Control:
Implement access control to restrict user access to data and operations.
Learn about authentication, authorization, and encryption to ensure data security.
13. Database Design and Normalization:
Design databases by defining entities, attributes, and relationships.
Normalize the database to minimize data redundancy and ensure data integrity.
14. Data Modeling:
Create data models to represent the structure and flow of data within the organization.