Course Syllabus

Download the syllabus as a PDF.

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

CS 464 Open Source Software Development

Credits: 4

Instructor name: Samarendra Hedaoo

Instructor email: hedaoos@oregonstate.edu 

Teaching Assistant name and contact info:

Please always prefix your email subject with [CS464] when emailing us.

GTA & ULA Office hours will be announced during the first week of the term.

For Instructor office hours, you can schedule a 1:1 Zoom call with me by booking a timeslot from http://tinyurl.com/meet-samarendra.
If none of the timeslot listed on this link work for you, email me 4 timeslots in Pacific Timezone that work for you and I will send you a calendar invite with Zoom link for one of your preferred timeslots. I am not available much on Teams but if you drop me a message there, I will try and get back within the day.

This syllabus and schedule are subject to change in the event of extenuating circumstances.


Course Description

This course provides a theoretical foundation of the history, key concepts, technologies, and practices associated with modern Free and Open Source Software (FOSS) projects, and give students an opportunity to explore and make contributions to FOSS projects with some mentoring and guidance.

Prerequisites: CS 261/CS 361

Technical Assistance

If you experience any errors or problems while in your online course, contact 24-7 Canvas Support through the Help link within Canvas. If you experience computer difficulties, need help downloading a browser or plug-in, or need assistance logging into a course, contact the IS Service Desk for assistance. You can call (541) 737-8787 or visit the IS Service Desk online.

Learning Resources

Producing Open Source Software Author: Karl Fogel. 2nd edition (2020) available online at https://producingoss.com/

Measurable Student Learning Outcomes

At the completion of this course, students will be able to:

  1. Describe the differences between Proprietary Software and Open Source Software
  2. Describe the historical evolution of the Open Source movement, society’s adoption of Open Source software, and the wider technical and societal impact this has had.
  3. Explain what tools an Open Source Project needs to support distributed development work, and how projects are organized
  4. Analyze the different Open Source licensing models and their affordances
  5. Choose, join, and make a technical contribution to an existing Open Source project

 

Schedule

Schedule for the term

Week

Topic

Due Tues

Due Fri

1

Syllabus, intro and expectations

Syllabus Quiz (will remain open for late adds)

GitHub Homework

Discussion 1

2

Anatomy of an OSS Project

Documentation

 

Assignment 1 Proposal

Quiz 1

Discussion 2

3

The economics of OSS

 

Assignment 1 - Project design

Discussion 3

4

Intellectual Property, licensing

Assignment 2 Proposal

Quiz 2

Discussion 4

5

Testing

 

Assignment 2 - Documentation

Discussion 5

6

Project management, OSSDLC

Assignment 3 Proposal

Quiz 3

Discussion 6

7

History of OSS

 Discussion 7

8

FLOSS Skills

Assignment 3 - Testing

Discussion 8

Issue Link

9

OSS and Society

Contribution proposal

Quiz 4

Discussion 9

10

 Tools and Trends

 

Make-up Discussion

Finals

 

Final Contribution Report

 

Holidays this term (offices closed, GTAs/ULAs/instructors won't be working): Monday, May 27th (Memorial Day)

Grading Policy

Grading Policy

Description

Qty

Pts total

GitHub homework

2

7

Quizzes

4

24

Assignment Proposals

4

8

Participation (Discussions)

9

27

Assignment Reports

3

21

Final Report

1

13

Total

100

In this course, the points are transparent (an assessment worth, e.g., 3 points is worth 3% of your grade). 

 

Letter Grade

Letter Grade

Grade

Percent Floor

A

90

A-

88

B+

85

B

80

B-

78

C+

75

C

70

C-

68

D+

65

D

60

D-

58

F

0

 

Course Policies

Grading Policy

Your grade for each assessment will be based on the rubric, which will be visible to you as soon as the assignment becomes available. Graders will all follow the same rubric. Submitting assessments (quizzes, reports, assignments, discussion board posts) according to the instructions/rubric in accordance with the syllabus policies and deadlines is the only way to earn points toward your final grade in this course. 

I cannot ever give points or change your grade for any of the following reasons:

  • Your boss won't reimburse tuition unless you get an A / passing grade. 
  • You would be eligible for the Dean's List, or some other recognition or scholarship, if you were to get an A in this class. 
  • Your classmates / friends think you are a good student. 
  • You are on probation and have to get an A in this course.

If you think there has been a mistake in the grading of one of your assignments (i.e. the grade you were given does not align with the rubric), email your grader to get clarification (you can CC me). If you are not satisfied with the grader's explanation/resolution on an assignment, you may email me (once) to ask for a regrade of that assignment. If you are not satisfied with my regrade decision, you may email the Associate School Head Chris Hundhausen chris.hundhausen@oregonstate.edu

 

Student Conduct

What is allowed and what isn't...

Allowed :)

