Course detail
Practical Aspects of Software Design
FIT-IVSAcad. year: 2014/2015
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.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Learning outcomes of the course unit
Students will learn to work on projects. They will also improve their knowledge on modern development and documenting tools.
Prerequisites
Co-requisites
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Course curriculum
- 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
- Test definition (17 points)
- Individual project focused to git, libraries, make, debugging, profiling, documentation (23 points)
- Project focused to team development (30 points)
Syllabus - others, projects and individual work of students:
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
- Mid-term test (30 points)
- Projects (70 points in total)
Recommended optional programme components
Prerequisites and corequisites
- recommended prerequisite
Introduction to Software Engineering - recommended prerequisite
Introduction to Programming Systems
Basic literature
Recommended reading
S. A. Babkin: The Practice of Parallel Programming. Create Space, 2010. https://www.createspace.com/3438465