0% found this document useful (0 votes)
6 views

Week 1 Algorithm and Problem Solving - Tagged

problem somvijg

Uploaded by

abigail.marg6
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Week 1 Algorithm and Problem Solving - Tagged

problem somvijg

Uploaded by

abigail.marg6
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Today

• Course Overview and Objectives


• Critical Path and Administrative Details
• Introduction to programming and algorithms

Programming
Course Objectives
1.Understand Fundamental Concepts relevant to Algorithm and Programming
◦ Grasp the core principles of algorithms and programming and basic data structures.
◦ Understand fundamental programming concepts and paradigms

2.Develop Problem-Solving Skills:


◦ Cultivate analytical thinking and apply systematic approaches to design algorithms
◦ Learn fundamentals of Algorithm Design

3.Implement Algorithms in Code:


◦ Translate algorithmic concepts into correct and readable code.
◦ Solve real-world problems by implementing algorithms in a programming language.
◦ Test, debug, and refine implementations to meet problem constraints.

4.Cultivate a Mindset for Continuous Learning - next steps:


◦ Advanced data structures and Algorithms in computing
◦ Understand and apply concepts of time and space complexity, analyze algorithm efficiency
◦ Learn to evaluate algorithm performance using Big O, Big Omega, and Big Theta notations.
◦ Compare and contrast the efficiency of different algorithms to select the most suitable one.

The objective is to lay the groundwork for students in both the theoretical and practical aspects of algorithms and
programming, equipping them to for more advanced studies in programming, and ultimately tackle complex
computational problems in the real world.
Course Overview
1. Knowledge of Concepts
• Detailed explanations of core topics.
• High level theoretical frameworks and models.
• Historical context and evolution of ideas.
• Format:
◦Lectures (in-person or online).
◦Quizzes and Exams
2. Problem-Solving and Algorithm
• Step-by-step breakdown of algorithms design
• Tools - Pseudocode and Flowchart
• Demonstrate practical applications of concepts through problem-solving - Examples illustrating
concepts in action.
• Format:
◦In-class activities and Group discussions.
3. Hands-on: Programming
• Apply learned concepts through programming exercises.
• Introduction to Elementary algorithms
• Coding challenges that mirror lecture content and require implementation of algorithms
• Format:
◦Labs and Assignments.
◦Collaborative discussion board
◦Exams or Group projects
Critical Path and Administration
Critical Path - course structure, expectations, and administrative details.

• Timeline of the course including key milestones (exams and deadlines).


• Sequence of topics to ensure smooth progression.
• Grading policy and scheme.
• Attendance and participation requirements.
Algorithms: A General View
Definition: An algorithm refers to any systematic, step-by-step method for accomplishing
a task or solving a problem. In daily life, these are typically informal and may vary from
person to person.
Examples:
•Cooking Recipe: A series of steps to prepare a meal, including ingredients (input) and
instructions (procedure), such as chopping vegetables, boiling water, and mixing
ingredients in a specific order.
•Travel Directions: A set of steps or instructions for reaching a destination (e.g., turn
left, drive straight, etc.).
•Course Registration Instructions: A step-by-step guide to help register courses
Characteristics:
•Flexibility: Life algorithms can be adjusted on the fly depending on the situation or
personal preferences.
•Unstructured: They might not follow strict rules, and there can be variations in
execution.
•Subjective: Different people may approach the same problem with different steps.
• Involves human judgment: These algorithms may involve making subjective
decisions or assumptions based on experience or c
Algorithms in CS
Definition: In computer science, an algorithm is a formal, precise, and well-defined set of
instructions that a computer follows to solve a specific problem or perform a task.
Examples:
•Sorting Algorithms: Methods for organizing data in a specific order, such as Bubble Sort
or Quick Sort.
•Search Algorithms: Procedures like Binary Search or Depth-First Search to find specific
data within a collection

Characteristics:
•Precise and Formal: Each step must be unambiguous, with a clearly defined input and
output.
•Structured: Algorithms must follow strict rules and be optimized for efficiency and
accuracy.
•Executable by Machines: These algorithms must be translatable into a programming
language for execution by computers.

Purpose: To automate processes, solve problems efficiently, and process large


amounts of data with minimal human intervention.
Computer Programs
Definition: A computer program is a set of instructions that a
computer executes to perform a specific task.
Examples: OS, Web browsers, Word/Excel, Games etc
Purpose: Solve problems - automate tasks, perform functions or
provide services
Algorithm vs Program
Algorithm:
• It is a high-level description of the solution to a problem
• Independent of any specific programming language or platform.

Program:
• A concrete and executable implementation of an algorithm
using a particular programming language.
• It consists of code written in a programming language
• It can be executed by a computer to perform a specific task or
solve a problem
Programming
• Definition:
The process of writing instructions (code) for a computer to execute.

• Programming Languages: Python, Java, C++, etc.


• Skills Involved:
- Problem-solving
- Logical thinking
- Knowledge of a programming paradigms and languages
Algorithm vs Program
Algorithm is conceptual and generic
• They focus on the logical and computational aspects of
problem-solving without considering specific syntax or
implementation details.
• A design / A plan for solving a computational problem

Programs are concrete and specific


• Programming language specific - adheres to the rules and
syntax of a particular
• Machine-executable
Software Development Life Cycle

1. Requirement
2. Design
3. Implementation
4. Testing
5. Deployment
Implementation (Programming)
1. Problem Analysis
• Problem Solving: What to do, What I know, What I need
2. Logic Generation
• Algorithm: Steps to solve the problem (how)
3. Coding:
• Programming: translating the logic plan to executable code
• Debugging and Unit Testing
Computational Problem
Algorithm
Algorithms serve as a foundation for program development
and help programmers plan and design their code
effectively.

• Language Independent
• Well defined problem scope
• Well defined inputs
• Well defined steps/procedure
• Well defined outputs
• Finiteness
Algorithm Design

1. Understand the problem (Analyze / Breakdown)


2. Develop and design algorithm ( input, output, basic
structure and flow control) - pseudocode or flowchart
3. Check correctness
4. Refine the algorithm
5. Complexity Analysis

You might also like