Course details

Practical Aspects of Software Design

IVS Acad. year 2012/2013 Summer semester 5 credits

Current academic year

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.

Guarantor

Language of instruction

Czech, English

Completion

Classified Credit

Time span

  • 26 hrs lectures
  • 26 hrs projects

Department

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.

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

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.

Recommended prerequisites

Prerequisite knowledge and skills

There are no prerequisites

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

Fundamental literature

Syllabus of lectures

  1. Introduction, motivation, basic concepts, course organization
  2. Practical use of the Unix philosophy in programming
  3. TDD (Test-Driven Development) a its use in software development
  4. Issue tracking, profiling, debugging
  5. component-based development, cross-platform libraries, dependencies among code, code assembling
  6. Distributed version contol, GIT
  7. Functional mock-up tools
  8. Usability measurement, user experience
  9. Speeding-up computation via paralelization
  10. System documentation generated from the code
  11. Alternative programming paradigms in large data processing
  12. Invited experts from companies
  13. Presentations of project results

Progress assessment

At least 50 points.

Controlled instruction

  • Mid-term test (30 points)
  • Projects (70 points in total)

Course inclusion in study plans

  • Programme IT-BC-3, field BIT, 1st year of study, Elective
Back to top