Course detail

Practical Aspects of Software Design

FIT-IVSAcad. year: 2015/2016

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

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

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.

Students will learn to work on projects. They will also improve their knowledge on modern development and documenting tools.

Prerequisites

There are no prerequisites

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Not applicable.

Assesment methods and criteria linked to learning outcomes

At least 50 points.

Course curriculum

    Syllabus of lectures:
    1. Introduction, practical application of unix filosophy in programming
    2. TDD (Test-Driven Development) and its usage in team development
    3. Component-based development, cross-platform libraries, dependencies among code, code assembling
    4. IDE, libraries bundling, program deployment
    5. System documentation generated from the code, project planning, team data sharing
    6. Distributed version contol, GIT
    7. Issue tracking, profiling, debugging
    8. User interfaces
    9. Mid-term test
    10. Programming paradigms
    11. Invited experts from companies
    12. Algorithm optimization, paralelization
    13. Presentations of project results

    Syllabus - others, projects and individual work of students:
    1. Test definition (17 points)
    2. Individual project focused to git, libraries, make, debugging, profiling, documentation (23 points)
    3. Project focused to team development (30 points)

Work placements

Not applicable.

Aims

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.

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

Not applicable.

Prerequisites and corequisites

Basic literature

Dustin Boswell, Trevor Foucher: The Art of Readable Code. O'Reily, 2010. http://readable-code.labs.oreilly J. Pérez López, L. Ribas i Xirgo: Introduction to Software development. http://ftacademy.org/materials/fsm/7#1Scott Chacon Pro Git http://knihy.nic.cz/files/nic/edice/scott_chacon_pro_git.pdf

Recommended reading

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

Classification of course in study plans

  • Programme IT-BC-3 Bachelor's

    branch BIT , 1 year of study, summer semester, elective

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

  1. Introduction, practical application of unix filosophy in programming
  2. TDD (Test-Driven Development) and its usage in team development
  3. Component-based development, cross-platform libraries, dependencies among code, code assembling
  4. IDE, libraries bundling, program deployment
  5. System documentation generated from the code, project planning, team data sharing
  6. Distributed version contol, GIT
  7. Issue tracking, profiling, debugging
  8. User interfaces
  9. Mid-term test
  10. Programming paradigms
  11. Invited experts from companies
  12. Algorithm optimization, paralelization
  13. Presentations of project results

Project

26 hod., optionally

Teacher / Lecturer