Computacional Methods

Objectives

Knowledge

  • The essential constructions of an imperative programming language.
  • The tools of a software development system.
  • Some fundamental notions of relational databases.

Application

  • Decompose a problem into simpler problems.
  • Design an algorithm and programs (in an imperative programming language) for solving a simple problem.
  • Test a program in a given programming environment.
  • Design a simple Relational database
  • State a very simple SQL query.

Soft-Skills

  • Ability to do a programming / database project.
  • Skills in time management.

Program

  1. Introduction to PYTHON
    1. Basic Data Types
      • Numeric, Boolean, Characters.
    2. Data Structures
      • Arrays (Vectors, Matrices and Multi-arrays)
      • Strings
      • Strutures
    3. Basic Operations
      • Numerical Expressions
      • Array Operations (in MATLAB)
      • Scripts
  2. Programming (Imperative)
    1. Program Control
      • Sequential Execution
      • Conditional Execution (If)
      • Cycles (For, While)
    2. Functions
      • Nested and Recursive Functions
    3. Input-Output
      • Operation Systems and File Types
      • Text Files (Reading from / Writing to)
      • Basic Text Processing
  3. Algorithms
    1. Search in Arrays
      • Sequential (unsorted arrays)
      • Bipartite (Sorted Arrays)
      • Complexity Analysis
    2. Sorting algorithms
      • Bubble, Insertion, Quick and Merge Sort
      • Correctness and Complexity
    3. Simulation
      • Random Variables and Processes
      • Automata (State and Transitions)
    4. Graph Algorithms
      • Test for Connectedness
      • Minimum Spanning Trees (Prim)
      • Shortest Distances (Floyd-Wrashall)
      • Correctness and Complexity
  4. Introduction to Databases
    1. Relational Databases
    2. Modelling and Design
    3. Normalisation
    4. Queries (SQL)(SQL)

Bibliography

  • Allen B. Downey, Physical Modeling in MATLAB.