Mini Cluster Computers

HPDS: High Performance Data Science

Combined Module: Pendahuluan Pemrograman Parallel untuk Data Science

Tantangan Volume, Variety, dan Velocity di Big Data memaksa para data scientist untuk melakukan pemrograman dengan seoptimal mungkin menggunakan seluruh sumber daya yang ada. Sumber daya ini meliputi beberapa prosesor pada CPU maupun GPU, bahkan prosesor pada jaringan komputer yang terdistribusi. Modul HPDS diawali dengan pembahasan dasar pemrograman untuk Data Scientist, termasuk bagaimana mengoptimalkan penggunaan Python untuk bekerja dalam team. Bagian kedua modul ini fokus ke berbagai pendekatan pemrograman tingkat lanjut untuk data scientist. Detail dari pokok bahasan dari modul ini adalah sebagai berikut:

A. Pendahuluan Python untuk Data Scientist

Bagian pertama dari modul ini adalah sebagian dari Lesson yang ada di modul Algorithms, Data Structures, and Programming (ADSP):

  1. Review Dasar Python – Bagian 1 : Instalasi, Jupyter Notebook, Dasar Python, struktur data 1.
  2. Review Dasar Python – Bagian 2 : Functions, Modules, struktur data 2, import/Export Data.
  3. Struktur Data tingkat lanjut Python : Sparse Matrix, Dataframe, MemMap.
  4. Object Oriented Programming di Python Bagian 1
  5. Object Oriented Programming di Python Bagian 2
  6. Python Tools: Warnings, magick, catching errors, decorators, saving variables.
  7. Team work via Python: IDE, Pep8, Github+Google Colab, DocString.

B. Pemrograman Tingkat Lanjut untuk Data Scientists

  1. Pendahuluan HPP: metrics & Best Practices
  2. JIT & Compiled Python
  3. Thread Programming in Python
  4. Dasar Pemrograman Paralel di Python
  5. Functional Programming di Python
  6. PySpark: Pengenalan dasar Distributed Programming di Python [*Optional]
  7. PyCuda: Pengenalan GPU Programming in Python [*Optional]

Secara berkala modul ini akan terus di koreksi dan diperbaharui dengan interval waktu yang tidak ditentukan. Mohon gunakan kolom komentar hanya untuk errata atau keperluan lain. Pertanyaan dan diskusi harap dilakukan pada Forum yang telah disediakan. Secara umum setiap modul akan terdiri dari:

  1. video: Penjelasan umum yang disajikan secara less-formal yang cocok untuk mereka yang benar-benar baru dalam mempelajari topik yang dibahas. Video penjelasan ini juga cocok untuk para praktisi yang merasa tidak perlu mendalami teori terlalu dalam.
  2. Modul tertulis: Penjelasan semi-formal tentang teori dari topik yang sedang dibahas.
  3. Topik bahasan di Forum sebagai sarana diskusi antar pengguna (asynchronous).
  4. Latihan Soal: untuk pengguna umum (subscriber tau-data) akan berisi latihan soal dasar berdasarkan materi di video, modul, & bahan bacaan tugas di modul. Latihan soal (uji kompetensi yang komprehensif) beserta skor-nya hanya diberikan ke mitra tau-data.
  5. Synchronous Learning (lewat zoom/luring) hanya diberikan kepada mitra tau-data.

Catt: Anda wajib mendaftar di web tau-data (gratis) untuk dapat mengakses keseluruhan feature, materi, latihan soal, serta diskusi di forum tau-data.

Prasayarat :

Untuk dapat mengikuti modul ini dengan baik anda diharapkan telah mempelajari modul-modul berikut:

  1. Algorithms, Data Structures, and Programming (ADSP) (Link)
  2. Mathematics for Data Science – MFDS (Link)
  3. Exploratory Data Analysis (EDA) (Link)
  4. Applied Data Mining (ADM) (Link)

Tujuan Pembelajaran

Memberikan dasar yang kuat dasar pemrograman yang baik (best practices) bagi para data scientist dan pengenalan berbagai teknik pemrograman tingkat lanjut pada permasalahan yang ada di big data.

Evaluasi:

  1. Di setiap topik di modul ini diberikan beberapa latihan daring yang dapat diikuti pengguna untuk menguji pemahaman selama mempelajari materi di modul ini. Latihan ini akan diperbaharui dari waktu ke waktu pada interval waktu yang tidak ditentukan. Ketika telah menyelesaikan berbagai aktivitas seperti menyelesaikan materi modul, latihan, menonton (secara penuh) video di tau-data, dan kegiatan lainnya pengguna akan mendapatkan tau-points. tau-points akan dapat digunakan di masa depan untuk berbagai kegiatan tau-events.
  2. Skor latihan daring akan diberitahukan secara automatis oleh sistem, namun pembahasannya tidak diberikan. tau-data melarang materi latihan soal untuk dibahas di website tau-data dikarenakan akan mengurangi efektivitas pembelajaran yang dilakukan oleh pengguna lain. Namun demikian tau-data memperbolehkan untuk mendiskusikan permasalahannya di forum yang bersesuaian yang telah disediakan tau-data (tanpa menyatakan jawaban secara eksplisit). Pelanggaran akan berakibat user dihapus dan di blokir dari sistem.
  3. mitra tau-data akan mendapatkan evaluasi tambahan dan synchronous learning baik daring (misal melalui zoom) atau luring/offline (tatap muka lewat sistem flipped class).

Software/Tools:

Python (Anaconda/WinPython/Google Colaboratory).

Modules: Spacy, NLTK, Re, OpenCV, NetworkX, TensorFlow/Keras/Pytorch, etc.

Forum:

https://tau-data.id/forums/

Refferences (optional):

  1. John T. Wolohan, Mastering Large Datasets with Python: Parallelize and Distribute Your Python Code, 2020
  2. Tuomanen, B. (2018). Hands-On GPU Programming with Python and CUDA: Explore high-performance parallel computing with CUDA. Packt Publishing Ltd.
  3. Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to algorithms. MIT press.
  4. Zelle, J. M. (2004). Python programming: an introduction to computer science. Franklin, Beedle & Associates, Inc..
  5. Peter, CV, (2019). Algorithms Notes for Professionals, GoalKicker
  6. Barendregt, H. P. (1984). The lambda calculus(Vol. 3). Amsterdam: North-Holland.
  7. Yang, X. S. (2019). Introduction to Algorithms for Data Mining and Machine Learning. Academic Press.

Supplementary:

  • Tools Pendukung:
    – Nvidia Card
    – Google Colab
    – GCP
    – API to some Social Media

Kembali ke Kurikulum Utama