NOT allowed >:(

Showing your work to an instructor or TA, or sharing report drafts with your discussion group.

Posting assignment instructions or solutions outside of class. 

Discussing strategies and concepts with classmates.

Submitting someone else's work as your own or claiming their work as yours (including AI-generated content). 

Submitting incomplete work before the deadline with a note saying you are going to resubmit.

Asking for an extension after missing the deadline for an assignment (except in unavoidable emergencies).

Asking questions by email, on Teams, or on Ed Discussions

Asking repeatedly for a change in your grade or for an extension or exception to a policy after receiving an answer. 

Disagreeing with someone on the message board.

Name-calling, stalking, or counter-productive comments.

Discussing the assigned reading or quiz questions in Teams, on Ed Discussion, or in your Canvas discussion group.

Sharing the quiz questions or answers publicly or outside of a class communication medium.

 

Choosing Open Source Projects

Several assignments in this course will require that you interact with projects on GitHub. When choosing a project, you should consider how your involvement will reflect on you as a professional. Your final project (a technical contribution to an open source project) will be part of your public portfolio. If a project would be embarrassing to have on your resumé, or would call your character into question it is likely not appropriate for this course.

Projects which violate the university’s Student Conduct and Community Standards are ineligible for credit for this class. Software products which

  • violate copyright law (including “knock-off” products of commercial property such as video games),
  • facilitate unethical practices (especially concerning personal data), or
  • are designed to harm a system or force access into a system

are not acceptable as selections for the assignments in this class. It is your responsibility to review the project and assess whether it is in keeping with these standards. If you are unsure whether a product violates these standards, please consult the instructor or a TA.

Finally, the projects you choose for the assignments cannot be projects that were authored primarily or solely by you.

Proposals

You will be asked to submit four proposals, one for each major assignment in this class. The proposal will include information about the OSS project you will be working on and what you plan to accomplish with it. If your project is deemed ineligible for credit, you will be asked to use a different project for the report. These will be graded according to a rubric which you will be able to view with the instructions.

Reports

You will be asked to submit four reports which follow up on the proposals submitted prior. These will detail the work you completed, including a description of the work and evidence such as screenshots, commit logs or a “diff” file. These will be graded according to a rubric which you will be able to view with the instructions.

Exams

This course does not have any exams.

Quizzes and Assigned Reading

This course has four quizzes that are intended to help you absorb the content in the exploration pages and assigned reading. You will have unlimited attempts to do each quiz, but the questions will be pulled randomly and thus may not be the same for repeated attempts.

The quizzes are open-note, but questions may not use identical wording as the reading, so I recommend being familiar enough with the text that you possess a basic understanding of its contents before attempting the quiz (rather than relying on searching the articles for phrases from the questions). Only your latest attempt will be recorded in the gradebook. 

Discussion/Participation

Students are expected to participate in all graded discussions. While there is great flexibility in online courses, this is not a self-paced course. Discussions are not eligible for the revision period, but there will be one optional discussion at the end of the term which you can participate in to replace your grade for one missed or partial-credit discussion. 

Active interaction with peers and your instructor is essential to success in this online course, and we ask that you pay particular attention to the following:

  • Unless indicated otherwise, please complete the readings and view other instructional materials for each week before participating in the discussion board.
  • Read your posts carefully before submitting them.
  • Be respectful of others and their opinions, valuing diversity in backgrounds, abilities, and experiences.
  • Challenging the ideas held by others is an integral aspect of critical thinking and the academic process. Please word your responses carefully, and recognize that others are expected to challenge your ideas. A positive atmosphere of healthy debate is encouraged.

 

Deadline, Revision, and Late Work Policy

You must submit all assignments before the due date to receive credit. We will not accept submissions if the deadline is missed. If you do not submit before the due date, you will receive no credit.

However, we do have a "revision grace period" policy for the assignments. If you (or your group) are unable to fulfill an assignment or project step to your satisfaction before the due date--for any reason--you may notify the TA (via a Canvas comment along with the original on-time submission) that you plan to submit a revision. You may then submit a revision within 2 days. Discussion posts/replies, quizzes, and the Final Report are not eligible for late revisions.

If you

  1. submit a partial fulfillment of the requirements before the due date,
  2. notify the TA when you submit your first attempt, and then
  3. resubmit a revised version of your work within two days (ending at midnight 48 hours after the original deadline),

then your grade will reflect your final submission only without incurring penalties. If you do not resubmit within 2 days, your grade will reflect your original (potentially incomplete) submission. 

The comment is for the graders, so that they know to hold off on grading your submission.

If nothing is submitted by the deadline, Canvas will put an automatic 0 in the gradebook for that assessment. Graders will skip assignments that have a 0 put in already. For eligible Assignments, if you submit something (anything) before the deadline, then Canvas won't put that 0 in and your grader will see your submission. They will check for a comment to see if you are planning to use the revision period, and if so then they will hold off on grading your work until the revision period ends. So if you want an extension, submit something before the deadline, or you'll get a 0 that won't change. 

Exceptions may be made at the instructor’s discretion for unavoidable emergencies e.g. hospitalization, or extraordinary extenuating circumstances.

You may submit your draft early (most assignments will have templates that you can use to start your draft) with your comment in Canvas to guarantee your 2-day revision extension (even if you don't end up needing it). 

Here are some examples of things which are NOT unavoidable emergencies, and which would therefore not qualify a student for an exception to the deadline/revision policy:

  • forgetting to turn it in
  • assuming it was a group assignment and that groupmates would complete the work and turn it in for you
  • not knowing when the deadline was
  • meaning to turn it in without actually turning it in
  • birthdays
  • working part time / full time / overtime
  • being busy
  • taking a lot of classes

Proctored Exams

There will be no exams in this course. Quizzes are open-note and untimed with unlimited attempts (only the last attempt will be recorded in the gradebook), but are not eligible for the revision period. 

Incompletes

Incomplete (I) grades may be granted only in emergency cases (usually only for a death in the family, major illness or injury, or birth of your child), and if the student has turned in more than 80% of the points possible (in other words, usually everything but the final paper). If you are having any difficulty that might prevent you completing the coursework, please don’t wait until the end of the term; let me know right away.

Expectations for Student Conduct

Student conduct is governed by the university’s policies, as explained in the Student Conduct Code (https://beav.es/codeofconduct). Students are expected to conduct themselves in the course (e.g., on discussion boards, email, Canvas message, Teams chat) in compliance with the university's regulations regarding civility.

We also expect polite conduct toward the instructor and graders. When you need help, are confused, if there has been a mistake in grading, or if you just don't understand your grade, I want you to contact me so that I can try to help. But we (myself and the graders) are human and deserve to be treated with respect. Harassment of the instructor and/or graders (e.g. sending repeated messages arguing for a grade change or policy exception after being given a clear answer) may be reported to the office for misconduct.  

 

Communication and Where to Go for Help

Samarendra Hedaoo (instructor): hedaoos@oregonstate.edu  

If you have a question about anything related to the course, you can schedule a 1:1 Zoom call with me by booking a timeslot from http://tinyurl.com/meet-samarendra. If none of the timeslot listed on this link work for you, email me 4 timeslots in Pacific Timezone that work for you and I will send you a calendar invite with Zoom link for one of your preferred timeslots.

I am not available much on Teams but if you drop me a message there, I will try and get back within the day.

I will post any changes to assignments, and make any otherwise necessary announcements on Canvas. We have a Teams workspace and Ed Discussions message board for your convenience, but you do not have to keep up with all activity on Teams/Ed Discussions. 

ULA and GTA names | contact info : 

Please always prefix your email subject with [CS464] when emailing us.

ULA/GTA Office hours will be announced during the first week of the term.

Please note that we do not get notifications for comments made on assignment submissions in Canvas. We only see those if we happen to go look at your submission after the comment has been posted. So if you make a comment after your grader puts the grade in, they are very unlikely to ever see it or know about it. (This is similar to how, if a professor grades your paper and hands it back to you in class, if you then write comments on it in response to their feedback, they won't know about it unless you then give the paper back to them so that they can see the notes that you've written.) So, if you want to follow-up about any assignment grade, please email your grader.

We will strive to have assignments graded within 5 business days after the due date. 

We also have Ed Discussions (a Q&A forum for help from the instructor and other students), and Teams (for more informal, synchronous interaction with other students, also used for office hours)

Ecampus Student Resources

 

University Policies

Statement Regarding Students with Disabilities

Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval please contact DAS immediately at 541-737-4098 or at http://ds.oregonstate.edu. DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.

Accessibility of Course Materials

All materials used in this course are accessible. If you require accommodations please contact Disability Access Services (DAS).

Additionally, Canvas, the learning management system through which this course is offered, provides a vendor statement certifying how the platform is accessible to students with disabilities.

Reach Out for Success

University students encounter setbacks from time to time. If you encounter difficulties and need assistance, it’s important to reach out. Consider discussing the situation with an instructor or academic advisor. Learn about resources that assist with wellness and academic success at oregonstate.edu/ReachOut. If you are in immediate crisis, please contact the Crisis Text Line by texting OREGON to 741-741 or call the National Suicide Prevention Lifeline at 1-800-273-TALK (8255)

Code of Conduct

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

Tutoring and Writing Assistance

NetTutor is a leading provider of online tutoring and learner support services fully staffed by experienced, trained and monitored tutors. Students connect to live tutors from any computer that has Internet access. NetTutor provides a virtual whiteboard that allows tutors and students to work on problems in a real time environment. They also have an online writing suite where tutors critique and return essays within 24 to 48 hours. Access NetTutor from within your Canvas class by clicking on the Tools button in your course menu.

The Oregon State Online Writing Suite is also available for students enrolled in Ecampus courses.

TurnItIn

Your proposals and reports will be submitted to Turnitin, a plagiarism prevention service. Your assignment content will be checked for potential plagiarism against Internet sources, academic journal articles, and the papers of other OSU students, for common or borrowed content. Turnitin generates a report that highlights any potentially unoriginal text in your paper. The report may be submitted directly to your instructor or your instructor may elect to have you submit initial drafts through Turnitin, and you will receive the report allowing you the opportunity to make adjustments and ensure that all source material has been properly cited. Papers you submit through Turnitin for this or any class will be added to the OSU Turnitin database and may be checked against other OSU paper submissions. You will retain all rights to your written work. For further information, visit Academic Integrity for Students: Turnitin – What is it?

Student Evaluation of Courses

The online Student Evaluation of Teaching system opens to students during the week before finals and closes the Monday following the end of finals. Students receive notification, instructions and the link through their ONID. They may also log into the system via Online Services. Course evaluation results are extremely important and used to help improve courses and the online learning experience for future students. Responses are anonymous (unless a student chooses to “sign” their comments, agreeing to relinquish anonymity) and unavailable to instructors until after grades have been posted. The results of scaled questions and signed comments go to both the instructor and their unit head/supervisor. Anonymous (unsigned) comments go to the instructor only.

Student Bill of Rights

OSU has twelve established student rights. They include due process in all university disciplinary processes, an equal opportunity to learn, and grading in accordance with the course syllabus:

https://asosu.oregonstate.edu/advocacy/rights

Return to Modules

Course Summary:

Date Details Due