We need to schedule the presentations ...
Please submit the course evaluation online.
The course essentially deals with 4 problems:
- Code collaboration
- Git
- GitHub.
- Team Management
- Various processes: TDD, XP, Scrum and Kanban.
- Product Design
- User-centric design.
- Tools like Personas, user stories and CRC cards.
- Software Architecture
- Loosely coupled architecture.
- Design patterns
Notice how the solutions to the different problems are all related - They all help our team become "more agile". That is, they help our team be efficient and get things right.
- Short-answer questions
- Coding questions
- You will be asked to write Java code.
- We are not testing you on the syntax of Java
- If you abbreviate
System.out.println
withprint
, that's fine. - If you confuse Java with Python, and call
append
instead ofadd
, that's fine. - If you forget a semicolon, that's fine.
- If you abbreviate
- That being said, we want you to write code that shows us that you
clearly understand what the different pieces of an application do,
and how they interact with one another.
- If you confuse a class with an interface, that's bad.
- If you define a method that returns one type, and then use it as if it returned a different type, that's bad.
- If you don't understand the difference between public and private, that's bad.
- Go over the lecture notes.
- Go over the code examples.
- Make sure you understand the various design patterns:
- What problem does each pattern solve?
- How do you implement it?
- Make sure you understand the different Agile process and tools:
- We don't expect you to memorize all the rules, but you should definitely know about the highlights of each process, and be able to compare between two different processes.
- Make sure you understand why we use each tool.
- You should understand how Git & GitHub work. If you've done the work during the term, you should be fine.