IU:TestPage
Software Project (Fundamentals to Software Engineering from 2021 check another syllabus)
- Course name: Software Project (Fundamentals to Software Engineering from 2021 check another syllabus)
- Course number: S20-SP
Course Characteristics
Key concepts of the class
- To understand agile models of interaction design, development, and project management and put those concepts in practice in real software development.
- To get acquainted with processes, technologies, and activities involved eliciting, analyzing, validating, specifying, and managing functional and non-functional requirements of software systems.
- To manage risks and decisions making based on the risk management
- To be able design software, and to write code that sticks to good practices of cohesion, coupling, modularity, reusing, and encapsulation.
- To get familiar with standard reliability techniques such as validation (testing) and verification.
- To gain practical experience with refactoring techniques to improve the quality of existing code.
What is the purpose of this course?
The main objectives of this course are the following: \begin{itemize} \item To understand agile models of interaction design, development, and project management and put those concepts in practice in real software development. \item To get acquainted with processes, technologies, and activities involved eliciting, analyzing, validating, specifying, and managing functional and non-functional requirements of software systems. \item To manage risks and decisions making based on the risk management \item To be able design software, and to write code that sticks to good practices of cohesion, coupling, modularity, reusing, and encapsulation. \item To get familiar with standard reliability techniques such as validation (testing) and verification. \item To gain practical experience with refactoring techniques to improve the quality of existing code. \end{itemize}
Course objectives based on Bloom’s taxonomy
- What should a student remember at the end of the course?
By the end of the course, the students should be able to
- recall Agile manifesto and principles
- recognize different Agile frameworks
- define core principles and rituals of Scrum framework
- list different types of product backlog items
- recall main concept of system testing, VCM, software architecture, technical debt
- What should a student be able to understand at the end of the course?
By the end of the course, the students should be able to
- discus pros can cons of different project management tools
- describe criteria for good product backlog
- describe criteria for efficient user stories
- explain how to conduct iteration planing, review and retrospective
- discuss possible strategy of Agile implementation
- What should a student be able to apply at the end of the course?
By the end of the course, the students should be able to
- elicit requirements and work with requirements
- design, implement, verify and maintain efficient systems
- present work in front of stakeholders
- effectively critiquing the work of others and receiving such criticism
- work in a development team and collaborate between different teams
Course evaluation
type | points |
---|---|
Group work | 60 |
Individual work | 40 |
Test | 10 |
Grades range
grade | low | high |
---|---|---|
A | 85 | 100 |
B | 75 | 84 |
C | 60 | 74 |
D | 0 | 59 |
Resources and reference material
- Essential Scrum: a practical guide to the most popular agile process by Kenneth S. Rubin.
- Lean Software Development in Action by Janes, Andrea, Succi, Giancarlo
- Software Architecture in Practice, Third Edition by Rick Kazman, Paul Clements, Len Bass
- Design Patterns: Elements of Reusable Object-Oriented Software 1st Edition by Erich Gamma, Richard Helm, Ralph Johnson
- Pro Git by Ben Straub and Scott Chacon
Course Sections
The main sections of the course and approximate hour distribution between them is as follows:
Section 1
Section title
Introduction
Topics covered in this section
- Course explanation
- Transformation in IT Sphere
- Modern trends and the evolution of development processes
- Building IT teams (roles and responsibilities)
- Philosophy of Agile
- Projects presentation
What forms of evaluation were used to test students’ performance in this section?
Form | Yes/No |
---|---|
Development of individual parts of software product code | 0 |
Homework and group projects | 1 |
Midterm evaluation | 0 |
Testing (written or computer based) | 1 |
Reports | 1 |
Essays | 0 |
Oral polls | 1 |
Discussions | 1 |
Typical questions for ongoing performance evaluation within this section
- First, discuss your class project with a stakeholder. With your target stakeholder in mind, design an interview script with closed- and open-ended questions that cover the professional background or knowledge. The questions should also explore in- depth how that person conducts their business in the problem space.
- Second, prepare to conduct the interview. Plan for 15 minutes and record the interview using an audio recorder. Take brief notes as you go, recognizing that you have the audio recording to complement your notes.
- Third, transcribe 1-page of information from your interview that describes the most relevant events to your project. This should include the user’s goals and any explanation of how and why they pursue those goals.
- Fourth, choose 60-second sample from audio file that cover most important information and provide (word-to-word) transcription of it.
Typical questions for seminar classes (labs) within this section
- Create 4-pages document with comparison for tools Project management tools and mind map tools
- Create 10 minutes presentation with tools observation.
Tasks for midterm assessment within this section
Test questions for final assessment in this section
- What is the project management triangle?
- What does mean challenging project?
- What the structure of waterfall model?
- What the difference between iterative and incremental model?
- What the key points in scrum process model?
- What differences between functional, cross-functional and team overlap structures?
- What difference between semantic vs episodic memory?
- What are the basis components of a question