Course details

Practical Aspects of Software Design

IVS Acad. year 2023/2024 Summer semester 5 credits

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

Course coordinator

Language of instruction

Czech, English

Completion

Classified Credit

Time span

  • 26 hrs lectures
  • 26 hrs projects

Assessment points

  • 30 pts mid-term test (written part)
  • 70 pts projects

Department

Lecturer

Instructor

Course Web Pages

Learning objectives

To understand the process of software development in teams and to get acquainted with real applications that help to create and documenting component-based projects, to learn how to easily prototype graphical user interfaces, what are preconditions of successful free software and usability measurement.
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 user's needs. Students will learn to work on projects. They will also improve their knowledge of modern development and documenting tools.

Why is the course taught

The course IVS was established as a preparatory course for student collaboration on research at the FIT. It provides students with insight into the entire process of SW development from planning, design, implementation and testing to final product deployment in the customer's company. The graduate will know what each stage of SW development involves and what tools are used in it, which will allow him/her to be better oriented when choosing his / her specialization and other elective courses. An essential part of the course is the preparation of students for teamwork on SW development and familiarization with version control systems, as these are basic knowledge and skills for developing any larger SW.

Recommended prerequisites

Study literature

  • Ken Schwaber and Mike Beedle Agile Software Development with Scrum Addision-Wesley, 2002
  • BATH, Graham a Judy MCKAY. The software test engineer's handbook. Santa Barbara: Rocky Nook, 2008, xviii, 397 s. ISBN 978-1-933952-24-6.
  • S. A. Babkin: The Practice of Parallel Programming. Create Space, 2010. https://www.createspace.com/3438465
  • STEPHENS, Matt a Doug, ROSENBERG. Testování softwaru řízené návrhem. Brno: Computer Press, 2011, 336 s. : il., portréty. ISBN 978-80-251-3607-2.
  • Dustin Boswell, Trevor Foucher: The Art of Readable Code. O'Reily, 2010. https://www.oreilly.com/library/view/the-art-of/9781449318482/
  • Scott Chacon: Pro Git, 2009 http://knihy.nic.cz/files/nic/edice/scott_chacon_pro_git.pdf
  • Fowler, M.: Refactoring: Improving the Design of Existing Code (2nd Edition), 2018.
  • J. Pérez López, L. Ribas i Xirgo: Introduction to Software development, 2010. http://ftacademy.org/sites/ftacademy.org/files/materials/fta-m7-fs_development.pdf
  • Baumann, H.; Grässle, P.; Baumann, P.: UML 2.0 in Action: A project-based tutorial. Birmingham: Packt Publishing, Prosinec 2009, ISBN 1-904811-55-8. Download
  • Osterhage, W. W.: IT Quality Management. Berlin, Heidelberg: Springer Berlin / Heidelberg, 2015. ISBN 9783662437667.
  • Critchley, A. et al: Git® Notes for Professionals. GoalKicker.com, 2017.
  • Booth, J. D.: GitHub Succinctly. Syncfusion Inc. 2016.

Syllabus of lectures

  1. Introduction, practical rules for the writing of sustainable code and effective usage of IDE
  2. Software testing, TDD (Test-Driven Development) and its usage in team development
  3. Teamwork, communication, team data sharing, basics of project design and planning
  4. Distributed version control, GIT
  5. Documentation types, system documentation generated from the code, Component-based development and cross-platform libraries
  6. Code assembling, Make, Cmake a Qmake.
  7. User interfaces
  8. Issue tracking, debugging, bug tracking and QA
  9. Mid-term test
  10. Program deployment
  11. Algorithm optimization, parallelization and profiling
  12. Programming languages and paradigms, SWIG and integration of legacy code
  13. Invited experts from companies

Syllabus - others, projects and individual work of students

  1. Test definition (18 points)
  2. The project focused on team development (52 points)

Progress assessment

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

Exam prerequisites

At least 50 points.

Schedule

DayTypeWeeksRoomStartEndCapacityLect.grpGroupsInfo
Mon other 2024-04-29 N204 N205 10:0011:00 01 - 29.4.2024, 10:00 - 11:00, N204+N205
Mon other 2024-04-29 N204 N205 11:0012:00 02 - 29.4.2024, 11:00 - 12:00, N204+N205
Mon other 2024-04-29 N204 N205 13:0014:00 03 - 29.4.2024, 13:00 - 14:00, N204+N205
Mon other 2024-04-29 N204 N205 17:0018:00 04 - 29.4.2024, 17:00 - 18:00, N204+N205
Mon other 2024-04-29 N204 N205 18:0019:00 05 - 29.4.2024, 18:00 - 19:00, N204+N205
Tue other 2024-04-30 N204 N205 13:0014:00 06 - 30.4.2024, 13:00 - 14:00, N204+N205
Tue other 2024-04-30 N204 N205 14:0015:00 07 - 30.4.2024, 14:00 - 15:00, N204+N205
Wed lecture 1., 3., 4., 5., 11. of lectures D0206 D105 12:0013:50470 1BIA 1BIB 2BIA 2BIB 3BIT xx Dytrych
Wed lecture 6., 9. of lectures D0206 D105 12:0013:50470 1BIA 1BIB 2BIA 2BIB 3BIT xx Malík
Wed lecture 7., 8., 10. of lectures D0206 D105 12:0013:50470 1BIA 1BIB 2BIA 2BIB 3BIT xx Dytrych, Veigend
Wed lecture 2024-02-14 D0206 D105 12:0013:50470 1BIA 1BIB 2BIA 2BIB 3BIT xx Kozák
Fri exam 2024-04-05 A112 D0206 D0207 D105 E112 08:0009:50 Půlsemestrální zkouška
Fri exercise 2024-04-19 D0206 D105 10:0011:50470 1BIA 1BIB 2BIA 2BIB 3BIT xx Regéciová Přednáška - Programovací jazyky a paradigmata, SWIG a práce se starším kódem
Fri other 2024-05-03 N204 N205 10:0011:00 08 - 3.5.2024, 10:00 - 11:00, N204+N205
Fri seminar 2024-04-05 D0206 D105 10:0011:50470 1BIA 1BIB 2BIA 2BIB 3BIT xx Malík Demonstrační cvičení na pokročilý GIT II
Fri other 2024-05-03 N204 N205 11:0012:00 09 - 3.5.2024, 11:00 - 12:00, N204+N205
Fri other 2024-05-24 C235 12:0013:00 Zápočet
Fri other 2024-05-03 N204 N205 13:0014:00 10 - 3.5.2024, 13:00 - 14:00, N204+N205
Fri other 2024-05-03 N204 N205 14:0015:00 11 - 3.5.2024, 14:00 - 15:00, N204+N205
Fri other 2024-05-03 N204 N205 15:0016:00 12 - 3.5.2024, 15:00 - 16:00, N204+N205

Course inclusion in study plans

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