Course Syllabus

Welcome to online CS 362 Software Engineering II!

Our names are Wendy Roberts and Eric Ianni and we have the pleasure of being the instructors for this course. We 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 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 anytime.

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

Tools

For this course you will be using PyCharm for much of your coding. You will also need a GitHub account 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 it's 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 are 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 in 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 and it 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 normal term and Week 8 for the summer term. Please reserve your proctor as early as possible to make sure you can get the time you want.

  • Piazza:

All of the course discussions will happen on Piazza. 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 Piazza and participate in the discussions. Students who make contributions to the discussions on Piazza 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 Piazza.

  • Slack:

We have an official Slack channel for this course which you can find linked on the left.  We will watch the course Slack channel and answer your questions in a timely way. Office Hours will also take place on Slack.

  • 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 most from it. If none of the time slots work for your schedule, let us know and we may be able to make accommodations.

Our Expectations

10 weeks will be very short for 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 to yourself. No cheating anytime.

Please go over all the content in the Start Here module. Read the course policy carefully. Finish the course policy quiz and get full points to unlock 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: syllabus.pdf

Course Name: Software Engineering II

Course Number: CS 362-400 and CS 362-401

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 of how software testing can help produce better software.

Prerequisites: CS 261

Wendy Roberts, Instructor

Eric Ianni, Instructor

Course 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

Course Schedule

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

Topics by Weeks

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 Pass/Fail. 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.
  • 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.

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: Syllabus Quiz

 

Exam

This course has one proctored exam -- the final exam.  You can find out more about proctoring at the Ecampus page on exam proctoring (Links to an external site.).

The final exam window will run from the Sunday before the start of finals week through Thursday of finals week. 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.

Where possible, we suggest using an in-person proctor. Should an issue arise, it is historically a lot easier to get it resolved at a testing center than with other online proctoring service.  If you do use ProctorU and an issue does arise, please document the situation as thoroughly as possible and forward that to the instructor as soon as possible.

 

Grading Policy

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}

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 doubt about what a requirement means, you should ask me to clarify.

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. 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.

Time elapsed past due date Penalty Applied(if no extension is granted)
T < 24 hours -10%
T < 48 hours -20%
T < 1 week -30%

 

Extra Credit

There is extra credit in some of the assignments.  Try to get them when possible.  At the end of the term,  we will give extra credit (up to 2 maximum points) to those who are active on Piazza answering questions and sharing notes with others.

 

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.

Code Sharing 

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.

Wendy Roberts, Instructor

Eric Ianni, Instructor

Communication Policy

  • Always use your OSU email to contact us.  The Canvas mailbox doesn't work very well. 
  • 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 48 hours. Emails sent over the weekend sometimes take longer to respond to.

Post all course-related questions on the Piazza board so the whole class may benefit from our conversation.  Please sign up yourself on Piazza. You can use the course Slack channel to ask questions as well.  

For grading questions, please post a private Piazza message to the "instructors"; do not email directly for grading questions.  To help with response time, please also tag your grading TA in the Piazza thread using the @ symbol. You should expect your grade to be posted after one week of the due time.  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 Piazza. It is your responsibility to keep up-to-date with these communiques 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.  Office hours are the best time to get instant and detailed feedback on your code. Make good use of them and get most from it.  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. 

  • Piazza:

All of the course discussions will happen on Piazza. 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 Piazza and participate in the discussions. Students who make contributions to the discussions on Piazza 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 Piazza (Link to Piazza)

  • Slack:

We have an official Slack channel for this course which you can find linked on the left.  We will watch the course Slack channel and answer your questions in a timely way. Office Hours will also take place on Slack (Link to Slack).  You can find information for signing up for Slack in our Slack 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.

Return to Modules

Course Summary:

Date Details Due