This site is from a past semester! The current version will be here when the new semester starts.
TE3201 2020
  • Full Timeline
  • Week 1 [Jan 13]
  • Week 2 [Jan 20]
  • Week 3 [Jan 27]
  • Week 4 [Feb 3]
  • Week 5 [Feb 10]
  • Week 6 [Feb 17]
  • Week 7 [Mar 2]
  • Week 8 [Mar 9]
  • Week 9 [Mar 16]
  • Week 10 [Mar 23]
  • Week 11 [Mar 30]
  • Week 12 [Apr 6]
  • Week 13 [Apr 13]
  • SE Textbook
  • Programming Textbook
  • Admin Info
  • Forum
  • Instructors
  • Announcements
  • repl.it link
  • Files (slides, handouts etc.)
  • Project Info
  • Summary of the Module Timeline

    Week 1 - Jan 13

    Tasks

    1. Learn about the module and the website
    2. Submit the pre-module survey by Saturday 2359
    3. Attend the lecture
    4. Submit weekly exercises
    5. Submit weekly project increment Monty Level 1. Echo Once

    Week 2 - Jan 20

    SE Topics

    • [W2.1] Design Basics

    • [W2.2] Models

    • [W2.3] Activity Diagrams

    • [W2.1] Design Basics

       Introduction

    • [W2.1a] Design → Introduction → What

       Abstraction

    • [W2.1b] Design → Design Fundamentals → Abstraction → What
    • [W2.2a] Design → Modelling → Introduction → What

    • [W2.2b] Design → Modelling → Introduction → How

    • [W2.3] Activity Diagrams
    • [W2.3a] Tools → UML → Activity Diagrams → Introduction

    • [W2.3b] Tools → UML → Activity Diagrams → Linear paths

    • [W2.3c] Tools → UML → Activity Diagrams → Alternate paths

    • [W2.3d] Tools → UML → Activity Diagrams → Parallel paths

    • [W2.3e] Tools → UML → Activity Diagrams → Rakes : OPTIONAL

    • [W2.3f] Tools → UML → Activity Diagrams → Swimlanes : OPTIONAL

    Tasks

    1. Submit weekly exercises
    2. Submit weekly project increment Monty Level 2. Recognize Known Commands

    Week 3 - Jan 27

    SE Topics

    • [W3.1] Requirements: Intro

    • [W3.2] Gathering Requirements

    • [W3.3] Specifying Requirements

    • [W3.1] Requirements: Intro
    • [W3.1a] Requirements → Requirements → Introduction

    • [W3.1b] Requirements → Requirements → Non-functional requirements

    • [W3.1c] Requirements → Requirements → Prioritizing requirements

    • [W3.1d] Requirements → Requirements → Quality of requirements

    • [W3.2] Gathering Requirements
    • [W3.2a] Requirements → Gathering Requirements → Brainstorming

    • [W3.2b] Requirements → Gathering Requirements → Product surveys

    • [W3.2c] Requirements → Gathering Requirements → Observation

    • [W3.2d] Requirements → Gathering Requirements → User surveys

    • [W3.2e] Requirements → Gathering Requirements → Interviews

    • [W3.2f] Requirements → Gathering Requirements → Focus groups

    • [W3.2g] Requirements → Gathering Requirements → Prototyping

    • [W3.3] Specifying Requirements

       Prose

    • [W3.3a] Requirements → Specifying Requirements → Prose → What

       Feature Lists

    • [W3.3b] Requirements → Specifying Requirements → Feature Lists → What

       User Stories

    • [W3.3c] Requirements → Specifying Requirements → User Stories → Introduction

    • [W3.3d] Requirements → Specifying Requirements → User Stories → Details

    • [W3.3e] Requirements → Specifying Requirements → User Stories → Usage

       Use Cases

    • [W3.3f] Requirements → Specifying Requirements → Use Cases → Introduction

    • [W3.3g] Requirements → Specifying Requirements → Use Cases → Identifying

    • [W3.3h] Requirements → Specifying Requirements → Use Cases → Details

    • [W3.3i] Requirements → Specifying Requirements → Use Cases → Usage

       Glossary

    • [W3.3j] Requirements → Specifying Requirements → Glossary → What

       Supplementary Requirements

    • [W3.3k] Requirements → Specifying Requirements → Supplementary Requirements → What

    Tasks

    1. Submit weekly exercises
    2. Submit weekly project increment Monty Level 3. Use Functions

    Week 4 - Feb 3

    SE Topics

    • [W4.1] OOP: Objects

    • [W4.1] OOP: Objects
    • [W4.1a] Paradigms → OOP → Introduction → What

    • [W4.1b] Paradigms → OOP → Objects → What

    • [W4.1c] Paradigms → OOP → Objects → Objects as abstractions

    • [W4.1d] Paradigms → OOP → Objects → Encapsulation of objects

    Tasks

    1. Submit weekly exercises
    2. Submit weekly project increment Level 4. Collect Tasks in Memory

    Week 5 - Feb 10

    SE Topics

    • [W5.1] Exception Handling

    • [W5.1] Exception Handling
    • [W5.1a] Implementation → Error Handling → Introduction → What

    • [W5.1b] Implementation → Error Handling → Exceptions → What

    • [W5.1c] Implementation → Error Handling → Exceptions → How

    • [W5.1d] Implementation → Error Handling → Exceptions → When

    Tasks

    1. Submit weekly exercises
    2. Submit weekly project increment Level 5. Mark Tasks as Done, Level 6. Give Help (optional)

    Week 6 - Feb 17

    SE Topics

    • [W6.1] IDEs: Basic Features

    • [W6.2] Project Mgt: Scheduling and Tracking

    • [W6.1] IDEs: Basic Features
    • [W6.1a] Implementation → IDEs → What

    • [W6.1b] Implementation → IDEs → Debugging → What

    • [W6.2] Project Mgt: Scheduling and Tracking
    • [W6.2a] Project Management → Project Planning → Milestones

    • [W6.2b] Project Management → Project Planning → Buffers

    • [W6.2c] Project Management → Project Planning → Issue trackers

    • [W6.2d] Project Management → Project Planning → Work breakdown structure

    • [W6.2e] Project Management → Project Planning → Gantt charts : OPTIONAL

    • [W6.2f] Project Management → Project Planning → PERT charts : OPTIONAL

    • [W6.2g] Project Management → Teamwork → Team structures

    Tasks

    1. Submit weekly exercises
    2. Submit weekly project increment Level 7. Save Tasks to Disk

    Week 7 - Mar 2

    SE Topics

    • [W7.1] Automated Testing of Text UIs

    • [W7.2] Integration Approaches

    • [W7.3] Code Quality

    • [W7.4] Refactoring

    • [W7.1] Automated Testing of Text UIs
    • [W7.1a] Quality Assurance → Testing → Introduction → What

    • [W7.1b] Quality Assurance → Testing → Regression Testing → What

    • [W7.1c] Quality Assurance → Testing → Test Automation → What

    • [W7.1d] Quality Assurance → Testing → Test Automation → Automated testing of CLI applications

    • [W7.2] Integration Approaches
    • [W7.2a] Implementation → Integration → Introduction → What

    • [W7.2b] Implementation → Integration → Approaches → Late and one time versus early and frequent

    • [W7.2c] Implementation → Integration → Approaches → Big-bang versus incremental integration

    • [W7.2d] Implementation → Integration → Approaches → Top-down versus bottom-up integration : OPTIONAL

    • [W7.3] Code Quality

       Coding Standards

    • [W7.3a] Implementation → Code Quality → Introduction → What

    • [W7.3b] Implementation → Code Quality → Style → Introduction

    • [W7.3c] Implementation → Code Quality → Style → What : OPTIONAL

       Readability

    • [W7.3d] Implementation → Code Quality → Readability → Introduction

    • [W7.3e] Implementation → Code Quality → Readability → Basic → Avoid long methods

    • [W7.3f] Implementation → Code Quality → Readability → Basic → Avoid deep nesting

    • [W7.3g] Implementation → Code Quality → Readability → Basic → Avoid complicated expressions

    • [W7.3h] Implementation → Code Quality → Readability → Basic → Avoid magic numbers

    • [W7.3i] Implementation → Code Quality → Readability → Basic → Make the code obvious : OPTIONAL

       Naming

    • [W7.3j] Implementation → Code Quality → Naming → Introduction

    • [W7.3k] Implementation → Code Quality → Naming → Basic → Use nouns for things and verbs for actions

    • [W7.3l] Implementation → Code Quality → Naming → Basic → Use standard words

       Unsafe Practices

    • [W7.3m] Implementation → Code Quality → Error-Prone Practices → Introduction

    • [W7.3n] Implementation → Code Quality → Error-Prone Practices → Basic → Don't recycle variables or parameters

       Code Comments

    • [W7.3o] Implementation → Code Quality → Comments → Introduction

    • [W7.3p] Implementation → Code Quality → Comments → Basic → Do not repeat the obvious

    • [W7.3q] Implementation → Code Quality → Comments → Basic → Write to the reader

    • [W7.4] Refactoring
    • [W7.4a] Implementation → Refactoring → What

    • [W7.4b] Implementation → Refactoring → When : OPTIONAL

    Tasks

    1. Submit weekly exercises
    2. Submit weekly project increment Level 8. Support Deadlines

    Week 8 - Mar 9

    SE Topics

    • [W8.1] OOP: Basics

    • [W8.2] Reuse: APIs, Frameworks, Libraries, Platforms

    • [W8.3] Cloud Computing

    • [W8.1] OOP: Basics
    • [W8.1a] Paradigms → OOP → Classes → What

    • [W8.2] Reuse: APIs, Frameworks, Libraries, Platforms

       Reuse

    • [W8.2a] Implementation → Reuse → Introduction → What

    • [W8.2b] Implementation → Reuse → Introduction → When

       APIs

    • [W8.2c] Implementation → Reuse → APIs → What

       Libraries

    • [W8.2d] Implementation → Reuse → Libraries → What

    • [W8.2e] Implementation → Reuse → Libraries → How

       Frameworks

    • [W8.2f] Implementation → Reuse → Frameworks → What

    • [W8.2g] Implementation → Reuse → Frameworks → Frameworks versus libraries

       Platforms

    • [W8.2h] Implementation → Reuse → Platforms → What
    • [W8.3] Cloud Computing
    • [W8.3a] Implementation → Reuse → Cloud Computing → What

    • [W8.3b] Implementation → Reuse → Cloud Computing → Iaas, PaaS, and SaaS

    Tasks

    1. Submit weekly exercises
    2. Submit weekly project increment Level 9. Use Classes

    Week 9 - Mar 16

    SE Topics

    • [W9.1] UML Class Diagrams: Basics

    • [W9.2] UML Object Diagrams

    • [W9.3] SDLC Process Models

    • [W9.1] UML Class Diagrams: Basics
    • [W9.1a] Tools → UML → Class Diagrams → Introduction → What

    • [W9.1b] Tools → UML → Class Diagrams → Classes → What

    • [W9.1c] Paradigms → OOP → Classes → Class-level members

    • [W9.1d] Tools → UML → Class Diagrams → Class-Level Members → Class-level members

    • [W9.1e] Paradigms → OOP → Associations → Basic

    • [W9.1f] Tools → UML → Class Diagrams → Associations → What

    • [W9.1g] Tools → UML → Class Diagrams → Associations → Labels

    • [W9.1h] Tools → UML → Class Diagrams → Associations → Roles

    • [W9.1i] Paradigms → OOP → Associations → Multiplicity

    • [W9.1j] Tools → UML → Class Diagrams → Associations → Multiplicity

    • [W9.1k] Paradigms → OOP → Associations → Navigability

    • [W9.1l] Tools → UML → Class Diagrams → Associations → Navigability

    • [W9.1m] Tools → UML → Class Diagrams → Associations as attributes

    • [W9.2] UML Object Diagrams
    • [W9.2a] Tools → UML → Object Diagrams → Introduction

    • [W9.2b] Tools → UML → Object Diagrams → Objects

    • [W9.2c] Tools → UML → Object Diagrams → Associations

    • [W9.2d] Tools → UML → Object versus class diagrams

    • [W9.2e] Tools → UML → Notes

    • [W9.2f] Tools → UML → Constraints : OPTIONAL

    • [W9.3] SDLC Process Models
    • [W9.3a] Project Management → SDLC Process Models → Introduction → What

    • [W9.3b] Project Management → SDLC Process Models → Introduction → Sequential models

    • [W9.3c] Project Management → SDLC Process Models → Introduction → Iterative models

    • [W9.3d] Project Management → SDLC Process Models → Introduction → Agile models

    • [W9.3e] Project Management → SDLC Process Models → Scrum

    • [W9.3f] Project Management → SDLC Process Models → XP

    • [W9.3g] Project Management → SDLC Process Models → Unified process : OPTIONAL

    • [W9.3h] Project Management → SDLC Process Models → CMMI : OPTIONAL

    • [W9.3i] Project Management → SDLC Process Models → Recap

    Tasks

    1. Submit weekly exercises
    2. Submit weekly project increments Level 10. Use More Classes, Level 11. Use Multiple Code Files

    Week 10 - Mar 23

    SE Topics

    • [W10.1] OOP and UML Class/Object Diagrams: Inheritance

    • [W10.2] UML Class/Object Diagrams: Composition, Aggregation, Dependencies

    • [W10.3] Types of Testing

    • [W10.1] OOP and UML Class/Object Diagrams: Inheritance
    • [W10.1a] Paradigms → OOP → Inheritance → What

    • [W10.1b] Tools → UML → Class Diagrams → Inheritance → Inheritance

    • [W10.1c] Paradigms → OOP → Inheritance → Overloading

    • [W10.1d] Paradigms → OOP → Inheritance → Overriding

    • [W10.2] UML Class/Object Diagrams: Composition, Aggregation, Dependencies
    • [W10.2a] Paradigms → OOP → Associations → Composition

    • [W10.2b] Tools → UML → Class Diagrams → Composition → Composition

    • [W10.2c] Paradigms → OOP → Associations → Aggregation

    • [W10.2d] Tools → UML → Class Diagrams → Aggregation → Aggregation

    • [W10.2e] Paradigms → OOP → Associations → Dependencies

    • [W10.2f] Tools → UML → Class Diagrams → Dependencies → Dependencies

    • [W10.3] Types of Testing

       Developer Testing

    • [W10.3a] Quality Assurance → Testing → Developer Testing → What

    • [W10.3b] Quality Assurance → Testing → Developer Testing → Why : OPTIONAL

       Unit Testing

    • [W10.3c] Quality Assurance → Testing → Unit Testing → What

       Integration Testing

    • [W10.3d] Quality Assurance → Testing → Integration Testing → What

       System Testing

    • [W10.3e] Quality Assurance → Testing → System Testing → What

       Acceptance Testing

    • [W10.3f] Quality Assurance → Testing → Acceptance Testing → What

    • [W10.3g] Quality Assurance → Testing → Acceptance Testing → Acceptance versus system testing

       Alpha/Beta Testing

    • [W10.3h] Quality Assurance → Testing → Alpha/Beta Testing → What

    Tasks

    1. Submit weekly exercises
    2. Submit weekly project increment Level 11. Use Inheritance, Level 12. Use Multiple Code Files, Level 13. Add Unit Tests

    Week 11 - Mar 30

    SE Topics

    • [W11.1] Test Case Design

    • [W11.2] Equivalence Partitioning

    • [W11.3] Boundary Value Analysis

    • [W11.4] Other QA Techniques

    • [W11.1] Test Case Design
    • [W11.1a] Quality Assurance → Test Case Design → Introduction → What

    • [W11.1b] Quality Assurance → Testing → Exploratory and Scripted Testing → What

    • [W11.1c] Quality Assurance → Testing → Exploratory and Scripted Testing → When : OPTIONAL

    • [W11.1d] Quality Assurance → Test Case Design → Introduction → Black box versus glass box

    • [W11.2] Equivalence Partitioning
    • [W11.2a] Quality Assurance → Test Case Design → Equivalence Partitions → What

    • [W11.2b] Quality Assurance → Test Case Design → Equivalence Partitions → Basic

    • [W11.2c] Quality Assurance → Test Case Design → Equivalence Partitions → Intermediate

    • [W11.3] Boundary Value Analysis
    • [W11.3a] Quality Assurance → Test Case Design → Boundary Value Analysis → What

    • [W11.3b] Quality Assurance → Test Case Design → Boundary Value Analysis → How

    • [W11.4] Other QA Techniques
    • [W11.4a] Quality Assurance → Quality Assurance → Introduction → What

    • [W11.4b] Quality Assurance → Quality Assurance → Code Reviews → What

    • [W11.4c] Quality Assurance → Quality Assurance → Static Analysis → What

    • [W11.4d] Quality Assurance → Quality Assurance → Formal Verification → What

    Tasks

    1. Monty: Add Level 14. Add a GUI or the individual feature.

    Week 12 - Apr 6

    Programming Topics

    ~No more Python Topics~

    SE Topics

    • [W12.1] Revision Control

    • [W12.2] Writing Developer Documents

    • [W12.1] Revision Control
    • [W12.1a] Project Management → Revision Control → What

    • [W12.1b] Project Management → Revision Control → Repositories : OPTIONAL

    • [W12.2] Writing Developer Documents

       Type of Developer Docs

    • [W12.2a] Implementation → Documentation → Introduction → What

       Guideline: Aim for Comprehensibility

    • [W12.2b] Implementation → Documentation → Guidelines → Aim for Comprehensibility → What

    • [W12.2c] Implementation → Documentation → Guidelines → Aim for Comprehensibility → How

       Guideline: Describe Top-Down

    • [W12.2d] Implementation → Documentation → Guidelines → Describe Top-Down → What

    • [W12.2e] Implementation → Documentation → Guidelines → Describe Top-Down → Why

    • [W12.2f] Implementation → Documentation → Guidelines → Describe Top-Down → How

       Guideline: Minimal but Sufficient

    • [W12.2g] Implementation → Documentation → Guidelines → Minimal but Sufficient → What

    • [W12.2h] Implementation → Documentation → Guidelines → Minimal but Sufficient → How

    Tasks

    1. Enhance previous week's increment or add another individual feature
    2. Start preparing for the final submission

    Week 13 - Apr 13

    Tasks

    1. Submit the project