CPSC 210

Software Construction

About Me

We are a team of 2 instructors (Firas, Paul), one course coordinator (Taryn) and 26 amazing TAs! 👨‍💻🧑‍🏫👨🏻‍🏫

About Me

About Me

Software Engineering is awesome!

  • It is for everyone...
  • It is creative and challenging...
  • It is about technology and people...
  • It has far-reaching impact…
  • It never gets boring...

Group work during class

This term we will try to work in "Pods" of 3-5 ... 

 

  • Research shows that there is tremendous benefits in students working (and struggling) together!
    • Students ask better and more insightful questions, engage more deeply with the work, and it adds a social element to class
  • We will try this in CPSC 210 this term!

Group work during class

Understandably, not everyone is a fan of group work - I understand that!

  • So you will never be forced to work in groups
    • ​​If you would like to opt-out, move to the far left and far right sides of the room so we know you prefer to work individually.
    • If everyone moves to the side of the room, we will re-evaluate this approach 😂
  • There are no marks or points associated with these groups, and everyone should work on their own laptops as well

Introduce Yourselves!

Form a Pod of 3-5 people sitting close to you.
 

Each person should answer the following questions:

  1. Preferred Name, Year, and (intended) Major
  2. Why are you taking CPSC 210?
     

Then, as a group, answer the following question:

 

What is the most interesting (good or bad) example of software in society?

  • The focus of this course: object-oriented design (OOD)
  • We will use the language Java to illustrate OOD
  • The teaching approach will be immersive:
    • Learn Java in a similar way as a developer
  • 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?
  • Leverage what we already know = best approach to learning a new language

About this Course

About this Course

This course will give you a glimpse into the world of software development. The course split into four parts, each class meeting will be on a topic from one of these parts
 

Basics: Get up to speed with Java, the editor, data structures, etc.

Abstraction: Reduce code complexity and avoid duplication.

Construction: Tools and techniques to build resilient programs.

Design: Software design principles, maintainability and readability

Course Structure

  • Lectures: prepare and watch videos before each lecture!
  • Lecture Tickets (3%): Questions on PrairieLearn to be done before each class
  • Labs (7%): 9 lab assignments (~1 lab per week)
  • Project (14%): personal project with multiple deliverables
  • Midterms (36%): four in-term exams (9% each)
  • Final Exam (40%): One final exam (40%)

Schedule & Due Dates

Let's quickly check the course page...

bit.ly/cpsc210_2024W1

Ed Discussion

  • 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 the initial posts titled "Welcome!" and "Posting Etiquette" 
  • Related industrial knowledge:
    https://stackoverflow.com/help/how-to-ask

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

Ed Discussion

Let's do a quick demo and make sure everyone is on Ed Discussion!

edX

All learning material on edX

PrairieLearn

Lecture Tickets, Midterms and Final, Labs

Github

Hosting your source code repositories for Class Demos and the project

Course Material

Interactive Lectures

  • Hands-on "lecture-labs" as part of each lecture
  • Engage with these exercises - this will help you a lot!
  • Please prepare for lectures by reviewing videos!
  • An opportunity to get creative
  • 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

Q&A

Are you ready...?

🚀

🚀

🚀

CPSC210 - FM Introduction (24w1)

By firas_moosvi

CPSC210 - FM Introduction (24w1)

  • 74