ผลต่างระหว่างรุ่นของ "Programming 2"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย 'This is a course homepage for '''Programming 2''' == Materials == == Other links ==') |
Jittat (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 22 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน) | |||
แถว 1: | แถว 1: | ||
− | This is a course homepage for '''Programming 2''' | + | : ''For the recent offering of this course for Academic Year 2020, see [[Programming 2 2563]].'' |
+ | |||
+ | This is a course homepage for '''Programming 2''' for Academic year 2018, second semester. | ||
== Materials == | == Materials == | ||
+ | * Lecture 1 (18-Jan) | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-01a-intro.pdf 219116-01a-intro.pdf] - Introduction (1) | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-01d-task-breakdown-practice.pdf 219116-01d-task-breakdown-practice.pdf] - Task breakdown practice | ||
+ | |||
+ | * Lecture 2 (7-Feb) | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-02a-intro2.pdf 219116-02a-intro2.pdf] - Introduction (2) | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-02b-incremental-development.pdf 219116-02b-incremental-development.pdf] - Incremental & Iterative Development | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-02c-changes.pdf 219116-02c-changes.pdf] - Dealing with changes (1) | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-02d-reponsibility.pdf 219116-02d-reponsibility.pdf] - Responsibility | ||
+ | |||
+ | * Lecture 3 (15-Feb) | ||
+ | ** [http://theory.cpe.ku.ac.th/wiki/images/01219245-04a-test-principles-unit-testing.pdf 01219245-04a-test-principles-unit-testing.pdf] - Software testing, Unit testing, TDD | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-03b-unit-testing-python-1.pdf 219116-03b-unit-testing-python-1.pdf] - Unit testing with python doctest | ||
+ | ** Practice: [[01219245/git|Version control with git]] | ||
+ | |||
+ | * Lecture 4 (22-Feb) | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-04a-oop-review.pdf 219116-04a-oop-review.pdf] - Python OOP review | ||
+ | |||
+ | * Lecture 5 (28-Feb) | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-05a-recursion.pdf 219116-05a-recursion.pdf] - Recursion | ||
+ | |||
+ | * Lecture 6 (7-Mar) | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-06a-functional-programming.pdf 219116-06a-functional-programming.pdf] - Functional programming | ||
+ | |||
+ | * Lecture 7 - Clean codes | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-07a-coding-convention.pdf 219116-07a-coding-convention.pdf] - Coding convention | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-07aa-python-convention.pdf 219116-07aa-python-convention.pdf] - Python coding convention | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-07b-meaningful-names.pdf 219116-07b-meaningful-names.pdf] - Meaningful names | ||
+ | ** [https://theory.cpe.ku.ac.th/wiki/images/219116-07c-functions.pdf 219116-07c-functions.pdf] - Functions | ||
+ | |||
+ | * Lecture 8 - Principles | ||
+ | ** Slides: [https://theory.cpe.ku.ac.th/wiki/images/219116-08a-principles.pdf 219116-08a-principles.pdf] - Principles (very short) | ||
+ | ** Read more on SOLID at [https://en.wikipedia.org/wiki/SOLID wikipedia], [https://medium.com/@dhkelmendi/solid-principles-made-easy-67b1246bcdf a post by dhkelmendi], [https://scotch.io/bar-talk/s-o-l-i-d-the-first-five-principles-of-object-oriented-design a post at scotch.io] | ||
+ | ** We focus mostly on the first two: | ||
+ | *** Single Responsibility Principle: [https://en.wikipedia.org/wiki/Single_responsibility_principle] | ||
+ | *** Open-Close principle: [https://en.wikipedia.org/wiki/Open%E2%80%93closed_principle] | ||
+ | |||
+ | * Design patterns | ||
+ | ** Read more at [https://gameprogrammingpatterns.com/ Game Programming Patterns] | ||
+ | |||
+ | * Concluding lecture | ||
+ | ** [https://theory.cpe.ku.ac.th/~jittat/courses/prg2/nature-software-dev.pdf nature-software-dev.pdf] - Nature of Software Development (by Ron Jeffries) | ||
+ | |||
+ | == Tutorials == | ||
+ | * Tutorial 1: [[prg2/arcade1|Getting started with Arcade]] | ||
+ | * Tutorial 2: [[prg2/arcade2 space|Space game]] | ||
+ | * Tutorial 3: [[prg2/arcade3 snake|Snake]] | ||
+ | * Tutorial 4: [[prg2/arcade4 flappy dot|Flappy dot]] | ||
+ | * Tutorial 5: [[prg2/arcade5 maze|Pacman]] | ||
+ | * Tutorial 6: [[prg2/arcade6 dotrun|Dot run]] | ||
== Other links == | == Other links == |
รุ่นแก้ไขปัจจุบันเมื่อ 16:08, 17 มีนาคม 2564
- For the recent offering of this course for Academic Year 2020, see Programming 2 2563.
This is a course homepage for Programming 2 for Academic year 2018, second semester.
Materials
- Lecture 1 (18-Jan)
- 219116-01a-intro.pdf - Introduction (1)
- 219116-01d-task-breakdown-practice.pdf - Task breakdown practice
- Lecture 2 (7-Feb)
- 219116-02a-intro2.pdf - Introduction (2)
- 219116-02b-incremental-development.pdf - Incremental & Iterative Development
- 219116-02c-changes.pdf - Dealing with changes (1)
- 219116-02d-reponsibility.pdf - Responsibility
- Lecture 3 (15-Feb)
- 01219245-04a-test-principles-unit-testing.pdf - Software testing, Unit testing, TDD
- 219116-03b-unit-testing-python-1.pdf - Unit testing with python doctest
- Practice: Version control with git
- Lecture 4 (22-Feb)
- 219116-04a-oop-review.pdf - Python OOP review
- Lecture 5 (28-Feb)
- 219116-05a-recursion.pdf - Recursion
- Lecture 6 (7-Mar)
- 219116-06a-functional-programming.pdf - Functional programming
- Lecture 7 - Clean codes
- 219116-07a-coding-convention.pdf - Coding convention
- 219116-07aa-python-convention.pdf - Python coding convention
- 219116-07b-meaningful-names.pdf - Meaningful names
- 219116-07c-functions.pdf - Functions
- Lecture 8 - Principles
- Slides: 219116-08a-principles.pdf - Principles (very short)
- Read more on SOLID at wikipedia, a post by dhkelmendi, a post at scotch.io
- We focus mostly on the first two:
- Design patterns
- Read more at Game Programming Patterns
- Concluding lecture
- nature-software-dev.pdf - Nature of Software Development (by Ron Jeffries)
Tutorials
- Tutorial 1: Getting started with Arcade
- Tutorial 2: Space game
- Tutorial 3: Snake
- Tutorial 4: Flappy dot
- Tutorial 5: Pacman
- Tutorial 6: Dot run