Collegiate programming laboratory 0800-PPROZESP2-2
During the course students will work in teams to carry out a software project. Teams and projects selection is agreed with the teacher.
Projects are implemented using iterative (agile) methodologies using tools that support development teams such as version control systems (git or subversion) and project management systems (TFS/VSTS, GitHub, trac).
The classes are held once every two weeks. During meetings teams will report work progress, they will identify and assign tasks for next iteration, discuss issues related to the project, share knowledge about the technologies and tools they are using for project implementation.
The main tasks facing the teams:
- team creation and team role assignment, team leader selection
- identify project milestones and software requirements, define task and assign them to team members
- task planing, work items prioritization and effort estimation
- selection of development tools and technologies needed to complete the tasks
- development of architecture and system specifications
- providing a web page containing information about the project and the team
- project implementation in accordance with provided specification
- collaborative development using version control tools and project management tools
- application documentation and technical documentation preparation and maintaining
- reporting tasks and work progress
- final product presentation
Total student workload
Learning outcomes - knowledge
Learning outcomes - skills
Learning outcomes - social competencies
Teaching methods
Observation/demonstration teaching methods
Exploratory teaching methods
- seminar
Online teaching methods
- content-presentation-oriented methods
- cooperation-based methods
Type of course
Prerequisites
Course coordinators
Assessment criteria
The course covers 30 hours of classes divided into 2 semesters.
Assessment of the course after the first semester depends on the current stage of work on the project. Final course assessment take place on the basis of presentation of product (finished project) developed by each team.
The assessment given by teacher takes into account:
- quality of the final product including working application, documentation, design, technical and user documentation, project website, algorithmic and technical solutions applied, form of final presentation (outcomes W5, U4, U5, K3)
- degree of cooperation in the team, proper division of tasks and team roles, effectiveness of team communication, utilization of collaborative tools for developers (version control, project management systems, IDEs, issue trackers) (outcomes W1, W2, W4, U2, U6, U7, K2)
- evaluation of project planing, software requirements analysis, proper task specification and degree of compliance of implemented features with the objectives (outcomes W5, U3, U6, U7)
- effectiveness in execution of scheduled tasks and effort estimation accuracy (outcomes U7, K2, K3)
- selection of development tools and technologies necessary for the project (outcomes W3, W4, U4, U5)
- ability to acquire, share and present knowledge about the tools and technologies used in the project (outcomes U1)
Bibliography
- Ian Sommerville, Inżynieria oprogramowania, Wydawnictwa Naukowo-Techniczne, Warszawa 2003.
- Scott Chacon and Ben Straub, Pro Git, 2nd edition, https://git-scm.com/book/en/v2
- Martin, Robert C., Agile software development: Principles, Patterns, and Practices, Pearson Education, 2003 - 529
- Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato, Version Control with Subversion, http://svnbook.red-bean.com/
- Murray Cantor, Jak kierować zespołem programistów, Wydawnictwa Naukowo-Techniczne, Warszawa, 2004.
Additional information
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: