Course Syllabus

banner_home.png

NOTE: Some links on this page may only be accessible to registered students.

Welcome to CS361: Software Engineering I

Start Here

Please begin the course by clicking the Start Here button.

Start Here Button

This course will introduce you to tools and techniques for real-world software development. You will be working on a term-long team programming project using the Agile Scrum approach to software project implementation and management. Along the way, you will learn how to plan out and specify what your software should do and how users should experience it, how to evaluate how well your software design reflects those specifications, how to structure your software in a way that supports iterative growth and ongoing contributions from multiple developers, and other non-technical and technical skills and concepts. We will explore some topics in-depth, and others just enough for you to decide later (during future software projects) whether or not they're applicable to and useful for what you're doing.

Course Learning Outcomes

  • Formal and informal writing
  • Object-oriented design, design patterns
  • Project management, risk analysis
  • Requirements engineering, requirements elicitation, writing requirements documents, requirements reviews, UML notation
  • Software architectures, distributed system architectures
  • Software lifecycle activities and models

Meet the Instructor

Transcript:

Hi everyone, welcome to CS361: Software Engineering. My name is Lara Letaw, I will be your instructor this term.

Have you ever written code that you wanted to throw away? Have you ever written code and come back to it a year later or maybe just a few months and found out that you didn't know what you were trying to do?

Some of my goals this term are to help you write code that is reusable and that you can collaborate on with others to make bigger, better, higher value projects.

To get you there, you'll be working on a term-long Agile Scrum programming project in teams of 5. Most of your assignments will be team assignments and you'll also have individual assignments on the course material and to prepare you for doing the team assignments and doing the teamwork.

There will be no exams in this course but you will have weekly content quizzes. The quizzes are not formal tests of your knowledge, rather they're to help you learn; you can take them an unlimited number of times.

There's a lot more information about this course in the syllabus. Please read that.

Lastly, I wanted to say that I feel very fortunate that we can all be here together this term. I know that there are some student who wanted to be but could not. If, any time during this term, you are facing any type of challenge that's related to COVID-19 or something else, please let me know and I will try to accommodate whatever comes up for you.

I really look forward to teaching the course this term, working with you, and talking with you. Talk with you again soon.

Lara Letaw
CS361 Instructor

NOTE: Some links on this page may only be accessible to registered students.

Syllabus & Schedule

Syllabus Quiz

After completing all Week 00 readings, take this quiz:

NOTE: Some links on this page may only be accessible to registered students.

Communication Policy

I will be logging into the course on a regular basis, approximately 3-5 times each week. Please post all course-related questions on Piazza so the whole class may benefit from the conversation. Please send an email to your instructor or TAs for matters of a personal nature. When you email your TA or myself, you should expect a response within 48 hours. You can expect your assignments to be graded within one week of the due date.

Contact Information & Office Hours

NOTE: Some links on this page may only be accessible to registered students.

Course Tools & Textbooks

So that you will get a sense of what you might encounter as a software professional, you will be required to use several online software tools for managing and implementing your project:

  • GitHub/Git: Git is a system for distributed version control. GitHub hosts Git projects. You'll need to create a GitHub account at GitHub.com (if you haven't already).
  • Asana: A web-based application your team will use for project management. You will receive an Asana invite. Note: Asana team membership is public; others will be able to see who is in your Asana team. You may choose not to use your OSU email address for Asana. You may also choose not to use your real name.

In addition, I will provide multiple communication tools through which you can get your questions answered and talk with TAs, other students, and with me:

  • Piazza: A discussion board for questions about the course material and project requirements, general course questions, providing course feedback/suggestions, etc. Piazza should be one of the first places you look if you have a course question; if you are wondering something, another student may also be wondering the same thing.
  • Slack: A text/voice/video chat app for talking synchronously with TAs, other students, and with me. Slack will be used for office hours.
  • Q&A: General information about the class and questions we've received from students.

Optional Textbooks

Database Access

If your team needs access to a database, we have two options.

  • Option 1 - OSU MariaDB 
  • Option 2 - AWS Educate Instances
    • You need to send letawl@oregonstate.edu an email to request an invite 
    • NOTE: You can also host a website using AWS by launching an EC2 instance

Option 1 - OSU MariaDB

Access the OSU DB

You must be on the OSU network to access the DB. Connect to the OSU VPN. Then, you can use the following credentials to access your database.

  • Username is: cs361_<your ONID username>
  • Default password is: last 4 digits of your OSU ID number
  • Database host name is: classmysql.engr.oregonstate.edu
  • Web access: https://tools.engr.oregonstate.edu/phpMyAdmin (select classmysql as the server)

