Open Source Software Development Fall 2018, Hunter College, Stewart Weiss

From Foss2Serve
Revision as of 18:16, 13 January 2019 by SWeiss (Talk | contribs)
Jump to: navigation, search

This page is under construction. For now the important information is the following link.

http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/csci132/csci132_f18.php


Contents

Overview

Course Open Source Software Development, http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/csci132/csci132_f18.php
Institution Hunter College, CUNY, New York City
Instructor(s) Stewart Weiss, email: stewart.weiss@hunter.cuny.edu, http://www.compsci.hunter.cuny.edu/~sweiss
Term Fall 2018
Course Overview An elective course for students who want to learn how to contribute to open source software projects
Course Length 15-week term
Student Characteristics mostly upper juniors and seniors, small size classroom (holds 20)
Prerequisites A data structures course
Infrastructure Held in a conference room with each student bringing a laptop


Learning Objectives

  • the student will become a contributing member of a software development community and have documented evidence of their contribution; and
  • the student will document their efforts on this project by creating a blog that chronicles their work.


Assessment Methods

  • contributions (30%) such as pull requests that have been accepted, or those that were not accepted but, deserve to be treated as if they were accepted;
  • homework (30%) submitted in response to assignments that I post on the website or distribute in class;
  • participation (40%) including attending meetings, completing the weekly blog posts, and oral presentations made to the group


Course Outline

  1. Context and Overview
    1. Open-ness in general: open source, open data, open hardware, etc.
    2. History and background of open source software
    3. Open source culture and community
  2. Contributing to Projects
    1. Early and Easy Contributions
    • open wikis
    • open maps
    1. Types of contributions to software projects
    2. Ways of getting involved
  3. Tools and Technology
    1. Programming Tools and Technology
    • markdown, make, gdb, Unix shells
    1. Software engineeering tools required for group software projects
    • version control systems (e.g., git)
    • issue tracking
    • documentation tools (e.g., Doxygen)
    1. Software engineering tools specific to distributed group projects
    • communication tools
    • remote, distributed version control (GitHub)
    • online, web-based issue trackers
  4. Intellectual Property Rights and Licensing
    1. types of licenses
    2. licensing your own work
    3. avoiding plagiarism
  5. Project Evaluation and Studies
    • Evaluating the suitability of a project for the purpose of their contributing to it.
  6. Team Selection
  7. Project Selection/Assignment
    1. Getting involved in the community
    2. Setting up project development environment
    3. Picking some issues to work on
    4. Solving the issues and issuing pull requests
  8. Team Reports

Notes to Instructor

  • Tips, suggestions, lessons learned (warnings)...

Moving Forward

  • what next steps are desirable or possible for this course

For this blank format: This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

CC license.png .

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox