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 testing. We 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, you will be using PyCharm for much of your coding. 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, 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 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 TAs, we will look to 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. We will watch the course Teams channel and answer your questions in a timely way. 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 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 (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 quiz 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: 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 of how software testing can help produce better software.
Prerequisites: CS 261
Eric Ianni, Instructor
- Email: iannie@oregonstate.edu
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 testing. We 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 What is Testing |
Quiz: Course Policy A1: Git Quiz: Testing |
2 |
Black Box Testing |
HW1: Writing Black Box Tests |
3 |
White Box Testing |
HW2: Improving Coverage |
4 |
Random Testing |
HW3: Random Testing Hands-On |
5 |
Test-Driven Development |
A2 - TDD Hands-On |
6 |
Continuous Integration Code Review |
Group Project: Part 1 A3: Code Review Hands-On |
7 |
Stubs, Fakes, and Mocks |
Group Project: Part 2 Group Project: Part 3 Quiz: Testing Environments and Mocking |
8 |
Advanced Topics |
Practice Final Exam Final Exam |
Textbooks
There are no required textbooks for this course.
Assignments
This course has five types of assignments:
- Activity: These are worth the least amount of points and generally are looking for general topic understanding.
- 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.
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 will need to locate and submit an alternative proctor through the exams and proctoring form and pay for any associated proctoring fees.
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
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.
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 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% |
Extra Credit
At the end of the term, we will give extra credit (up to 2 maximum points) to those who are active on Ed 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.
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
- Email: iannie@oregonstate.edu
- Office Hours: TBD (https://oregonstate.zoom.us/my/ianni)
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 Ed board so the whole class may benefit from our conversation. Please sign up yourself on Ed. 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. To help with response time, please also tag your grading TA in the Ed thread using the @ symbol in the body of your question. 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 way. 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 |
---|---|---|