ผลต่างระหว่างรุ่นของ "01219245-57"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย 'This is a course homepage for 01219245/01219246 Individual Software Process and Individual Software Process Lab for 2nd semester, acade...') |
Jittat (คุย | มีส่วนร่วม) (→Labs) |
||
(ไม่แสดง 52 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน) | |||
แถว 1: | แถว 1: | ||
− | This is a course homepage for 01219245/01219246 Individual Software Process and Individual Software Process Lab for 2nd semester, academic year 2557. | + | : ''This is an old homepage from last year. For the recent offering, please see [[01219245]].'' |
+ | |||
+ | This is a course homepage for '''01219245/01219246 Individual Software Process and Individual Software Process Lab''' for 2nd semester, academic year 2557. | ||
+ | |||
+ | == Announcements == | ||
+ | * 1/14: In the lab today, we will practice source code version control, using Git. [[01219245/git|See the material]]. If you are fast, you can proceed to practice on JavaScript. [[01219245/javascript1/tutorial1|See JavaScript tutorial 1]]. | ||
+ | |||
+ | == Lectures == | ||
+ | * Week 1 (Jan 16): Introduction. ([http://theory.cpe.ku.ac.th/wiki/images/01219245-01-intro.pdf slides]) | ||
+ | ** Modern software development: | ||
+ | *** [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. | ||
+ | *** [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. | ||
+ | |||
+ | * Week 2 (Jan 23): Incremental & iterative development ([http://theory.cpe.ku.ac.th/wiki/images/01219245-02-incremental-development.pdf slides]) | ||
+ | ** Practice on task breakdown. ([http://theory.cpe.ku.ac.th/wiki/images/01219245-03c-task-breakdown-practice.pdf slides]) | ||
+ | ** Coding convention. ([http://theory.cpe.ku.ac.th/wiki/images/01219245-03a-coding-convention.pdf slides]) | ||
+ | |||
+ | * Week 3 (Feb 13): | ||
+ | ** 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] | ||
+ | ** Planning 1. ([http://theory.cpe.ku.ac.th/wiki/images/01219245-04c-planning1.pdf slides]) | ||
+ | ** Clean code: Meaningful names. ([http://theory.cpe.ku.ac.th/wiki/images/01219245-04b-meaningful-names.pdf slides]) | ||
+ | |||
+ | * Week 4 (Feb 20): | ||
+ | ** 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]) | ||
+ | ** Template for TDD practice: [http://theory.cpe.ku.ac.th/wiki/images/219245-practice.zip 219245-practice.zip] | ||
+ | |||
+ | * Week 5 (Feb 27): | ||
+ | ** Project planning ([http://theory.cpe.ku.ac.th/wiki/images/01219245-05a-planning2.pdf slides]) | ||
+ | ** Clean code: functions ([http://theory.cpe.ku.ac.th/wiki/images/01219245-05b-functions.pdf slides]) | ||
+ | |||
+ | * Week 6 (Mar 13): | ||
+ | ** 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 3): | ||
+ | ** 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 10): | ||
+ | ** Planning for the 3rd iteration ([http://theory.cpe.ku.ac.th/wiki/images/01219245-08a-planning-3rd-iteration.pdf slides]) | ||
+ | ** Code smells [http://www.industriallogic.com/blog/smells-to-refactorings-cheatsheet/ cheat sheet] from Industrial Logic. | ||
+ | |||
+ | * Week 9 (Apr 17): | ||
+ | ** 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] | ||
+ | ** PSP | ||
+ | |||
+ | * Week 10 (Apr 24) Software Estimation: | ||
+ | **Slides: | ||
+ | *** [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. | ||
+ | |||
+ | * Week 11 (May 1) Software Design: | ||
+ | ** [http://www.principles-wiki.net/principles:don_t_repeat_yourself DRY], [http://www.principles-wiki.net/principles:single_level_of_abstraction SLAP], [http://www.principles-wiki.net/principles:single_responsibility_principle SRP] from [http://www.principles-wiki.net/start Principles Wiki] | ||
+ | ** [http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod Principles of OOD] by Robert Martin | ||
+ | ** Slides: | ||
+ | *** [http://www.slideshare.net/jonkruger/solid-software-design-principles SOLID: software design principles] by Jon Kruger (slideshare) | ||
+ | *** [http://www.slideshare.net/skarpushin/solid-ood-dry SOLID, DRY, SLAP] by Сергей Карпушин (slideshare) | ||
+ | |||
+ | * Week 12 (May 8) Project fair | ||
+ | |||
+ | * Week 13 Soft skills for software engineers | ||
+ | |||
+ | == 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. | ||
+ | *** Various how-to: | ||
+ | **** Windows: | ||
+ | **** Linux: | ||
+ | ** Master your Editor/IDE: | ||
+ | |||
+ | * [[01219245/git|Version control system with Git]] | ||
+ | * 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.'' | ||
+ | ** [[01219245/javascript1/tutorial1|Tutorial 1: Number guessing game]] | ||
+ | *** Self quiz after finishing the tutorial: [http://theory.cpe.ku.ac.th/wiki/images/01219245-self-quiz-tut1.pdf self-quiz-tut1.pdf] | ||
+ | ** [[01219245/javascript1/tutorial2|Tutorial 2: Event-driven programming]] | ||
+ | *** Self quiz: [http://theory.cpe.ku.ac.th/wiki/images/01219245-self-quiz-tut2.pdf self-quiz-tut2.pdf] | ||
+ | ** [[01219245/javascript1/tutorial3|Tutorial 3: 21 Game]] | ||
+ | ** [[01219245/javascript1/tutorial4|Tutorial 4: Hangman]] | ||
+ | |||
+ | * Cococs2d-JS | ||
+ | ** We will use [http://cocos2d-x.org/products#cocos2dx-js Cocos2d-JS] as a game development framework. | ||
+ | ** [[01219245/cocos2d-js/installation/3.2|Installation]] | ||
+ | ** [[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]] | ||
+ | |||
+ | * Project setup/review | ||
+ | ** [[01219245/repository setup|Project repository setup]] | ||
+ | ** [[01219245/trello setup|Trello board setup]] | ||
+ | |||
+ | == Video clips == | ||
+ | * Git | ||
+ | ** [http://www.youtube.com/watch?v=mUvwVqowbrQ Part 1] - covers the following commands: init, status, add, commit, diff, log | ||
+ | ** [http://www.youtube.com/watch?v=mqXGrCHKEZY Part 2] - covers how to ignore files | ||
+ | ** [http://www.youtube.com/watch?v=N7gOCp4UhZY Part 3] - covers basic branching mode and how to move the HEAD around the commit graphs | ||
+ | * JavaScript: basic | ||
+ | ** [http://www.youtube.com/watch?v=ZGYqoy547eU Part 1] - introduction, variables, control flows. | ||
+ | ** [http://www.youtube.com/watch?v=80v0EHy3Ohw Part 2] - functions, I/O with alert() and prompt() | ||
+ | ** [http://www.youtube.com/watch?v=hNc_qOm6FJo Part 3] - how to generate random numbers | ||
+ | |||
+ | == Links == | ||
+ | * [[01219245-56|Course home page from last year]] | ||
+ | * JavaScript | ||
+ | ** Style guides: [https://github.com/rwaldron/idiomatic.js idiomatic.js], [http://contribute.jquery.org/style-guide/js/ jQuery style guide], [http://javascript.crockford.com/code.html Crockford's code convention], [https://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml Google JavaScript Style Guide] |
รุ่นแก้ไขปัจจุบันเมื่อ 16:01, 15 กุมภาพันธ์ 2559
- This is an old homepage from last year. For the recent offering, please see 01219245.
This is a course homepage for 01219245/01219246 Individual Software Process and Individual Software Process Lab for 2nd semester, academic year 2557.
Announcements
- 1/14: In the lab today, we will practice source code version control, using Git. See the material. If you are fast, you can proceed to practice on JavaScript. See JavaScript tutorial 1.
Lectures
- Week 1 (Jan 16): Introduction. (slides)
- Modern software development:
- 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.
- Business Model Canvas Explained is a nice clip that tells you what business thinks when developing a new product.
- Modern software development:
- Week 2 (Jan 23): Incremental & iterative development (slides)
- Week 3 (Feb 13):
- Week 4 (Feb 20):
- Software testing, Unit testing, TDD (slides)
- Unit testing in JavaScript (slides)
- Template for TDD practice: 219245-practice.zip
- Week 6 (Mar 13):
- Test design techniques (slides)
- Practice: KU Student status
- Week 8 (Apr 10):
- Planning for the 3rd iteration (slides)
- Code smells cheat sheet from Industrial Logic.
- Week 9 (Apr 17):
- Practice TDD for objects with states (slide)
- Template: 219245-practice2.zip
- PSP
- Week 10 (Apr 24) Software Estimation:
- Slides:
- Agile estimating from Mountain Goat Software
- Agile Estimation: Key Principles and Practices for Successful Agile Projects from Construx.
- Slides:
- Week 11 (May 1) Software Design:
- DRY, SLAP, SRP from Principles Wiki
- Principles of OOD by Robert Martin
- Slides:
- SOLID: software design principles by Jon Kruger (slideshare)
- SOLID, DRY, SLAP by Сергей Карпушин (slideshare)
- Week 12 (May 8) Project fair
- Week 13 Soft skills for software engineers
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.
- Various how-to:
- Windows:
- Linux:
- Various how-to:
- Master your Editor/IDE:
- 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.
- Version control system with Git
- 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.
- Installation
- Tutorial 100 - sprites
- Tutorial 101: Sprites 2 - Flappy Dot
- Tutorial 103: PacMan
- Guide 200: Platform game without physics engine
- Project setup/review
Video clips
- Git
- JavaScript: basic
Links
- Course home page from last year
- JavaScript