0% found this document useful (0 votes)
4 views8 pages

Computational-Thinking Reviewer

review time na review of the elite ba yan jae I think I should be able to get a nice day
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views8 pages

Computational-Thinking Reviewer

review time na review of the elite ba yan jae I think I should be able to get a nice day
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Computational thinking - problem-solving approach that involves breaking down large using logical

and algorithmic thinking

Example:

- Define the Problem


- Decompose
- Pattern Recognition
- Abstraction
- Algorithm Design
- Evaluation

Algorithm and Procedures

- fundamental concepts in computational thinking and problem-solving

Algorithm - step-by-step set of instructions

Procedures - systematic way of executing these algorithms

Numerical Computation

- linear equations using numerical methods like Gaussian elimination or iterative methods like Jacobi
or Gauss-Seidel.

Numerical algorithms - focus on approximating solutions to mathematical problems using numerical


values.

Examples include:

• Newton-Raphson method for finding roots of equations.


• Numerical integration methods like Simpson's rule or the trapezoidal rule.
• Optimization algorithms such as gradient descent.
• Fast Fourier Transform (FFT) for efficient calculation of Fourier transforms.

Symbolic Computation -Simplifying algebraic expressions or solving equations symbolically.

Algorithms: Symbolic computation involves manipulating mathematical expressions symbolically.


These algorithms focus on exact representations of mathematical objects and expressions.

Examples include:

• Polynomial factorization algorithms like the quadratic formula or the method of completing
the square.
• Symbolic differentiation and integration algorithms, such as the power rule or integration by
parts.
• Algebraic manipulation algorithms for simplifying expressions, such as collecting like terms
or expanding expressions.
• Symbolic solving techniques like substitution or elimination methods for solving systems of
equations symbolically.

While numerical computation emphasizes efficiency and approximation, symbolic computation


prioritizes exactness and manipulation of symbols.

Data Collection, Representation, and Analysis -crucial steps in extracting meaningful insights
from data.

• Data Collection: This involves gathering information from various sources, which could
be through surveys, experiments, sensors, or existing databases.
• Data Representation: Once the data is collected, it needs to be structured and organized
for analysis. This step involves representing the data in a format that is suitable for
processing and interpretation.
• Data Analysis: This is the process of inspecting, cleaning, transforming, and modeling
data to uncover patterns, trends, and relationships. Data analysis techniques can range
from simple statistical measures to advanced machine learning algorithms, depending
on the complexity of the data and the objectives of the analysis.

Problem Decomposition - the process of breaking down a complex problem into smaller, more
manageable parts or sub-problems. This approach allows for a more systematic and organized
problem-solving process.

Example

• Identify Main Objectives


• Decompose into Sub-Problems:
o a. Design and Layout:
o b. Content Creation:
o c. Development and Coding:
o d. Integration of Features:
o e. Testing and Debugging:
o f. Deployment and Maintenance:
• Assign Tasks and Prioritize

Importance of Computational Thinking

• Problem-Solving Skills
• Transferability
• Automation and Efficiency
• Data Literacy
• Critical Thinking and Creativity
• Preparation for the Future
• Collaboration and Communication

Applications of Computational Thinking

• Developing software and applications


• Designing algorithms for data analysis
• Solving optimization problems
• Creating simulations and models
Abstraction - is the process of focusing on essential qualities while ignoring irrelevant details. High
level view

Abstraction in Numerical Computation - the concept of a function abstracts the relationship


between inputs and outputs, enabling efficient computation without considering the internal
workings.

Abstraction in Symbolic Computation - Symbolic computation systems abstract mathematical


concepts, enabling computations involving variables, equations, and formulas

Types of Abstraction

• Data Abstraction: Focuses on hiding implementation details of data structures while


providing operations to manipulate them.
• Procedural Abstraction: Conceals the implementation of procedures (functions/methods),
allowing users to utilize them without understanding the underlying code.
• Control Abstraction: Abstracts control flow mechanisms, enabling the composition of higher-
level algorithms from simpler building blocks.

Benefits of Abstraction

• Simplicity
• Modularity
• Reusability
• Scalability

Practical Example:

Numerical Example: Abstraction in numerical libraries like NumPy allows users to perform complex
mathematical operations using simple, high-level functions.

Symbolic Example: Symbolic computation libraries like SymPy abstract mathematical expressions,
enabling symbolic manipulation of equations, differentiation, integration, etc.

Challenges and Considerations

• Performance
• Trade-offs
• Complexity Management

Automation refers to the use of technology to perform tasks with minimal human intervention.

automation involves leveraging algorithms, software tools, and programming techniques to


automate repetitive or complex computations.

• Numerical libraries like SciPy in Python automate numerical tasks such as root finding,
optimization, and integration, saving time and effort.

• tools like SymPy in Python automate tasks like simplification, expansion, differentiation, and
integration of symbolic expressions.

Benefits of Automation

• Efficiency
• Scalability
• Accuracy
• Productivity

Automation Techniques

• Algorithmic Automation: Utilizes algorithms to automate specific computational tasks, such


as solving equations, performing matrix operations, or simulating physical systems.
• Scripting and Programming: Automation through scripting languages like Python enables the
creation of custom automation workflows tailored to specific computational needs.
• Workflow Automation: Tools like Jupyter Notebooks facilitate the creation of automated
computational workflows, integrating code, documentation, and visualization in a single
environment.

