CS247: Software Engineering Principles

My favourite course in 2B. Ross Evans is insane at teaching. He knows C++ unlike Derek…

A class that focuses on Design Patterns and C++.

Concepts

Lectures

Combined: CS247 Lectures


Final
  • Final Review CS247

  • CS247 final practice

  • Review lost marks on midterm

    • vptr question
    • some random multiple choice questions
  • Add in design pattern for Constructor notetodo

  • How do operators get inherited with polymorphism?

  • Review complete Lec 22, and Exception Handling, Exception Safety L12 and L22

  • CRTP, Visitor pattern.

  • RAII and SOLID: RAII is basically managing memory by using smart_ptr. SOLID is good programming practice for longevity of program.

  • Virtual Methods AND Inheritance

  • Generally, we don not call the constructor directly with a pointer, because of the following issues: L13 basically use make_unqiue<>

  • Write out Visitor Pattern, not satisfied, now use the CRTP pattern

  • 2 problems with shared_ptr: cycle and double deletion?

  • static_cast doesn’t allow you to cast an AbstractBook* to an int* for example. reinterpret_cast does.

  • Why the ordering obscure when defining a unique pointer inside of a function call? A:  The ordering is not only obscure when defining a unique pointer, it can also occur with other functions. In c++14, there is no specification/standard of the ordering, so it is obscure.

CS247 Midterm

Thoughts on final:

  • He ended up just asking about the Observer and (I forgot what other) Design Pattern.
  • Some True and False questions. Need to explain why it’s false.
  • Easy overall
Midterm

From Lecture 1 to Lecture 11 (middle somewhere). Understand the big 5 ahhhhh.

Questions: https://docs.google.com/document/d/1yBlP1CHDUH5gxp0wspMzOOMV9iYvjfRQ-JJDe8w0coI/edit#

Midterm Practice CS247

How to Run Assignments Scrips