CPSC 210

Software Construction

Welcome!!

🏗️

🏗️

Thanks to many others for the work this course is based on:

Elisa Baniassad, Paul Carter, Felix Grund,
 Reid Holmes, Norm Hutchinson, Gail Murphy, Steve Wolfman, ... and many more!  

Who am I?

Meghan

Previously taught 103, 107, 110, 121, 211 (210's long-ago predecessor!), 310, 417, ...

  • Associate Professor of Teaching at UBC
    (faculty since 2007)
  • Three years of industrial software development experience

We are a team of 2 instructors (me and Steve), one course coordinator (Riley) and 25+ amazing TAs! 

Zoom

We are using Zoom for many Help Sessions (= Office Hours)
and a limited remote lecture experience

And we may not get a chance to check Zoom chat often. 💬

All lecture sessions will be streamed live on Zoom 💦

But the in-person session is our
priority, and quality may be low 

I    Designing Software

  • It is creative and challenging...
  • It is about tech and people...
  • It has far-reaching impact…
  • It is for everyone...
  • It is both deep and practical...

(💰 It also pays well 💰)

Course Structure

  • Lectures: Prep and watch videos before each lecture!
  • Lecture Tickets (5%): online questionnaire before each class
  • Labs (10%): 9 lab assignments (~1 lab per week)
  • Project (20%): personal project with multiple deliverables
  • Exams: two in-term exams (30%) and one final exam (35%)

Piazza

  • Please use the discussion forum for all kinds of questions
    • Except personal administrative questions that should go to cpsc210-admin@cs.ubc.ca
  • Please have a look at our initial Piazza post and the "Appropriate Study Habits" section on the course page
  • Related industrial knowledge:
    https://stackoverflow.com/help/how-to-ask

🧑‍💻 I accidentally did X. Now it doesn't work anymore. Please help!

edX

  • All learning material on edX

Github

  • Hosting your lab/project/lecture code repositories

PrairieLearn

  • Lecture Tickets and Exams

Schedule & Due Dates

Let's quickly check the course page...

Interactive Lectures

  • Hands-on "lecture labs" as part of each lecture
  • Engage with these exercises - this will help you a lot!
  • Prepare for lectures by reviewing videos!
  • An opportunity to get creative and design an application that is of interest to you
    • And maybe for future employers 😉
    • Some requirements and details will follow
  • It is entirely your own work!

Term Project

  • Weekly time to:
    • complete new lab tasks
    • discuss (for a grade!) lab/project submissions with your TA
  • Optional this week: Drop in to any lab section or complete Lab 1 on your own time.  See the course page for the due date
  • Attendance at your registered lab section is required, starting next week.

 

Labs

  • The focus of this course: object-oriented design (OOD)
  • We will use the language Java to illustrate OOD
  • The teaching approach will be immersive: you will learn Java in a similar way as a developer would learn it
  • We will dive into existing systems and ask ourselves:
    • What's similar to what I already know?
    • What's different to what I already know?
  • Leveraging what we already know is the best approach to learning a new language

OO Design & Java

Q&A

Let's get started!!

Made with Slides.com