Computing for Data Science 1
(데이터사이언스를 위한 컴퓨팅 1)

Instructor: Jaejin Lee (jaejin@snu.ac.kr)

Goals

This course covers fundamental topics in Computing, the“C” part of the core ABC (AI model/algorithm, Big data, Computing) courses in data science.

The first half of this course comprises C++ programming and C++ language-based object-oriented programming. Students will (1) learn grammars of C++ language, concepts and usage of class, template, and important libraries, (2) understand principles of object-oriented programming, such as abstraction, inheritance, and ploymorphism, and (3) implement class-based object-oriented programming through assignments.

The second half of this course comprises intermediate-level data structures and algorithms and deep learning platforms. Students will (1) learn data structures and algorithms that are not covered in “Computing Foundations for Data Science”course (the prerequisite course), such as sorting algorithms (quick sort, radix sort, heap sort), tree algorithms, and graph algorithms (Dijkstra, Kruska, etc), (2) implement these data structures and algorithms using C++ language. (3) In addition, students will learn widely-used deep learning platforms, such as Pytorch and TensorFlow, implement fundamental principles of deep learning that are taught in “Machine Learning and Deep Learning 1” course both with and without these deep learning platforms.

Content

– C++ and object-oriented programming

1. C review – pointer, dynamic memory allocation
2. C++ basicㄴ
3. Classes in C++
4. Data abstraction in C++
5. Inheritance
6. Polymorphism
7. Template and libraries

 

 

– Data structures and algorithms
1. Review of basic data structures
2. Data structures – Balanced tree, Heap, etc.
3. Sorting algorithms – Quick, Radix, Heap, etc.
4. Graph algorithms – Dijkstra’s , Kruskal’s etc.
5. Some advanced algorithms

 

 

– Deep Learning Platforms
1. PyTorch basics
2. Forward propagation and backpropagation in PyTorch
2. PyTorch optimizers
3. Model implementations
4. PyTorch on GPUs
5. TensorFlow basics
6. Deep learning with distributed processing

Grading Policy

  • · Attendance: 10%

  • · Assignment: 40%

  • · Mid-term: 20%

  • · Final: 30%