Appearance
Overview
Students come to Object-Oriented Software Engineering, or OOSE as we call it, with varied backgrounds! For some, OOSE is their first opportunity to work on an actual software project. Other students come to OOSE with more experience (after doing an internship or working in the software industry). However, regardless of your experience, OOSE helps you become a better software engineer while having fun developing a project with your peers.
Self-regulated Learning
I must let you know that OOSE is not a typical course. In that, I am not going to "teach" you how to build software systems! You should already know that to some extent and expand on it on your own in this class. You shall rise to face challenges (especially technical ones) and find ways to overcome them without any help from the teaching staff. You are expected to explore outside resources to learn independently or with your peers to that aim.
TIP
You may as well look at me as a manager or supervisor rather than your instructor!
INFO
This course is designed on the premise of academic self-efficacy and promotes self‐directed learning.
Self‐directed learning is when you take the initiative and responsibility for your education. You select, manage, and assess your learning activities. You have the independence of setting goals and defining what is worthwhile to learn. The teacher provides scaffolding, mentoring, and advising. Peers provide collaboration.
Self-efficacy refers to the beliefs you hold in your capabilities to think and behave in ways that are systematically oriented toward or associated with your learning goals.
I will help you set clear and specific goals that are challenging but not outside the range of your capabilities. You will collaborate with your peers to achieve those goals. The instruction team will be the judge to assess your progress by providing honest, explicit feedback (i.e., grades!).
WARNING
Self-regulated learning is not everybody's cup of tea!
If you prefer a setting where you are taught (in a more traditional sense) to develop modern software applications, consider taking EN.601.280 Full-Stack JavaScript (disclosure: I teach that course too! Feel free to use its lecture notes as a supplementary resource for this class).
Time Commitment
Let's do the math! Your group should plan to collectively work like a full-time junior software developer engineer (SDE). Contractually, a full-time SDE works 40 hours per week. In practice, it is usually more than that, often much more! If there are at least five people in your group, that means you each should plan to put, on average, 8 hours per week on OOSE (excluding course meetings).
The project
The main component of OOSE is a term-long software project of "your" choosing. By "you," I mean your team! Team formation and project ideation go hand-in-hand. Sometimes, students form groups and then collectively come up with a project idea. In other cases, several students team up around a project idea.
TIP
Please actively participate in "team formation" and "project ideation" threads in the course discussion board.
The purpose of the course project is to provide you with the opportunity to get a taste of software development and its practices. The end goal is not the product itself; rather, the project serves as a vehicle to help you develop your technical and teamwork skills.