How to connect using the command line

  • Login to a flip server
    • ssh <ONID_username>@flip3.engr.oregonstate.edu
  • Connect to the DB:
    • mysql -u cs361_<ONID_username> -h classmysql.engr.oregonstate.edu -p

Please change your password the first time you access your account. DO NOT use your ONID password as this password could be in config files and is much less secure. To change your password, run the SQL statement:

SET PASSWORD = PASSWORD('password')

VERY IMPORTANT:

If you want to keep your data please export it at the end of the term. All databases and associated accounts will be deleted the week after the term ends. No exceptions.

Option 2 - AWS Educate Instances

Access AWS Educate

Note: You need to send letawl@oregonstate.edu an email to request an invite 

Note: Make sure you stay on N. Virginia region - Educate does not work on other regions

  1. Login to AWS educate & setup your password
  2. Click on 'My Classrooms' on the top navbar
  3. Click 'go to classroom'
  4. Click 'AWS console'
  5. Search for 'RDS' in the find services field (This stands for Relational Database Services)
  6. Click 'Create database'

Creating the DB

Feel free to choose whatever you'd like. Here's an example of what we suggest:

  • Standard Create
  • MariaDB
  • Free tier (IMPORTANT)
  • Choose a unique DB instance identifier
  • Choose your master username
  • Let AWS generate your password or create your own
    • You can modify the password later
  • IMPORTANT - To be able to access your DB:
    • Click 'Additional connectivity configuration' dropdown
    • Change 'Publicly accessible' from No to Yes

DB creation takes a while - When it is complete do the following:

  1. Click 'View credential details'
  2. Save your username, password and endpoint on your computer
  3. Click learn about connecting to your database and then connect!

Connect to MariaDB instance

Open a terminal and run:
mysql -h <endpoint> -P 3306 -u <mymasteruser> -p

Launching an EC2 instance on AWS

  1. Navigate to the console/portal and choose EC2
  2. Choose 'Launch Instance' -> 'Launch Instance'
  3. Choose your operating system - I chose Ubuntu for this guide
  4. Click review and launch
  5. Click launch
  6. Setup your Key Pair and launch the instance
  7. SSH to your instance by following the instructions on the next AWS pages that load

Contents

Academic or Student Support Services

For all other academic and student support services, refer to the Student Services link found in the course menu.

The following services are available to all Ecampus students:

Accessibility Statements

This course uses technologies that may support accessibility in different ways. Please refer to the accessibility statement for each technology provider for details as to the level and types of accessibility that are supported.

Follow this link to access Accessibility Statements for commonly used software.

Accessibility Tools for Canvas

The following tools are available within your Ecampus course. 

ReadSpeaker - is a tool that reads text on Canvas course pages aloud.

TextAid - is an additional tool that allows users to have nearly any text highlighted and read aloud, including documents, Web sites, text composed by a user, and more. For more information, please visit ReadSpeaker Text Aid.

Canvas Technical Questions

If you have a technical issue or question when using Canvas, 24/7 support is available in Canvas via chat, phone, or e-mail through the Help link in the menu on your left .

Additional technical support (use of software/browsers) can be accessed through the OSU Computer Helpdesk.

Copyright & Ownership of Materials

  • The materials on this course website are only for the use of students enrolled in this course for purposes associated with this course and may not be retained or further disseminated.
  • Course materials are cited within the Syllabus and Modules based on the copyright policy of each item.
  • When copyright permission is required, Ecampus has contacted the copyright owner.
  • When a fair use determination has been made, this has been documented.
  • Images that are not cited have been obtained from the public domain or via a paid subscription or are images taken by the instructor.

Please contact the instructor if you have any questions about the copyright and ownership of materials presented in this course.

Peer Tutoring

(Free) OSU Online CS peer tutoring happens via Zoom, and there are two ways you can engage: drop-in tutoring hours and scheduled tutoring appointments.

  • Drop-in Tutoring Hours: Regularly held tutoring hours where you can call into the existing session to engage with peer tutors about your questions.
    • View the calendar here.
    • Click on the appointment, then click more details to view the Zoom meeting link.
    • Click on the Zoom meeting link to join.
  • Scheduled Tutoring Appointments: Scheduled tutoring appointments with peer tutors.
    • Start completing the tutoring request form.
    • Be sure to select "Schedule an appointment"
    • Click on the appropriate link to schedule a time.
    • Be sure to come back and complete the tutoring request form by entering your appointment time and clicking "Submit."

Privacy Policies for External Tools

Follow this link to access Privacy Policies for commonly used external tools that require the user to create an account.

Course Summary:

Date Details