NTUT EE Object-Oriented Programming 物件導向程式設計

Week Topic Learning Objectives Slides Code Video Updated
1-1 Introduction to OOP
  • Abstraction, Inheritance, Encapsulation, Polymorphism
  • Creational Design Patterns
  • Structural Design Patterns
  • Behavioral Design Patterns
pdf 2020/2/29
1-2 UML
  • What is Unified Modeling Language (UML)?
pdf 2020/3/6
2 C++ & OOP
  • C++ Basic Syntax
  • Building a Text Editor using Design Patterns
pdf 2020/3/14
Lab 0
  • Create you own Linux and build a C++ program
pdf 2020/3/9
Homework 1
  • Calculating area of different shapes. (code)
  • Upload to NTUT i-school (Deadline: 2020/3/30 23:59)
pdf 2020/3/16
3 Java Basics
  • Java Basics
  • OOP in Java
  • extends vs. implements
  • interface
pdf 2020/3/14
4 Java Swing
  • Java Swing & JFrame
  • Model-View-Controller (MVC) Pattern
  • JButton & Action Listener
pdf 2020/3/22
5 Java Unit Testing
  • JUnit
pdf 2020/3/30
Homework 2
  • Building a basic calculator using Java Swing
  • Upload to NTUT i-school (Deadline: 2020/4/20 23:59)
pdf 2020/3/17
6 Creational Design Patterns
  • Factory & Abstract Factory
  • Builder
  • Prototype
  • Singleton
pdf 2020/4/6
7 Structural Design Patterns
  • Adaptor, Bridge, Proxy
  • Composite, Decorator, Flyweight
  • Facade
pdf 2020/4/12
8 Behavior Design Patterns
  • Chain of Responsibility
  • Command, Interpreter, Memento
  • Observer, State, Strategy
  • Template, Iterator, Mediator, Visitor
pdf 2020/4/20
Mock Midterm Exam pdf 2020/4/12
9 Creating Java 2D Games
  • Drawing Images using Swing
  • Sprites
  • Keyboard Control
pdf 2020/5/4
Homework 3
  • Creating a Tetris game
  • Upload to NTUT i-school (Deadline: 2020/5/18 23:59)
pdf 2020/3/17
10 Maven
  • Use Maven to manage Java projects
  • clean, compile, package, site
  • Repository dependency
pdf 2020/5/11
11 Java Threads
  • Thread & Runnable
  • Race Condition & Critical Section (synchronized)
  • wait(), notify(), notifyAll()
  • Deadlock
  • Thread Pool
pdf 2020/5/17
12 Java Network Programming
  • OSI 7-layer model
  • TCP/IP
  • TCP vs. UDP
  • Socket & accept()
  • Multi-thread Server
pdf 2020/6/1
13 Play Tetris via Deep Reinforcement Learning
  • OpenAI Gym
  • Remote Procedure Call
  • Playing Tetris through Python
pdf 2020/6/8
14 Deep Reinforcement Learning (DRL)
擊敗棋王 - 深度強化學習
  • Agent, State, Reward, Environment
  • Markov Decision Process (MDP)
  • Deep Q Learning
  • Alpha Zero
pdf 2020/4/18