Course Syllabus

Welcome to online CS 362 Software Engineering II!

My name is Eric Ianni, and I have the pleasure of being the instructor for this course. I have an experienced and professional TA team working with us to support you on your journey in Software Engineering II. We will do our best to provide you with an informative and encouraging course with a great learning experience. If you have any suggestions on this course, you're welcome to contact us at any time.

Topics

In this course, we will be focusing on just a single phase of the software development process: Verification. This means our primary focus will be on testingWe will cover:

  • Version Control Systems (Git)
  • Unit Testing
  • Black Box Testing
  • White Box Testing 
  • Random Testing
  • Test-Driven Development (TDD)
  • Continuous Integration (CI)
  • Code Review/Inspection
  • Stubs, Fakes, and Mocks

I want to take a moment to make something very clear:  this is NOT a programming class. It will not teach you how to code in Python. It is our expectation that you will fill any gaps that you may discover in your Python knowledge. If you want assistance locating helpful Python resources, please don't hesitate to ask us or your peers.

Tools

For this course, we will use VS Code for much of our coding examples, but you are free to use any editor you wish. You will also need a GitHub Pro account (free to students) to complete some assignments.

Course Structure

Each week's module will be posted ahead of time (Friday) for you to get started early. The learning content for each week is contained its explorations. As there is no textbook for this course, these explorations are the main method of instruction.

  • Activities, Homework, and Quizzes

Each week you will have at least one graded assessment that is related to the skills covered in that week's contents. Most assignments will be due a week after being assigned. These are all designed to help you engage with the material on a deeper level and will be the source of most of your actual learning.

  • Group Project:

There will be a group project assigned that will span multiple weeks. This project will see you using some real-world technologies, which will be a good thing to put in your portfolio.

  • Exam:

There is a proctored final exam at the end of the term. The exam will be open from Sunday to Thursday of Week 11 for the normal term and Week 8 for the summer term. We will be using Proctorio in this course for the final.

  • Ed:

All of the course discussions will happen on Ed. We will check the forum every day. Sometimes, if the question is not about the assignment requirement, we will hold our answers for a while to involve more students in the discussion. You are always encouraged to post on Ed and participate in the discussions. Students who make contributions to the discussions on Ed will potentially earn extra credit at the end of the term. Also, when recruiting ULAs, we will look at who has been very active and helpful on Ed.

  • Teams:

We have an official Teams channel for this course, which you can find linked on the left (Start Here - Teams How-To).  We will watch the course Teams channel and answer your questions in a timely manner. Office Hours will also take place on Teams.

  • Resources:

Each exploration will have a list of resources to help provide extra information or practice. If you find a useful resource, please share it with the instructors and the class. It could easily make its way into the course material!

  • TA online office hours:

We will have several sessions available from Week 1 to Week 10 (Week 7 for Summer). Office hours are the best time to get instant and detailed feedback on your code. Make good use of them and get the most from them. If none of the time slots work for your schedule, let us know, and we may be able to make accommodations. I am personally available by appointment; you just need to ask.

Our Expectations

10 (or 8) weeks will be a very short amount of time to cover such a broad field.

It is my expectation that you keep up with your coursework and finish the assignments on time. More importantly, be honest with yourself. No cheating anytime.

Please go over all the content in the Start Here module. Read the course policy carefully. Finish the course policy and academic misconduct quizzes and get full points to unlock the week one module. There are some useful links under the resources module. Please check them out as well.

Meet the instructor:

Download the syllabus here: cs362_Syllabus.pdf

Course Name: Software Engineering II

Course Number: CS 362-400

Credits: 4

Terms Offered: Every Term

Course Description

The primary focus of this course is on the Verification phase of the software development process. We will be examining multiple ways in which software testing can help produce better software.

Prerequisites: CS 261

Eric Ianni, Instructor

Course Topics

In this course, we will focus on just a single phase of the software development process: Verification. This means our primary focus will be on testingWe will cover the following:

  • Version Control Systems (Git)
  • Unit Testing
  • Black Box Testing
  • White Box Testing 
  • Random Testing
  • Test-Driven Development (TDD)
  • Continuous Integration (CI)
  • Code Review/Inspection
  • Stubs, Fakes, and Mocks

Course Schedule

You can see the assignment due dates on Canvas directly.  You can also download it with the Syllabus.

Topics by Weeks

Topic Schedule

Week

Topics

Due

1

Tool Setup

Quiz: Course Policy

A1: Git

2

What is Unit Testing

Quiz: Testing

3

Black Box Testing

HW1: Writing Black Box Tests

4

White Box Testing

HW2: Improving Coverage

5

Random Testing

