Admin Weekly schedule → The TIC4002 week vs normal academic week
Each TIC4002 week starts with the lecture and ends just before the following week's lecture. The only exception is week 1, which starts on the Monday of the first week of the semester.
Admin Weekly schedule → Deadline for weekly tasks
Topics:
No topics allocated to this week.
Admin:
Topics:
[W2.2] Class/Object Diagrams: Basics
[W2.3] Class Diagrams: Intermediate-Level
[W2.4] OO Domain Models
[W2.5] Sequence Diagrams
[W2.6] Activity Diagrams
Full ToC
Admin:
iP:
A-Gradle
tP:
Topics:
Full ToC
Introduction
[W3.2a] Design → Design Patterns → Introduction → What :
[W3.2b] Design → Design Patterns → Introduction → Format :
[For Reference] Singleton pattern
[W3.2c] Design → Design Patterns → Singleton → What :
[W3.2d] Design → Design Patterns → Singleton → Implementation :
[W3.2e] Design → Design Patterns → Singleton → Evaluation :
[For Reference] Facade pattern
[W3.3a] Design → Design Patterns → Command Pattern → What
[W3.3b] Design → Design Patterns → MVC Pattern → What
[W3.3c] Design → Design Patterns → Observer Pattern → What
[W3.3d] Design → Design Patterns → Other design patterns : OPTIONAL
[W3.3e] Design → Design Patterns → Combining design patterns : OPTIONAL
[W3.3f] Design → Design Patterns → Using design patterns : OPTIONAL
[W3.3g] Design → Design Patterns → Design patterns versus design principles : OPTIONAL
[W3.3h] Design → Design Patterns → Other types of patterns : OPTIONAL
Admin:
iP:
Level-10
tP:
Topics:
Full ToC
Prose
Feature Lists
User Stories
Admin:
iP:
A-CI
tP:
Topics:
[W5.4] Design: High-Level View
[W5.5] Design: Fundamentals
[W5.6] Architecture
[W5.7] Architectural Styles
[W5.8] Design Approaches
Full ToC
Coding Standards
[W5.1a] Implementation → Code Quality → Introduction → What :
[W5.1b] Implementation → Code Quality → Style → Introduction :
Code Quality: Naming
[W5.1c] Implementation → Code Quality → Naming → Introduction :
[W5.1d] Implementation → Code Quality → Naming → Basic → Use nouns for things and verbs for actions :
[W5.1e] Implementation → Code Quality → Naming → Basic → Use standard words :
[W5.1f] Implementation → Code Quality → Naming → Intermediate → Use name to explain :
[W5.1g] Implementation → Code Quality → Naming → Intermediate → Not too long, not too short :
[W5.1h] Implementation → Code Quality → Naming → Intermediate → Avoid misleading names :
Readability
[W5.1i] Implementation → Code Quality → Readability → Introduction :
[W5.1j] Implementation → Code Quality → Readability → Basic → Avoid long methods :
[W5.1k] Implementation → Code Quality → Readability → Basic → Avoid deep nesting :
[W5.1l] Implementation → Code Quality → Readability → Basic → Avoid complicated expressions :
[W5.1m] Implementation → Code Quality → Readability → Basic → Avoid magic numbers :
[W5.1n] Implementation → Code Quality → Readability → Basic → Make the code obvious :
[W5.1o] Implementation → Code Quality → Readability → Intermediate → Structure code logically :
[W5.1p] Implementation → Code Quality → Readability → Intermediate → Do not 'Trip Up' reader :
[W5.1q] Implementation → Code Quality → Readability → Intermediate → Practice KISSing :
[W5.1r] Implementation → Code Quality → Readability → Intermediate → Avoid premature optimizations :
[W5.1s] Implementation → Code Quality → Readability → Intermediate → SLAP hard :
[W5.1t] Implementation → Code Quality → Readability → Advanced → Make the happy path prominent :
Unsafe Practices
[W5.1u] Implementation → Code Quality → Error-Prone Practices → Introduction :
[W5.1v] Implementation → Code Quality → Error-Prone Practices → Basic → Use the default branch :
[W5.1w] Implementation → Code Quality → Error-Prone Practices → Basic → Don't recycle variables or parameters :
[W5.1x] Implementation → Code Quality → Error-Prone Practices → Basic → Avoid empty catch blocks :
[W5.1y] Implementation → Code Quality → Error-Prone Practices → Basic → Delete dead code :
[W5.1z] Implementation → Code Quality → Error-Prone Practices → Intermediate → Minimize scope of variables :
[W5.1A] Implementation → Code Quality → Error-Prone Practices → Intermediate → Minimize code duplication :
Code Comments
[W5.1B] Implementation → Code Quality → Comments → Introduction :
[W5.1C] Implementation → Code Quality → Comments → Basic → Do not repeat the obvious :
[W5.1D] Implementation → Code Quality → Comments → Basic → Write to the reader :
[W5.1E] Implementation → Code Quality → Comments → Intermediate → Explain WHAT and WHY, not HOW :
Introduction
Abstraction
Coupling
[W5.5b] Design → Design Fundamentals → Coupling → What :
[W5.5c] Design → Design Fundamentals → Coupling → How :
[W5.5d] Design → Design Fundamentals → Coupling → Types of coupling :
Cohesion
[W5.7a] Design → Architecture → Styles → What
[W5.7b] Design → Architecture → Styles → n-Tier Style → What
[W5.7c] Design → Architecture → Styles → Client-Server Style → What
[W5.7d] Design → Architecture → Styles → Event-Driven Style → What
[W5.7e] Design → Architecture → Styles → Transaction Processing Style → What
[W5.7f] Design → Architecture → Styles → Service-Oriented Style → What : OPTIONAL
[W5.7g] Design → Architecture → Styles → Using styles : OPTIONAL
[W5.7h] Design → Architecture → Styles → More styles : OPTIONAL
Admin:
iP:
tP:
Topics:
Full ToC
Use Cases
[W6.1a] Requirements → Specifying Requirements → Use Cases → Introduction :
[W6.1b] Requirements → Specifying Requirements → Use Cases → Identifying :
[W6.1c] Requirements → Specifying Requirements → Use Cases → Details :
[W6.1d] Requirements → Specifying Requirements → Use Cases → Usage :
Glossary
Supplementary Requirements
Type of Developer Docs
Guideline: Aim for Comprehensibility
[W6.4b] Implementation → Documentation → Guidelines → Aim for Comprehensibility → What :
[W6.4c] Implementation → Documentation → Guidelines → Aim for Comprehensibility → How :
Guideline: Describe Top-Down
[W6.4d] Implementation → Documentation → Guidelines → Describe Top-Down → What
[W6.4e] Implementation → Documentation → Guidelines → Describe Top-Down → Why
[W6.4f] Implementation → Documentation → Guidelines → Describe Top-Down → How
Guideline: Minimal but Sufficient
Admin:
iP:
tP: v1.1
AboutUs
, README
Topics:
[W7.1] Error Handling: Exceptions
[W7.2] Error Handling: Assertions
[W7.3] Error Handling: Logging
[W7.4] Error Handling: Defensive Programming
Full ToC
[W7.1a] Implementation → Error Handling → Introduction → What :
[W7.1b] Implementation → Error Handling → Exceptions → What :
[W7.1c] Implementation → Error Handling → Exceptions → How :
[W7.1d] C++ to Java → Exceptions → What are Exceptions? :
[W7.1e] C++ to Java → Exceptions → How to use Exceptions :
[W7.1f] Implementation → Error Handling → Exceptions → When :
[W7.4a] Implementation → Error Handling → Defensive Programming → What
[W7.4b] Implementation → Error Handling → Defensive Programming → Enforcing compulsory associations
[W7.4c] Implementation → Error Handling → Defensive Programming → Enforcing 1-to-1 associations
[W7.4d] Implementation → Error Handling → Defensive Programming → Enforcing referential integrity
[W7.4e] Implementation → Error Handling → Defensive Programming → When
[W7.4f] Implementation → Error Handling → Design by Contract → Design by contract
Admin:
tP:
Topics:
No topics allocated to this week.
Admin:
tP: v1.2
Topics:
[W9.1] Test Cases: Intro
[W9.2] Test Cases: Equivalence Partitioning
[W9.3] Test Cases: Boundary Value Analysis
[W9.4] Test Cases: Combining Multiple Inputs
Full ToC
[W9.4a] Quality Assurance → Test Case Design → Combining Test Inputs → Why
[W9.4b] Quality Assurance → Test Case Design → Combining Test Inputs → Test input combination strategies
[W9.4c] Quality Assurance → Test Case Design → Combining Test Inputs → Heuristic: Each valid input at least once in a positive test case
[W9.4d] Quality Assurance → Test Case Design → Combining Test Inputs → Heuristic: No more than one invalid input in a test case
[W9.4e] Quality Assurance → Test Case Design → Combining Test Inputs → Mix
Admin:
tP:
Topics:
Full ToC
Integration Testing
[W10.1a] Quality Assurance → Testing → Integration Testing → What :
[W10.1b] Quality Assurance → Testing → Integration Testing → How :
System Testing
[W10.1c] Quality Assurance → Testing → System Testing → What :
[W10.1d] Quality Assurance → Testing → Test Automation → Automated testing of GUIs :
Acceptance Testing
[W10.1e] Quality Assurance → Testing → Acceptance Testing → What :
[W10.1f] Quality Assurance → Testing → Acceptance Testing → Acceptance versus system testing :
Alpha/Beta Testing
Exploratory vs Scripted Testing
Dependency Injection
[W10.2a] Quality Assurance → Testing → Dependency Injection → What :
[W10.2b] Quality Assurance → Testing → Dependency Injection → How :
Testability
Test Coverage
[W10.2d] Quality Assurance → Testing → Test Coverage → What :
[W10.2e] Quality Assurance → Testing → Test Coverage → How :
TDD
Admin:
None assigned for this week
tP: v1.3
Topics:
No topics allocated to this week.
Admin:
None assigned for this week
tP:
Topics:
Full ToC
[W12.2a] Project Management → SDLC Process Models → Introduction → Agile models
[W12.2b] Project Management → SDLC Process Models → Scrum
[W12.2c] Project Management → SDLC Process Models → XP
[W12.2d] Project Management → SDLC Process Models → Unified process
[W12.2e] Project Management → SDLC Process Models → CMMI
[W12.2f] Project Management → SDLC Process Models → Recap :
Admin:
tP:
Topics:
No topics allocated to this week.
Admin:
tP: v1.4