CSC575: Open Source Software Development
Quinnipiac University
Course Information
Course: CSC575 - Open Source Software Development
Section: 01
Meeting Time: Monday / Wednesday, 2:00 PM - 3:15 PM
Location: TH130
Instructor Information
Instructor: Dr. Kruti Shah
Email: kruti.shah@quinnipiac.edu
Office Phone: (203) 582-7335
Office Location: CCE 238
Office Hours
- Mondays: 11:00 AM - 12:15 PM (In-person, CCE 238)
- Wednesdays: 11:00 AM - 12:15 PM (Zoom)
If these times do not work, please email me and we will find a mutually convenient time.
Who Is Your Professor?
Hi everyone! I’m Dr. Kruti Shah. I started my journey with a Bachelor of Engineering in Computer Science in India, went on to earn a master’s at California State University, Los Angeles, and later completed my Ph.D. in Computer Science at the University of North Dakota. My research focuses on software engineering and artificial intelligence especially on how we can use technology to build reliable and impactful systems. This is my second year at Quinnipiac University. This past summer I worked with a group of both undergraduate and graduate students on an exciting research project: designing an AI-powered system to help visually impaired individuals navigate more independently. I’m also serving as the advisor for the Quinnipiac Computing Club (QCC). My goal for this course is not just to cover material, but to create a space where you feel comfortable asking questions, exploring new ideas, and even connecting what we do here with larger research or career goals. I look forward to learning and growing together with you this semester!
How to Contact Me
Email is the best way to reach me.
- I try to respond within 24 hours on weekdays and 48 hours on weekends.
- Emails sent after 9:00 PM may not be seen until the next morning.
- If you haven’t received a response within 24 hours, please send a follow-up email.
Course Description
This course introduces students to the principles, practices, and culture of Open Source Software (OSS) development. Students explore the history and philosophy of free and open-source software, licensing models, community governance, and ethical considerations. The course emphasizes hands-on experience, including using version control systems, collaborating through GitHub, evaluating open-source projects, and making meaningful contributions to real-world OSS projects.
Course materials are available at:
- Course Website: https://krutishah45.github.io/CSC575/
- GitHub Repository: https://github.com/krutishah45/CSC575
Course Format
This course follows an active, project-based learning model. Class meetings include:
- Short lectures and guided discussions
- Hands-on activities and in-class practice
- Team-based collaboration
- Open-source project exploration and contributions
Students will work in teams while also completing individual reflections and submissions.
Course Learning Outcomes (CLOs)
By the end of this course, students will be able to:
- Explain the history, philosophy, and principles of free and open-source software.
- Analyze and compare open-source licensing models and governance structures.
- Use version control systems (git) and collaboration platforms (GitHub) effectively.
- Evaluate open-source projects based on technical, social, and community factors.
- Function effectively as a member of a small development team.
- Contribute documentation, testing, design, or code to an open-source project.
ABET Student Outcomes Addressed
ABET CAC Outcomes
- C1: Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. (CLO 1-6)
- C2: Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline. (CLO 1, 5, 6)
- C5: Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline. (CLO 5, 6)
- C6: Apply computer science theory and software development fundamentals to produce computing-based solutions. (CLO 1-6)
ABET EAC Outcomes
- E1: An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics. (CLO 1-6)
- E2: An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors. (CLO 1, 6)
- E6: An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions. (CLO 1-6)
Learning Resources
Textbook
There is no required textbook. All readings, activities, and project materials are available through the course website and GitHub repository.
Software & Tools
- Version Control: git, GitHub
- Content Authoring: Markdown
- Platforms: Blackboard, Zoom
Blackboard will be used for grades and official announcements. GitHub will be used for assignments and project work.
Assessment & Grading
Grading Breakdown
| Category | Weight |
|---|---|
| Reading Activities + Presentations | 20% |
| Project Assignments | 40% |
| Project Presentations | 30% |
| Professionalism | 5% |
| Total | 100% |
Reading Activities + Presentations (20%)
You may complete readings and discussions with your team; however, each student must submit an individual reflection.
| Activity | Weight | Link |
|---|---|---|
| 1.A.1 | 5% | 1.A.1 |
| 1.A.2 | 5% | 1.A.2 |
| 1.A.3 | 1% | 1.A.3 |
| 1.B.1 | 3% | 1.B.1 |
| 1.B.2 | 3% | 1.B.2 |
| 1.B.3 | 3% | 1.B.3 |
Project Assignments (40%)
Students will complete a semester-long open-source project in teams of two.
| Assignment | Weight | Link |
|---|---|---|
| PA-01 (Exploration) | 5% | PA-01 – Project Exploration |
| PA-02 | 5% | PA-02 – Project Reviews |
| PA-03 | 5% | PA-03 – Project Selection |
| PA-04 | 5% | PA-04 – Tech Spike Prep |
| PA-05 | 20% | PA-05 – Contributions |
Project Presentations (30%)
| Presentation | Weight | Link |
|---|---|---|
| PP-01 | 5% | PP-01 |
| PP-02 | 5% | PP-02 |
| PP-03 | 5% | PP-03 |
| PP-04 | 15% | PP-04 |
Professionalism (5%)
Professionalism includes:
- Timely communication
- Responsible GitHub usage
- Active participation
- Respectful teamwork and ethical behavior
- Each unexcused absence will result in a reduction of your overall course grade by 0.1. Additionally, late arrivals, inattentiveness, and/or leaving the classroom frequently or for extended periods of time may also result in a reduction to your professionalism grade and overall course grade.
Attendance Policy
Regular attendance is expected. If you must miss class due to illness or other circumstances, notify me as soon as possible. You are responsible for all material and announcements covered in class.
Late Work Policy
| Time After Deadline | Penalty |
|---|---|
| Up to 48 hours | −10% |
| 2–7 days | −10% per day |
| After 7 days | Not accepted unless arranged in advance |
Extensions for projects are granted if requested at least 24 hours before the deadline.
Sometimes stuff just happens. Sometimes it is an unexpected sudden event such as an illness or family emergency. Other times it may be an ongoing issue or concern or an accumulation of smaller issues. Any of these things may affect your (or my) ability to focus or perform up to your (or my) potential through no shortcoming or fault of your (or my) own. This course provides a kind and caring community and we want to see you achieve at your full potential. So, if you are experiencing life events that are affecting your performance please don’t hesitate to talk to your instructor. It is always best to contact the instructor in advance if you are going to miss a class meeting or an assignment due date. I will similarly communicate to you any issues that I am facing in advance and we will adapt.
Academic Integrity
Students must follow Quinnipiac University’s Academic Integrity Policy. All work must be original. Unauthorized collaboration, plagiarism, or misuse of tools (including AI tools such as ChatGPT) is prohibited unless explicitly permitted.
Policy: https://catalog.qu.edu/university-policies/academic-integrity-policy/
Learning Commons & Accessibility
Quinnipiac University provides academic and accessibility support through the Learning Commons and the Office of Student Accessibility.
-
Learning Commons: learning.center@qu.edu 203-582-8628 -
Accessibility: access@qu.edu 203-582-7600
AI Use
The use cases of AI listed below are permissible in this course. Any use of AI other than the listed use cases is not permitted. Any evidence of impermissible use of AI will be treated as a violation of Academic Integrity as described above. If you have any question about whether you can use AI for a particular purpose in the course, please discuss it with the instructor prior to using it.
- Revision of Writing: You may use AI to revise any writing that you have done. Your writing process must begin with your own writing. The AI can then be used to improve the organization, grammar, clarity, etc of the writing. However, all of the facts, concepts, ideas appearing in the submitted assignment must be your own and must appear in the writing before the AI is used for revision. If you use AI for revision, you must maintain a copy of your original writing to present in the event that the instructor has concerns about impermissible AI use.
- Project Work: When working on an H/FOSS project, you may use AI tools for code or documentation that is being contributed to the project (i.e. in a Pull Request), unless it violates the policy of your chosen project. It is your responsibility to ensure that your contributions to the project are in compliance with the project’s policy.
Recording Policy
Lectures may only be recorded with an approved accommodation. Any instructor-initiated recordings will be announced in advance.
Semester Schedule – CSC575: Open Source Software Development
Note: This schedule is subject to change. Any updates will be announced in class and reflected on the course website.
Course Schedule (Updated for 1/26 Campus Closure)
| Date | Topic / In-Class Activity | Assign |
|---|---|---|
| 1/21 | Course Introduction | — |
| 1/26 | Campus Closure - Bad Weather (No Class) | — |
| 1/28 | In-class: Reading 1.A.1 | 1.A.2, 1.A.3 |
| 2/2 | Presentations: 1.A.1 | — |
| 2/4 | Presentations: 1.A.2 | 1.B.1 |
| 2/9 | In-class: 1.B.1 | 1.B.2 |
| 2/11 | In-class: 1.B.2 | 1.B.3 |
| 2/16 | In-class: 1.B.3 | PA-01 |
| 2/18 | In-class: PA-01 | — |
| 2/23 | In-class: PA-01 | PA-02 |
| 2/25 | In-class: PA-02 | — |
| 3/2 | In-class: PA-02 | PA-03 |
| 3/4 | In-class: PA-03 | — |
| 3/9 | 🎉 Spring Break | — |
| 3/11 | 🎉 Spring Break | — |
| 3/16 | In-class: PA-03 | PA-04 |
| 3/18 | In-class: PA-04 | — |
| 3/23 | In-class: PA-04 | — |
| 3/25 | PP-01: Tech Spike Presentation | PA-05 |
| 3/30 | In-class: PA-05 | — |
| 4/1 | In-class: PA-05 | — |
| 4/6 | PP-02: Status Report Presentation | — |
| 4/8 | In-class: PA-05 | — |
| 4/13 | In-class: PA-05 | — |
| 4/15 | PP-03: Demo Day Presentation | — |
| 4/20 | In-class: PA-05 | — |
| 4/22 | In-class: PA-05 | — |
| 4/27 | In-class: PA-05 | — |
| 4/29 | PP-04: Final Project Presentation | — |
All textual materials used in this course are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License
All executable code used in this course is licensed under the GNU General Public License Version 3 or later