HW3: Random Testing Hands On

6

Test Driven Development

A2 - TDD Hands On

7

Continuous Integration

Group Project: Part 1

8

Code Review

A3: Code Review Hands On

9

Stubs, Fakes, and Mocks

Group Project: Part 2

Group Project: Part 3

Quiz: Testing Environments and Mocking

10

Advanced Topics

Practice Final Exam

11

Finals Week

Final Exam

Textbooks

There are no required textbooks for this course.

Assignments

This course has five types of assignments:

  • Activity: These are graded in a “pass/fail” fashion. They are less about being 100% correct and more about demonstrating understanding. They are also worth the fewest points.
  • Homework: These are graded for correctness and require more work than an activity. They are also worth more points.
  • Quiz: These are straightforward multiple-choice assessments. You have two attempts for each, with the highest score kept. These are open-book quizzes.
  • Project: This is a group effort and will span multiple weeks. It is the assignment worth the most points, excluding the final.
  • Final Exam: This is an all-encompassing assessment. Any topic discussed in the course materials is eligible. It will consist of multiple-choice, short-answer, and simple coding questions.

PLEASE NOTE: If you submit the incorrect files/assignment, you WILL NOT be given a chance to resubmit (after they are graded) and will receive a 0 for the assignment. It is important that you download your submission after it uploads to verify that everything is as you expected. There will be no exceptions.

Syllabus Quiz

After you have gone over all the information in the Start Here module, you need to take the course syllabus quiz and score a 100% before the Week 1 module will unlock the Syllabus Quiz.

 

Exam

This course has one proctored exam -- the final exam.  

The final exam window will run from the Sunday before the start of finals week through Thursday of finals week (Week 8 for Summer). If you are unable to take the exam in that window, you must make arrangements prior to the end of the 2nd week of classes. Beyond this deadline, only emergency situations will be considered for alternate testing times.

This course will use an automated online proctoring system called Proctorio, where your exam session is recorded for instructor review.  You will not need to schedule proctoring appointments, and there is no cost to you to use Proctorio.

Please note that a functioning webcam and microphone are required for using Proctorio.  If you do not have these, you must locate and submit an alternative proctor through the exams and proctoring form and pay for any associated proctoring fees.

 

Grading Policy

Grading Scale
Grade letter Percentage floor
A 93
A- 90
B+ 87
B 83
B- 80
C+ 77
C 73
C- 70
D+ 67
D 63
D- 60
F 0

Grade Weighting

There are no weighted categories for assignments. Each assignment is assigned a given number of points. The final grade percentage will be determined using   LaTeX: \frac{total\:points\:received}{total\:points\:possible}\times100 

Maximizing Credit

You should treat me as a client. I will give you a set of requirements. Requirements can be interpreted differently; this is unavoidable. You have to meet my interpretation of the requirements to get an A. If you have any doubts about what a requirement means, you should ask me to clarify. Please write this down somewhere you can see it while working on your assignments.

Accommodations

"Accommodations are collaborative efforts between students, faculty, and Disability Access Services (DAS). Students with accommodations approved by DAS are responsible for contacting the faculty member in charge of the course prior to or during the first week of the term to discuss accommodations. Students who believe they are eligible for accommodations but who have not yet obtained approval through DAS should contact DAS immediately at 541-737-4098."

Students with documented disabilities who may need accommodations, who have any emergency medical information the instructor should be aware of, or who need special arrangements in the event of an evacuation, should make an appointment with the instructor as early as possible, and no later than the first week of the term. Class materials will be made available in an accessible format upon request.

If you have a really tough situation that might affect your progress a lot (illness, job duties, family emergency...), you should contact the instructor immediately.  Don't wait until the due date or even past the due date to explain your personal situations and ask for extensions.  If you are not sure whether to ask for it, better do it.

 

Late Policy

Requests for extensions are considered on a case-by-case basis and require some justification. Non-emergency requests must be submitted via email at least 72 hours before the due time. (Not having enough time to get the assignment done does not, by itself, constitute an emergency, sorry!). If you don't know if you will need an extension but might, you should ask for one.

Late Penalty
Time elapsed past the due date Penalty Applied(if no extension is granted)
T < 24 hours -10%
T < 48 hours -20%
T < 72 hours -30%
T >= 72 hours -100%

The penalty is based on the total points available for the assignment. So a 16-point assignment turned in two days late is assessed a 3.2-point deduction: 16 * 20% = 3.2.

Extra Credit

At the end of the term, I will give extra credit (0.5 to 2 maximum points) to those who are active on Ed, answering questions and sharing notes with others. This is highly subjective and depends on the overall activity of the course. Do not count on extra credit for a handful of posts/comments. You can also earn extra credit for materially improving the course. In other words, if you find a big mistake or suggest a change that I end up using to improve the student outcomes, I will award you with extra credit.

