ผลต่างระหว่างรุ่นของ "01219245-58"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) (→Labs) |
Jittat (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 30 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน) | |||
แถว 4: | แถว 4: | ||
== Lectures == | == Lectures == | ||
+ | * Week 1 (Jan 22): | ||
+ | ** Introduction. ([http://theory.cpe.ku.ac.th/wiki/images/01219245-01-intro.pdf slides]) | ||
+ | ** Modern software development: | ||
+ | *** [https://www.youtube.com/watch?v=QoAOzMTLP5s Business Model Canvas Explained] is a nice clip that tells you what business thinks when developing a new product. | ||
+ | **** A more detailed introduction on how to creating business model [https://www.youtube.com/watch?v=wwShFsSFb-Y Ep1], [https://www.youtube.com/watch?v=wlKP-BaC0jA Ep2], [https://www.youtube.com/watch?v=iA5MVUNkSkM Ep3], [https://www.youtube.com/watch?v=7O36YBn9x_4 Ep4], [https://www.youtube.com/watch?v=-2gd_vhNYT4 Ep5], [https://www.youtube.com/watch?v=SshglHDKQCc Ep6] | ||
+ | *** [http://blog.crisp.se/2012/10/25/henrikkniberg/agile-product-ownership-in-a-nutshell Agile Product Ownership in a Nutshell] (by Henrik Kniberg) gives an overall view on how software development is a collaboration between developers and stakeholders (users) and how important communication is. | ||
+ | ** Coding convention. ([http://theory.cpe.ku.ac.th/wiki/images/01219245-03a-coding-convention.pdf slides]) | ||
+ | ** Practice on task breakdown. ([http://theory.cpe.ku.ac.th/wiki/images/01219245-03c-task-breakdown-practice.pdf slides]) | ||
+ | |||
+ | * Week 2 (Feb 12): | ||
+ | ** Incremental & iterative development ([http://theory.cpe.ku.ac.th/wiki/images/01219245-02-incremental-development.pdf slides]) | ||
+ | ** Planning 1. ([http://theory.cpe.ku.ac.th/wiki/images/01219245-04c-planning1.pdf slides]) | ||
+ | |||
+ | * Week 3 (Feb 19): | ||
+ | ** Game design principles. ([http://theory.cpe.ku.ac.th/wiki/images/01219245-03b-game-design-principles.pdf slides]) | ||
+ | *** Game design slides by [http://www.slideshare.net/resmini Andrea Resmini]: [http://www.slideshare.net/resmini/game-design-lecture-1 lecture1], [http://www.slideshare.net/resmini/game-design-lecture-2-15128133 lecture2], [http://www.slideshare.net/resmini/game-design-lecture-3 lecture3], [http://www.slideshare.net/resmini/game-design-lecture-4 lecture4] | ||
+ | ** Clean code: Meaningful names. ([http://theory.cpe.ku.ac.th/wiki/images/01219245-04b-meaningful-names.pdf slides]) | ||
+ | ** Software testing, Unit testing, TDD ([http://theory.cpe.ku.ac.th/wiki/images/01219245-04a-test-principles-unit-testing.pdf slides]) | ||
+ | ** Unit testing in JavaScript ([http://theory.cpe.ku.ac.th/wiki/images/01219245-04b-unit-testing-javascript.pdf slides]) | ||
+ | |||
+ | * Week 4 (Mar 4): | ||
+ | ** Project planning ([http://theory.cpe.ku.ac.th/wiki/images/05a-planning2-58.pdf slides]) | ||
+ | ** Clean code: functions ([http://theory.cpe.ku.ac.th/wiki/images/01219245-05b-functions.pdf slides]) | ||
+ | ** Unit testing in JavaScript (cont.) | ||
+ | *** Template for TDD practice: [http://theory.cpe.ku.ac.th/wiki/images/219245-practice.zip 219245-practice.zip] | ||
+ | |||
+ | * Week 5 (Mar 11): | ||
+ | ** Project-related practices: remote repository setup, 1st iteration task breakdown, time tracking, game mechanic test cases. | ||
+ | |||
+ | * Week 6 (Mar 18): | ||
+ | ** Test design techniques ([http://theory.cpe.ku.ac.th/wiki/images/07-test-design-technique-1.pdf slides]) | ||
+ | ** Practice: [[01219343/testcase/KU Student status|KU Student status]] | ||
+ | |||
+ | * Week 7 (Apr 1): | ||
+ | ** Estimation ([http://theory.cpe.ku.ac.th/wiki/images/01219245-06a-estimation-data-collection.pdf slides]) | ||
+ | ** Planning for the 2nd iteration ([http://theory.cpe.ku.ac.th/wiki/images/01219245-06b-planning-2nd-iteration.pdf slides]) | ||
+ | ** Code cleaning practice | ||
+ | |||
+ | * Week 8 (Apr 8): | ||
+ | ** Software estimations | ||
+ | *** [http://www.mountaingoatsoftware.com/presentations/agile-estimating Agile estimating] from Mountain Goat Software | ||
+ | *** [http://www.construx.com/Resources/Presentation/Agile_Estimation__Key_Principlies_and_Practices_for_Successful_Agile_Practices/ Agile Estimation: Key Principles and Practices for Successful Agile Projects] from Construx. | ||
+ | ** Code smells [http://www.industriallogic.com/blog/smells-to-refactorings-cheatsheet/ cheat sheet] from Industrial Logic. | ||
+ | |||
+ | * Week 9 (Apr 22): | ||
+ | ** Planning for the 3rd iteration ([http://theory.cpe.ku.ac.th/wiki/images/01219245-08a-planning-3rd-iteration.pdf slides]) | ||
+ | ** Practice TDD for objects with states ([http://theory.cpe.ku.ac.th/wiki/images/01219245-09a-tdd-practice2.pdf slide]) | ||
+ | *** Template: [http://theory.cpe.ku.ac.th/wiki/images/219245-practice2.zip 219245-practice2.zip] | ||
== Labs == | == Labs == | ||
− | + | === Preparations === | |
− | + | Various practical skills (we will discuss these topic in class as well.) | |
− | |||
− | |||
− | |||
− | |||
− | |||
+ | * Command-line shell: In the modern era of computing, we usually enjoy using nice GUI program to work with our files and folder. However, command-line interface still wins in many aspects. It can be much faster and more accurate. In many cases, e.g., in server maintenance and in many [https://en.wikipedia.org/wiki/DevOps DevOps]'s activities, command-line interface is the only choice. Here are a few how-to: | ||
+ | ** Windows: | ||
+ | *** by AxiomSecurityLabs: [https://www.youtube.com/watch?v=gy7L-dBVhMo part1], [https://www.youtube.com/watch?v=OB8x0r17Bjg part2] | ||
+ | *** by DrapsTV (slower): [https://www.youtube.com/watch?v=8-Bnm9LxG6A part1], [https://www.youtube.com/watch?v=eq6N1q0pkOI part2], [https://www.youtube.com/watch?v=1e7mxoXogWM part3] | ||
+ | ** Linux: | ||
+ | *** [https://www.youtube.com/watch?v=id3DGvljhT4 by tutoraLinux] | ||
+ | *** in Thai [https://www.youtube.com/watch?v=UI5LdVp9XtY&list=PLF9B405101978EE76 Intro Unix CLI] | ||
+ | ** Mac OS: | ||
+ | *** [https://www.youtube.com/watch?v=ftJoIN_OADc youtube by SysAdmGirl] | ||
+ | *** [https://www.youtube.com/watch?v=-ACo3MZV2Ss youtube by Penn State MacAdmins] (slower) | ||
+ | * Master your Editor/IDE: | ||
+ | |||
+ | === Git === | ||
* [[01219245/git|Version control system with Git]] | * [[01219245/git|Version control system with Git]] | ||
+ | |||
+ | === JavaScript === | ||
* Getting Started with JavaScript | * Getting Started with JavaScript | ||
** ''After you finish each tutorial, you should try to work on its quiz to make sure that you grasp core concepts of each tutorial.'' | ** ''After you finish each tutorial, you should try to work on its quiz to make sure that you grasp core concepts of each tutorial.'' | ||
แถว 23: | แถว 81: | ||
** [[01219245/javascript1/tutorial3|Tutorial 3: 21 Game]] | ** [[01219245/javascript1/tutorial3|Tutorial 3: 21 Game]] | ||
** [[01219245/javascript1/tutorial4|Tutorial 4: Hangman]] | ** [[01219245/javascript1/tutorial4|Tutorial 4: Hangman]] | ||
+ | |||
+ | === Cococs2d-JS === | ||
+ | We will use [http://www.cocos2d-x.org/wiki/Cocos2d-JS Cocos2d-JS] as a game development framework. | ||
+ | |||
+ | * [[01219245/cocos2d-js/getting started|Getting started]] | ||
+ | * [[01219245/cocos2d-js/Sprites|Tutorial 100]] - sprites | ||
+ | * [[01219245/cocos2d-js/Sprites2|Tutorial 101: Sprites 2 - Flappy Dot]] | ||
+ | ** [[01219245/cocos2d-js/Actions|Small Tutorial 102: Actions, spritesheets, sound effects]] | ||
+ | * [[01219245/cocos2d-js/Maze|Tutorial 103: PacMan]] | ||
+ | * [[01219245/cocos2d-js/Platform1|Guide 200: Platform game without physics engine]] | ||
+ | |||
+ | * Empty template: [http://theory.cpe.ku.ac.th/~jittat/cocos/templates/cocos-emptyproject.zip cocos-emptyproject.zip] | ||
== Video clips == | == Video clips == |
รุ่นแก้ไขปัจจุบันเมื่อ 02:09, 22 เมษายน 2559
This is a course homepage for 01219245/01219246 Individual Software Process and Individual Software Process Lab for 2nd semester, academic year 2558.
เนื้อหา
Announcements
Lectures
- Week 1 (Jan 22):
- Introduction. (slides)
- Modern software development:
- Business Model Canvas Explained is a nice clip that tells you what business thinks when developing a new product.
- Agile Product Ownership in a Nutshell (by Henrik Kniberg) gives an overall view on how software development is a collaboration between developers and stakeholders (users) and how important communication is.
- Coding convention. (slides)
- Practice on task breakdown. (slides)
- Week 3 (Feb 19):
- Week 4 (Mar 4):
- Project planning (slides)
- Clean code: functions (slides)
- Unit testing in JavaScript (cont.)
- Template for TDD practice: 219245-practice.zip
- Week 5 (Mar 11):
- Project-related practices: remote repository setup, 1st iteration task breakdown, time tracking, game mechanic test cases.
- Week 6 (Mar 18):
- Test design techniques (slides)
- Practice: KU Student status
- Week 8 (Apr 8):
- Software estimations
- Agile estimating from Mountain Goat Software
- Agile Estimation: Key Principles and Practices for Successful Agile Projects from Construx.
- Code smells cheat sheet from Industrial Logic.
- Software estimations
- Week 9 (Apr 22):
- Planning for the 3rd iteration (slides)
- Practice TDD for objects with states (slide)
- Template: 219245-practice2.zip
Labs
Preparations
Various practical skills (we will discuss these topic in class as well.)
- Command-line shell: In the modern era of computing, we usually enjoy using nice GUI program to work with our files and folder. However, command-line interface still wins in many aspects. It can be much faster and more accurate. In many cases, e.g., in server maintenance and in many DevOps's activities, command-line interface is the only choice. Here are a few how-to:
- Windows:
- Linux:
- by tutoraLinux
- in Thai Intro Unix CLI
- Mac OS:
- Master your Editor/IDE:
Git
JavaScript
- Getting Started with JavaScript
- After you finish each tutorial, you should try to work on its quiz to make sure that you grasp core concepts of each tutorial.
- Tutorial 1: Number guessing game
- Self quiz after finishing the tutorial: self-quiz-tut1.pdf
- Tutorial 2: Event-driven programming
- Self quiz: self-quiz-tut2.pdf
- Tutorial 3: 21 Game
- Tutorial 4: Hangman
Cococs2d-JS
We will use Cocos2d-JS as a game development framework.
- Getting started
- Tutorial 100 - sprites
- Tutorial 101: Sprites 2 - Flappy Dot
- Tutorial 103: PacMan
- Guide 200: Platform game without physics engine
- Empty template: cocos-emptyproject.zip
Video clips
- Git
- JavaScript: basic