website/content/ta/spring2022/csci2600/_index.md
2022-05-01 01:08:27 -04:00

1.9 KiB

title
CSCI 2600 Principles of Software

Recitations

The following are recitations I have prepared for a weekly one hour session:

Recitation 1

  • Topics: Introduction, Eclipse Setup

Recitation 2

  • Topics: Variable Models, Stack/Heap, Inheritence, Interfaces, Abstract Classes, Mutability, Strong/Weak Typing, Static/Dynamic Typing

Recitation 3

  • Topics: Compilation/Interpretation, Subtype Polymorphism, Static/Dynamic Binding, Overloading/Overriding, Forward/Backward Reasoning

Recitation 4

  • Topics: Reasoning through Loops, Loop Invariants, Correctness, Termination, Induction

Recitation 5

  • Topics: JavaDoc, Specification Strength, Type Variances, ADTs

Recitation 6

  • Topics: ADT Methods, Immutability, Representation Invariant/Exposure, Defensive Programming, Assertions, Exceptions

Recitation 7: Exam Review

Recitation 8

  • Topics: Bugs, Unit/Integration/Acceptance Testing, White/Black Box Testing, Equivalence Partitioning, Boundary Value Analysis, Reference/Value Equality, Equality Relations, Hash Functions

Recitation 9

  • Topics: Overloading/Overriding, Dispatching, Polymorphism, SOLID, Subclassing, True Subtypes, Liskov Substitution Principle

Recitation 10

  • Topics: Design Patterns, Creational Patterns, Structural Patterns, Behavioral Patterns, Builder, Factory, Singleton, Adapter, Decorator, Flyweight, Mediator, Observer, Visitor

Recitation 11: Exam Review

Recitation 12: Exam Review

Recitation 13

  • Topics: Technical Debt, Antipatterns, Code Smells, Refactoring, Extract Method, Move Method, Replace Temp with Query, State Design Pattern, Usability, Fitt's Law, Prototyping, User Testing

Recitation 14: Final Thoughts and Final Exam Review