Course Syllabus

PDF of this syllabus: CS464_S20.pdf

When you've finished reading the syllabus, please proceed to the Syllabus Quiz

CS 464 Open Source Software Development

Credits: 4

Instructor name: Hannah Scott and Samarendra Hedaoo

Instructor email: scothann@oregonstate.edu and hedaoos@oregonstate.edu 

Teaching Assistant name and contact info: TBA

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

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

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.

Students in this section may be required to interact with teachers, teaching assistants, undergraduate learning assistants, and students in other concurrent sections of this same course.

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 (Karl Fogel) https://producingoss.com/ (Free)

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

Course Content and Schedule

Week

Topic

Due Mon

Due Fri

1

Intro and expectations

(Syllabus Quiz)

Discussion 1

Assignment 1 Proposal

2

Anatomy of an OSS Project



Discussion 2

3

Intellectual Property, licensing

Quiz 1

Assignment 1 - Project design/contributor usability

Discussion 3

Assignment 2 Proposal

4

The economics of OSS

Discussion 4

5

Project management, OSSDLC

Quiz 2

Discussion 5

6

Testing

Assignment 2 - Documentation

Discussion 6

Assignment 3 Proposal

7

History of OSS

Discussion 7

8

OSS and Society

Quiz 3

Discussion 8

9

The OSS community

Assignment 3 - Testing

Discussion 9

Assignment 4 Proposal

10

Tools and Trends

Quiz 4

Discussion 10

Finals

Assignment 4 (Final report; portfolio assignment; contribution) due Wednesday

 

Instructors Introduction

Hannah Scott

 

Samarendra Hedaoo

Grading Policy

Description

Qty

Pts each

Pts total

Quizzes

4

6

24

Assignment Proposals

4

4

16

Participation (Discussions)

10

2

20

Assignments

4

10

40

Total

100

 

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

Student Conduct

Allowed :)

NOT allowed >:(

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

Giving your work to a (current or future) student so they can copy it.

Discussing strategies and concepts with classmates.

Submitting someone else's work as your own or claiming their work as yours.

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 too many questions by email, in Slack, or on the class message board.

Not understanding what you need to do, not asking for help, and then asking what you can do after it’s too late.

Disagreeing with someone on the message board.

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

Discussing the assigned reading or quiz questions in the OFFICIAL Slack, on Piazza, or in your 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).

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.

At the beginning of the term you will join one of the Discussion groups (which can be found in the People link on the left sidebar of Canvas). Each week your group will discuss a prompt based on either your progress with the current assignment, an article from the assigned reading, or the application of one of the week's topics on a FLOSS project of your choosing.

Once you have joined a group and participated in a discussion, you may change groups as many times as you wish, under two conditions:

  1. You must leave the old group and join the new one at least three days before the next discussion assignment is due.
  2. You cannot join an empty group or create a new group to join. (This does not apply in the first week of the term before you have participated in a discussion.)

You may wish to form or join a group based on similar interests. For example, if you and a few other students would all like to work on the same FLOSS project, on projects that fall within the same software genre, or which are written in a specific programming language. The group sizes will be limited, but multiple groups may have the same interests.

Late Work Policy

You must submit all assignments before the due date. We do 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 quizzes and assignments. If you are unable to fulfill an assignment, project step, or quiz to your satisfaction before the due date--for any reason--you may notify the TA (via a Canvas comment or email along with the original on-time submission) that you plan to submit a revision. You may then submit a revision within 3 days. Discussion posts and the final 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 3 days, your grade will reflect your final submission only without incurring penalties. If you do not resubmit within 3 days, your grade will reflect your original (potentially incomplete) submission.

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

Incompletes

Incomplete (I) grades will 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 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.

Guidelines for a Productive and Effective Online Classroom

Students are expected to conduct themselves in the course (e.g., on discussion boards, email) in compliance with the university’s regulations regarding civility. Civility is an essential ingredient for academic discourse. All communications for this course should be conducted constructively, civilly, and respectfully. Differences in beliefs, opinions, and approaches are to be expected. In all you say and do for this course, be professional. Please bring any communications you believe to be in violation of this class policy to the attention of your instructor.

Active interaction with peers and your instructor is essential to success in this online course, paying 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.

 

Communication and Where to Go for Help

Hannah Scott (instructor): scothann@oregonstate.edu

Office hours on Slack/Zoom: By appointment. Feel free to message me on Slack without an appointment; I'm generally very active and will usually get back to you within a few business hours.

Samarendra Hedaoo (instructor): hedaoos@oregonstate.edu 

Office hours on Slack/Zoom: By appointment. Choose a time slot from on https://tinyurl.com/samarendra-office-hours or email me any 4 time slots that work for you. I usually pop-in on Slack at random times but you can tag or DM me @hedaoos if required. Please always include [CS464] in your subject line when emailing.

 

TA assignments and contact information are provided in an announcement at the beginning of the term.

Piazza (a Q&A forum for help from the instructor and other students)

Slack (a forum for more informal interaction with other students, and also 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.

Return to Modules

Course Summary:

Date Details