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:
- Preferred Name, Year, and (intended) Major
- 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!
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