Code Sharing

You will not get in trouble for sharing code with your classmates in order to solve problems. The communication guide actually mandates that you share portions of your code if you want to ask a good question. If you are worried that you are posting too much code, mark it private and ask the instructor to review it. Note that this is a more permissive policy than the standard policy for the program (Links to an external site.) .

You will get a great deal of trouble if you copy code without citing it. See the policy on plagiarism (Links to an external site.) . Code from lectures is not your own, code from StackOverflow is not your own, code from the Mozilla documentation is not your own. If it is not your code,  you must cite it. If you cite it, you must provide documentation in very great detail of what it is doing so that I know you understand the code you are using.

This shouldn’t have to be said, but you are prohibited from uploading your code to the internet at places like Chegg and Course Hero. Likewise, you are not permitted to view assignments that have been uploaded to those types of services.

Establishing a Positive Community

It is important you feel safe and welcome in this course. If somebody is making discriminatory comments against you, sexually harassing you, or excluding you in other ways, contact the instructor, your academic advisor, and/or report what happened at https://studentlife.oregonstate.edu/studentconduct/reporting so we can connect you with resources.

Academic Misconduct

The Code of Student Conduct prohibits Academic Misconduct and defines it as:

Any action that misrepresents a student or group’s work, knowledge, or achievement, provides a potential or actual inequitable advantage, or compromises the integrity of the educational process.

To support understanding of what can be included in this definition, the Code further classifies and describes examples of Academic Misconduct, including cheating, plagiarism, assisting, and others. See the  Code of Student Conduct  (Links to an external site.)  for details.

You are expected to do your own work and demonstrate academic integrity in every aspect of this course. Familiarize yourself with the standards set forth in the OSU Code of Student Conduct Section 4.2. You must only access sources and resources authorized by the instructor. You may not show your work to any other current or future students without the instructor’s authorization. Violations of these expectations or the Code of Student Conduct will be reported to the Office of Student Conduct and Community Standards. If there is any question about whether an act constitutes academic misconduct, it is your responsibility to seek clarification and approval from the instructor prior to acting.

Eric Ianni, Instructor

Communication Policy

  • Always use your OSU email to contact us.  The Canvas mailbox doesn't work very well. Any messages sent via Canvas will not receive a response. 
  • When you send me an email, you must include the tag "[CS 362]" in your email subject.

You should expect a response to emails within 24 hours. Emails sent over the weekend sometimes take longer to respond to.

Post all course-related questions on the Ed board (link on the left) so the whole class may benefit from our conversation. If you aren’t automatically signed up to Ed, you can click the link on the left in Canvas to complete the process. You can use the course Teams channel to ask questions as well.

For grading questions, please post a private Ed message (this is viewable by me and the graders); do not email directly for grading questions. You should expect your grade to be posted after one week after the due date.  If you submit the assignment late, it may take longer for your grade to be released.

The instructional team will be using the class mailing list extensively to communicate with you. We will also frequently post information on Ed. It is your responsibility to keep up-to-date with this communique, and they are considered part of the required learning material.

  • Resources:

We will post some resources that might be used as supplementing materials in the resources page, and we will update this page throughout the term.

  • TA online office hours:

We will have several sessions available each week from Week 1 to Week 10 (Week 8 during Summer term).  Office hours are the best time to get instant and detailed feedback on your code. Make good use of them and get the most from them.  If none of the time slots work for your schedule, let us know, and we can make accommodations. For TAs' email address, office hour time, and link, please check the Start Here - Instructor Information & Communication Policy in the Start Here module. 

  • Ed:

All of the course discussions will happen on Ed. We will check the forum every day. Sometimes, if the question is not about the assignment requirement, we will hold our answers for a while to involve more students in the discussion. You are always encouraged to post on Ed and participate in the discussions. Students who make contributions to the discussions on Ed will potentially earn extra credit at the end of the term. Also, when recruiting TAs, we will look to who has been very active and helpful on Ed. I also do all my recruiting for ULAs based on what I see on Ed.

  • Teams:

We have an official Teams channel for this course, which you can find linked on the left.  We will watch the course Teams channel and answer your questions in a timely manner. Office Hours will also take place on Teams.  You can find information for signing up for Teams in our Start Here - Teams How-To.

  • Resources:

Each exploration will have a list of resources to help provide extra information or practice. If you find a useful resource, please share it with the instructors and the class. It could easily make its way into the course material!

There is no required textbook for this course.

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

Course Summary:

Date Details Due