Challenges and Considerations

• Algorithm Selection
• Error Handling
• Maintenance

Practical Applications

• Numerical Automation Example: Automated finite element analysis software like ANSYS
automates complex simulations in engineering, allowing for the analysis of structural
integrity, fluid dynamics, and heat transfer.
• Symbolic Automation Example: Symbolic math software like Maple automates symbolic
computations in mathematics, physics, and engineering, aiding in theorem proving, equation
solving, and symbolic manipulation.

Simulation - imitation of the operation of a real-world process or system over time.

predict the behavior of physical systems, analyze data, and test hypotheses.

Numerical Simulation – widely used in physics, engineering, and finance for modeling dynamic
systems, predicting outcomes, and optimizing designs.

• Example : motion of a pendulum (Euler's method or Runge-Kutta methods)

Symbolic Simulation - enables the manipulation and analysis of complex systems symbolically,
facilitating tasks such as system identification, stability analysis, and control design

• Example : simulating the behavior of an electrical circuit using symbolic equations derived
from Kirchhoff's laws.

Benefits of Simulation

• Prediction
• Understanding
• Risk Mitigation
• Cost Savings

Simulation Techniques:

• Monte Carlo Simulation: Monte Carlo methods involve random sampling to obtain numerical
results. They are used for modeling uncertainty and variability in systems, such as in financial
modeling or risk analysis.
• Finite Element Analysis (FEA): FEA is a numerical technique for solving partial differential
equations to simulate physical phenomena like stress, heat transfer, and fluid flow in
engineering and structural analysis.

• Agent-Based Modeling: Agent-based modeling involves simulating the behavior of individual


agents within a system to study emergent phenomena, such as crowd dynamics, ecosystem
interactions, or social networks.

Challenges and Considerations

• Model Accuracy
• Computational Resources
• Complexity Management

Practical Applications

• Numerical Simulation Example: Computational fluid dynamics (CFD) simulations are used in
aerospace engineering to model airflow around aircraft, optimizing aerodynamic
performance and fuel efficiency.

• Symbolic Simulation Example: Symbolic simulation tools like MATLAB Simulink are used in
control systems engineering to simulate the behavior of dynamic systems, design
controllers, and perform system analysis and optimization.

Parallelization - involves breaking down computational tasks into smaller subtasks

, parallelization aims to exploit the computational resources efficiently to reduce execution time
and handle larger problem sizes.

• Parallelization in Numerical Computation - Numerical libraries such as MPI (Message Passing


Interface) or OpenMP provide APIs for implementing parallel algorithms in numerical
computations.

Parallelization in Symbolic Computation -Mathematica or Maple incorporate parallel algorithms


to speed up symbolic computations, especially for large-scale problems.

Benefits of Parallelization

• Speed-up
• Scalability
• Efficiency

Parallelization Techniques

• Data Parallelism: In data parallelism, the same operation is performed concurrently on


different subsets of data. For example, parallelizing matrix operations in numerical
computations.

• Task Parallelism: Task parallelism involves dividing a computation into smaller tasks that can
be executed independently. For example, parallelizing the evaluation of different branches
in a symbolic computation tree.

Challenges and Considerations

• Load Balancing
• Communication Overhead
• Synchronization
Practical Applications

• Numerical Parallelization Example: Parallelizing finite element simulations for structural


analysis in engineering to accelerate the analysis of large-scale models and optimize design
parameters.

• Symbolic Parallelization Example: Parallelizing symbolic integration computations in


mathematics to speed up the evaluation of complex integrals and enable faster theorem
proving.

Computational error refers to the discrepancy between the computed value and the true value of a
quantity.

Types of Computational Errors

› Round-off Error: Arises from representing real numbers with finite precision.

› Truncation Error: Occurs when approximating infinite processes with finite steps.

› Symbolic Error: Arises from approximating exact mathematical expressions by symbolic


computation methods.

Numeric Computation Errors

› Round-off Error:

– Example: Addition/Subtraction of numbers with different precision.

› Truncation Error:

– Example: Approximating integrals using numerical methods such as the Trapezoidal


Rule or Simpson's Rule.

Techniques to Mitigate Numeric Errors

› Use higher precision arithmetic.

› Implement error analysis techniques.

› Employ adaptive algorithms that adjust step sizes based on error estimates.

Symbolic Computation Errors

› Symbolic errors arise from the inherent limitations of algorithms used to perform symbolic
computations.

› Example: Simplifying expressions with radicals may introduce approximation errors.

Techniques to Address Symbolic Errors

› Utilize exact arithmetic when possible.

› Employ algebraic simplification techniques cautiously, considering the impact on precision.

› Incorporate error bounds in symbolic computations to estimate the magnitude of errors.


Applications and Importance

› Computational errors have profound implications across various fields:

– Scientific Computing: Precision is crucial for accurate simulations and predictions.

– Engineering: Errors can lead to design flaws or malfunctioning systems.

– Finance: Precision in numerical calculations is vital for accurate financial modeling


and risk assessment.

Case Study

› Theriac 25

– One notable real-world example where computational errors led to significant


consequences is the case of the Therac-25 radiation therapy machine incidents in
the 1980s.

Root Finding Algorithm

- It's finding the values of x to hold this equality

Root Finding Algorithm

• Bisection

• Secant Method
• Newton's Method (aka Newton-Raphson)

You might also like