Programming Crash Course Guide

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

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.

You might also like