| Title: | Practical Aspects of Software Design |
|---|
| Code: | IVS |
|---|
| Ac.Year: | 2012/2013 |
|---|
| Term: | Summer |
|---|
| Study plans: | |
|---|
| Language: | Czech |
|---|
| Public info: | http://www.fit.vutbr.cz/study/courses/IVS/public/ |
|---|
| Credits: | 5 |
|---|
| Completion: | classified accreditation |
|---|
Type of instruction: | | Hour/sem | Lectures | Sem. Exercises | Lab. exercises | Comp. exercises | Other |
|---|
| Hours: | 26 | 0 | 0 | 0 | 26 |
|---|
| | Examination | Tests | Exercises | Laboratories | Other |
|---|
| Points: | 0 | 30 | 0 | 0 | 70 |
|---|
|
|---|
| Guarantee: | Smrž Pavel, doc. RNDr., Ph.D., DCGM |
|---|
| Lecturer: | Dytrych Jaroslav, Ing., DCGM Kouřil Jan, Ing., DCGM Materna Zdeněk, Ing., DCGM Otrusina Lubomír, Ing., DCGM Polok Lukáš, Ing., DCGM Smrž Pavel, doc. RNDr., Ph.D., DCGM Škoda Petr, Mgr., DCGM Šperka Svatopluk, Ing., DCGM |
| Faculty: | Faculty of Information Technology BUT |
|---|
| Department: | Department of Computer Graphics and Multimedia FIT BUT |
|---|
| Prerequisites: | |
|---|
| Schedule: | | Day | Lesson | Week | Room | Start | End | Lect.Gr. | St.G. | EndG. |
|---|
| Fri | Dokončení obhajob proj. | 2013-05-03 | D0206 | 12:00 | 13:50 | | | |
|
|---|
| | | Learning objectives: |
|---|
To understand the process of software development in teams and to get acquaint with real applications that help creating and documenting component-based projects, to learn how to easily prototype graphical user interfaces, what are preconditions of successful free software and usability measurement. | | Description: |
|---|
Fundamentals of unix philosophy and their use in programming, the role of code testing and the test-driven development, component-oriented code, performance issues, profiling, distributed version management, parallel computing, big data, practical experience of software teams. | | Subject specific learning outcomes and competences: |
|---|
Students will get acquainted with modern approaches to software development, having successfully completed the course, students will be able to take part in teams developing shared code, will know the tools helping the development of efficient and well-documented code as well as applications better reflecting the users needs. | | Generic learning outcomes and competences: |
|---|
Students will learn to work on projects. They will also improve their knowledge on modern development and documenting tools. | | Syllabus of lectures: |
|---|
- Introduction, practical application of unix filosophy in programming
- TDD (Test-Driven Development) and its usage in team development
- Component-based development, cross-platform libraries, dependencies among code, code assembling
- IDE, libraries bundling, program deployment
- System documentation generated from the code, project planning, team data sharing
- Distributed version contol, GIT
- Issue tracking, profiling, debugging
- User interfaces
- Mid-term test
- Programming paradigms
- Invited experts from companies
- Algorithm optimization, paralelization
- Presentations of project results
| | Syllabus - others, projects and individual work of students: |
|---|
- Test definition (17 points)
- Individual project focused to git, libraries, make, debugging, profiling, documentation (23 points)
- Project focused to team development (30 points)
| | Fundamental literature: |
|---|
- Dustin Boswell and Trevor Foucher: The Art of Readable Code O'Reily, 2010. http://readable-code.labs.oreilly.
- J. Pérez López and L. Ribas i Xirgo: Introduction to Software development, http://ftacademy.org/materials/fsm/7#1
| | Study literature: |
|---|
- Ken Schwaber and Mike Beedle Agile Software Development with Scrum Addision-Wesley, 2002
- S. A. Babkin The Practice of Parallel Programming Create Space, 2010. https://www.createspace.com/3438465
| | Progress assessment: |
|---|
- Mid-term test (30 points)
- Projects (70 points in total)
| | Exam prerequisites: |
|---|
At least 50 points. | | |
|