📗 -> Software Engineering

short mode
not done
tags include #SWE
description includes foo

🔶 Course Description

Requirements, specification, design, implementation, testing, and verification of large software systems. Study and use of software engineering methodologies

The course will focus on the following three modules:

  • Building components (design patterns, reflective programming)
  • Composing systems (microservices, message-queues and pub/sub, Kafka, orchestration frameworks)
  • Validating components (property-based testing, fuzz testing, advanced topics)

❗ Important

Instructor:

TA:

📄 Class Material

Week 1 - Course intro, OO, Design Patterns

Week 2 - Design Patterns, JDK

Week 3 - Redis + Dynamic Proxies

MLK Day

Week 4 - Annotations, Microservices, Messaging

Week 5 - Kafka, Broker architecture, Fault Tolerance

Week 6 - Metadata and Coordination

Midterm

Week 7 - Kubernetes

Holiday

Week 8 - Kubernetes + FaaS

Week 9 - Software Testing

Week 10 - Symbolic execution, Abstract Interpretation

Summary of Slides:

L1: Course Intro (1d)
D1: Java Basic
L2: Design Patterns (4d)

OO + Creational design patterns
Structural design patterns
Java Basic
Behavioral design patterns
Design patterns contd.

D2: JDK and Maven
L3: Java Annotations and Reflection (4d)

Annotations and runtime reflection
Java Dynamic proxies
Java Annotation processor

1/21 - Case study: redis perssistence network

D3: Unit Test
L4: Microservices (2d)
D4: Reflection