Computer programming is the process of designing and writing sets of instructions that a computer can execute
The importance of computer programming is that it is a skill that is in highdemand and can lead to a high-paying job.
Key steps in programming: Problem solving, algorithm design, coding, testing and debugging, maintenance and optimization
Types of Software Applications:
Desktopapplications
Web applications
Mobile apps
Embedded systems software
Games
System software
Give the 8 algorithms
Searching Algorithms:
Sorting Algorithms:
Graph Algorithms:
Dynamic Programming:
Backtracking Algorithms:
Greedy Algorithms:
Divide and Conquer Algorithms:
String Matching Algorithms:
ProblemSolving - Identifying the problem to be solved and breaking it down into smaller, manageable subproblems.
2. AlgorithmDesign - Developing a logical sequence of steps (algorithm) to solve the problem efficiently and correctly.
Coding - Translating the algorithm into a specific programming language by writing code that a computer can understand and execute.
Testing and Debugging - Checking the program for errors (bugs) and fixing them to ensure the program behaves as expected.
Maintenance and Optimization - Updating and improving the program as needed, optimizing its performance, and adapting it to changes in requirements or technology.
two types of searching algorithm 1.Linear - checks each element in a list 2. Binary - searches a sorted array
Sorting Algorithms:
Bubble Sort - Repeatedly steps
Insertion Sort - one element at a time
Selection Sort - unsorted portion of the array
Merge Sort - Divides the array
Quick Sort - element as pivot
Graph Algorithms:
Depth-First Search - Explores as far as possible
Breadth-First Search - Explores all neighbors
Dijkstra's Algorithm - shortest path between nodes
Minimum Spanning Tree Algorithms (Prim's Algorithm, Kruskal's Algorithm) - Finds the minimum spanning tree of a graph.
Dynamic Programming:
Breaks down a problem into smaller subproblems
Backtracking Algorithms:
Systematically searches for a solution to a problem like soduko
Greedy Algorithms:
Makes a series of choices like huffman coding
1. Divide and Conquer Algorithms
Breaks down a problem into smaller subproblems
String Matching Algorithms substring within a larger string