Skip to content

Latest commit

 

History

History
executable file
·
182 lines (156 loc) · 4.89 KB

File metadata and controls

executable file
·
182 lines (156 loc) · 4.89 KB

Today

  • Why you need to learn Linux?
  • Why you need to learn Python?
  • Course contents review
  • Development environment setup

Course contents

Linux (basic)

Back to Top

  • Linux file system navigation (ls, cd, cp, mv, rm, tree)
  • File viewing and manipulation (less, grep, wc, tee, vim, nano)
  • Getting help (man, tlrd, whatis, whereis, info, apropos)
  • Package management (apt, snap, flatpack, aptitude)
  • User management (whoami, id, sudo, useradd, passwd, chown, chmod)
  • Processes and jobs management (ps, pstree, kill, nice, jobs, fg, bg)
  • System monitoring (lsb_release, uname, w, uptime, top, df, du, free, iostat)
  • Networking (host, hostname, ping, ifconfig, ip, netstat, wget, curl)

Linux (scripting)

Back to Top

  • Command structure
  • Compound commands
  • Redirections
  • Script files
  • Wildcards and globbing
  • Variables
  • Flow control
  • Loops
  • Functions

Linux (advanced topics)

Back to Top

  • zsh
  • ssh and remote management
  • tmux
  • File transfer and management (scp, rsync)
  • Services (systemd)
  • Some advanced commands (sed, awk, xargs, parallel, gnuplot)

Python (basic)

Back to Top

  • Numbers, strings, ...
  • Flow control
  • Loops
  • Functions
  • Data structures
  • Modules
  • I/O

Python (oop)

Back to Top

  • Introduction to OOP
  • Methods
  • Some useful classes (dataclass, enum, namedtuple, ...)
  • Inheritance
  • ABCs
  • Protocols

Python (advanced topics)

Back to Top

  • Variables (scope, mutability and copy)
  • Comprehensions
  • Generators
  • Closures
  • Decorators
  • Iterators
  • Descriptors
  • Exceptions
  • Context managers
  • Functional programming
  • Overloading
  • Data methods
  • SOLID

Python (standard libraries)

Back to Top

  • os: Interfaces with operating system functionality.
  • sys: Interacts with the Python interpreter.
  • pathlib: Object-oriented file system path manipulation.
  • collections: Specialized container datatypes.
  • itertools: Tools for efficient looping.
  • functools: Higher-order functions and operations on callable objects.
  • operator: Function equivalents of arithmetic and comparison operators.
  • argparse: Parser for command-line options, arguments, and sub-commands.
  • logging: Flexible logging system.
  • json: JSON serialization and deserialization.
  • pickle: Object serialization and deserialization.
  • socket: Interface for network communication.
  • http.server: Basic HTTP server.
  • urllib.request: Open and read URLs.
  • dataclasses: Simplifies class definitions for data storage.
  • abc: Framework for defining Abstract Base Classes.
  • typing: Support for type hints.

Numpy

Back to Top

  • Array creation
  • Indexing and slicing
  • Shape manipulation
  • Broadcasting
  • Copies and views
  • numpy.random
  • numpy.fft
  • numpy.linalg
  • numpy.polyfit

Matplotlib

Back to Top

  • Basic plotting
  • Matplotlib objects
  • Stateful vs stateless
  • pyplot, subplots, subplot_mosaic
  • Style and parameters
  • Plot types

Scipy

Back to Top

  • Integration
  • Optimization
  • Interpolation
  • Fourier transforms
  • Signal processing
  • Linear algebra
  • Sparse arrays
  • Statistics

Selected Topics

Back to Top

  • Build and schedule Linux services (systemd)
  • Introduction to databases (SQL, Postgre, Mongodb)
  • Docker (Dockerfile, build, compose, swarm)
  • Webapps (dash and streamlit)
  • Introduction C and Fortran (compiling and linking, static and dynamic libraries, make, interoperability)
  • Python extensions (ctypes, numpy, cython, mypy, pybind, numba)
  • Markdown (rst, md, html) and configuration (json, yaml, toml)
  • More plotting options (seaborn, plotly/dash, altair, bokeh)
  • Introduction to machine learning (scikit-learn, pytorch, xgboost)
  • Parallel python (threading, multiprocessing, concurrent.futures)
  • Git and GitHub (workflow, actions)
  • Python library and documentation (pyproject.toml, build, twine, pip, sphinx)
  • Python CI (testing, linting and profiling) (pylint, mypy, pytest, pytest-cov, scalene)
  • Symbolic computations (sympy, rubi)
  • Pandas, Polars, Dask and google sheets API