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

Taipei Tech OOP

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