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
Homework 0
  • Learn basic git commands
  • Join GitHub classroom
2 C++ & OOP
  • C++ Basic Syntax
  • Building a Text Editor using Design Patterns
  • Factory & Singleton pattern
pdf
Lab 0 pdf
Homework 1
  • Calculating area of different shapes (code, github)
pdf
3 Java Basics
  • Java Basics
  • OOP in Java
  • extends vs. implements
  • interface
pdf
Homework 2
  • Matrix multiplication (github)
pdf
4 Java Swing
  • Java Swing & JFrame
  • JButton & Action Listener
  • Action Listener (Observer pattern)
pdf
Java Unit Testing
  • JUnit
pdf
5 Basic Data Structures
  • Array & Linked List
  • Queue & Stack
  • Postfix, Infix, PEMDAS
  • Tree
  • Binary Search Tree
pdf
Homework 3
  • Building a basic calculator using Java Swing
  • Video Tutorial: Part1  Part2  Part3
pdf
6 Creational Design Patterns
  • Factory & Abstract Factory
  • Builder
  • Prototype
  • Singleton
pdf
7 Behavior Design Patterns
  • Strategy, Observer
  • Command, State
  • Template, Iterator
  • Chain of Responsibility
  • Other behavior patterns
pdf
8 Structural Design Patterns
  • Adaptor, Bridge, Proxy
  • Composite, Decorator, Flyweight
  • Facade
pdf
Midterm
  • Using Microsoft Teams
  • 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 4
  • Creating a Tetris game
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