Capstone, Dickinson, Braught

From Foss2Serve
(Difference between revisions)
Jump to: navigation, search
 
(53 intermediate revisions by 4 users not shown)
Line 1: Line 1:
NOTE: THIS IS CURRENTLY A WORK IN PROGRESS!!
+
{{Category:Courses}}
  
NOTE: COURSE WILL BE OFFERED AY16-17.  THE MATERIALS HERE WILL BE REFINED THROUGHOUT THAT PERIOD.
+
=== Overview ===
  
__NOTOC__
+
{{Course Overview
{| border="1"
+
|course=
|-
+
Computer Science Senior Seminar
|'''Title''' || Syllabus for 2-Semester Senior Capstone Course
+
|institution=
|-
+
Dickinson College
|'''Overview''' || Students will gain perspective on and experience with H/FOSS projects. In the first semester students will complete readings, exercises and activities that familiarize them with H/F/OSS philosophy/community/tools, select a project in which to participate and produce a plan for their second semester. During the second semester students will work according to their plans while also completing readings on contemporary and ethical issues in computing.  
+
|instructors=
|-  
+
Grant Braught, Dickinson College
|'''Prerequisite Knowledge''' || This course was designed for use in the final year of a Computer Science major at a small liberal arts college. Students having completed the first three years of an undergraduate CS curriculum should be well prepared for this course.  Our students typically have completed the core courses and are competent in: Object Oriented Programming (Java), Data Structures (Java), Analysis of Algorithms, Programming Languages (C/C++, Scheme, Prolog), Organization and Architecture.  They may also have completed electives (Operating Systems, Networking, AI, Databases).
+
|offerings=
|-
+
First offered as COMP491/492 in Academic Year 2016-17 at Dickinson College.  Revised for the 2017-18, and 2018-19 Academic Years.
|'''Learning Objectives''' ||
+
|overview=
*Students will:
+
A two-semester required senior capstone including perspective on and experience with H/FOSS projects. In the first semester students complete readings, exercises and activities that familiarize them with H/F/OSS philosophy/community/tools. They complete exercises to help them select an H/FOSS project in which to participate and form teams. They then begin a series of exercises that include: Installing the project as a user; Installing the project as a developer; Rebuilding the project from source; Running the test suite; Verifying bugs from the issue tracker (Bug Gardening); and Fixing bugs. During the second semester students continue work on their selected H/F/OSS project fixing bugs and proposing additional contributions to the project that have value both to them and their H/FOSS community.  Students also complete readings on contemporary and ethical issues in computing and participate in class discussions on these topics.
**Gain perspective on H/F/OSS and Software Engineering topics.
+
|courselength=
**Improve their ability to work (reading/modifying/testing) within a substantial existing code base.
+
Two 14-week semesters.
**Interact with a community of developers and users.
+
|students=
**Recognize the ethical, legal and social implications of computing.
+
Typically offered to 10-20 senior computer science majors per year.
**Be prepared for graduate study or a professional career in computing.
+
|prerequisites=
**Deepen their ability to write clearly and develop their mastery of specific forms of disciplinary writing.
+
This course was designed for use in the final year of a Computer Science major at a small liberal arts college. Students having completed the first three years of an undergraduate CS curriculum should be well prepared for this course.  Our students typically have completed the core courses and are competent in: Object Oriented Programming (2 courses in Java), Data Structures (in Java), Analysis of Algorithms, Programming Languages (including C/C++, Python, Scheme, Prolog), Organization and Architecture.  They may also have completed additional electives (e.g. Operating Systems, Networking, AI, Databases) and other core courses (e.g. Theory of Computation).
|}
+
|infrastructure=
 +
The course outlined below assumes 28 75-minute course meetings (2 per week) per semester, plus a 3-hour final exam period. Students are expected to average between 8 and 12 hours of work outside of class per week.
  
=== Background: ===
+
Many of the activities and assignments rely on the use of particular technologies.
The course outlined below assumes 14 2-hour course meetings (1 per week) per semester, plus a 3-hour final exam period.  Students are expected to average between 8 and 12 hours of work outside of class per week.
+
These can be substituted with equivalent technologies but are currently:
 
+
Many of the activities and assignments rely on the use of particular technologies. These can be substituted with equivalent technologies but are currently:
+
 
* Virtual Box
 
* Virtual Box
 
* Ubuntu 16.04
 
* Ubuntu 16.04
 
* Slack
 
* Slack
 
* Moodle (Wiki/Forums)
 
* Moodle (Wiki/Forums)
 +
}}
  
=== Directions: ===
+
=== Complete Course Materials and User Guide ===
__NOTOC__
+
{| border="1" class="wikitable"
+
|-
+
!'''Meeting'''
+
!'''Topic'''
+
!'''Summary'''
+
!'''Readings for this Class'''
+
!'''In-Class Activities'''
+
!'''Homework due next Class'''
+
|-
+
| 1
+
|'''Course Introduction'''
+
| Overview of course goals, expectation and structure and pre-survey. Introduction to Wiki, Slack and Virutal Box. Students begin the process of project selection.
+
| None
+
|
+
*Create Personal Wiki Page from Course Home
+
*Create Slack Account and add Channel
+
|
+
*Virtual Box Ubuntu Install
+
*Project Selection pt. 1
+
|-
+
| 2
+
|'''H/F/OSS Philosophy & Structure'''
+
| Discussion of the history and philosophy of open source software. Identification of the major OSS project components. Collaborative development of ranking rubric for project selection pt. 2 homework.
+
| TBA
+
|
+
*Linux Command Line Tutorial
+
|
+
*Shell Scripting
+
*Project Selection pt. 2
+
|-
+
| 3
+
|'''H/F/OSS Licensing & Tools'''
+
| Discussion of licensing issues in open source. Introduction to Git/GitHub/GitFlow.
+
| TBA
+
|
+
*Git/GitHub Activity
+
|
+
*Fork/Install/Build Sample Project
+
*Project Selection pt. 3
+
|-
+
  
 +
Complete details of this course including all materials, a guide to use and adaptation of the materials, analysis of student survey data and a discussion of ongoing improvements can be found in the following GitHub Repository:
  
 
+
[https://github.com/braughtg/DickinsonHFOSS-SFC-Materials COMP491/492 at Dickinson College]
 
+
| 4
+
| Software Process
+
|-
+
| 5
+
| Software Architectures
+
|-
+
| 6
+
| Software Patterns
+
|-
+
| 7
+
| Software Flaws
+
|-
+
| 8
+
| Software Testing
+
|}
+
 
+
 
+
=== Deliverables: ===
+
What will the student hand in?
+
 
+
 
+
=== Assessment: ===
+
How will the activity be graded?
+
+
How will learning will be measured?
+
 
+
Include sample assessment questions/rubrics.
+
 
+
{| border="1" class="wikitable"
+
! Criteria
+
! Level 1 (fail)
+
! Level 2 (pass)
+
! Level 3 (good)
+
! Level 4 (exceptional)
+
|-
+
| '''Criterion 1...'''
+
|
+
|
+
|
+
|
+
 
+
|-
+
| '''Criterion 2...'''
+
|
+
|
+
|
+
|
+
 
+
|}
+
 
+
=== Comments: ===
+
What should the instructor know before using this activity?
+
 
+
What are some likely difficulties that an instructor may encounter using this activity?
+
 
+
 
+
=== Additional Information: ===
+
{| border="1"
+
|-
+
|'''ACM Knowledge Area/Knowledge Unit''' || What ACM Computing Curricula 2013 knowledge area and units does this activity cover? [[ACM_Body_of_Knowledge]]
+
|-
+
|'''ACM Topic''' || What specific topics are addressed? The Computing Curriucula 2013 provides a list of topics - https://www.acm.org/education/CS2013-final-report.pdf
+
|-
+
|'''Level of Difficulty''' || Is this activity easy, medium or challenging?
+
|-
+
|'''Estimated Time to Completion''' ||  How long should it take for the student to complete the activity?
+
|-
+
|'''Materials/Environment''' || What does the student need?  Internet access, IRC client, Git Hub account, LINUX machine, etc.?
+
|-
+
|'''Author(s)''' || Who wrote this activity?
+
|-
+
|'''Source''' || Is there another activity on which this activity is based?  If so, please provide a link to the original resource.
+
|-
+
|'''License''' || Under which license is this material made available? (http://creativecommons.org/licenses/)
+
|}
+
 
+
=== Suggestions for Open Source Community: ===
+
Suggestions for an open source community member who is working in conjunction with the instructor.
+
 
+
=== Category: ===
+
Categorize the page as "Category:Learning Activity"
+
 
+
Also categorize the page under one or more of the subcategories found at http://foss2serve.org/index.php/Learning_Activities
+
 
+
=== Feedback: ===
+
Feedback to the author(s) of the activity regarding usage or suggestions for enhancements can be included via the discussion tab.
+
  
 
--------------------
 
--------------------
This work is licensed under a  
+
<!-- this license is for the FORMAT - remove it for a new activity, and add the license for the activity -->
[http://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 International License]
+
For this blank '''format''': {{License CC BY SA}}.
 
+
[[File:CC_license.png]]
+
  
[[Category: Learning_Activity]]
+
[[Category:Courses]]
[[Category: Full_Course]]
+
<!-- add appropriate subcategory(s) for a new course - e.g. CS1, CS2, Capstone -->
 +
[[Category:Capstone]]

Latest revision as of 13:56, 18 October 2019

A Course is an actual academic course that involves HFOSS, typically by using Pathways and Learning Activities.

Overview

Course Computer Science Senior Seminar
Institution Dickinson College
Instructor(s) Grant Braught, Dickinson College
Term First offered as COMP491/492 in Academic Year 2016-17 at Dickinson College. Revised for the 2017-18, and 2018-19 Academic Years.
Course Overview A two-semester required senior capstone including perspective on and experience with H/FOSS projects. In the first semester students complete readings, exercises and activities that familiarize them with H/F/OSS philosophy/community/tools. They complete exercises to help them select an H/FOSS project in which to participate and form teams. They then begin a series of exercises that include: Installing the project as a user; Installing the project as a developer; Rebuilding the project from source; Running the test suite; Verifying bugs from the issue tracker (Bug Gardening); and Fixing bugs. During the second semester students continue work on their selected H/F/OSS project fixing bugs and proposing additional contributions to the project that have value both to them and their H/FOSS community. Students also complete readings on contemporary and ethical issues in computing and participate in class discussions on these topics.
Course Length Two 14-week semesters.
Student Characteristics Typically offered to 10-20 senior computer science majors per year.
Prerequisites This course was designed for use in the final year of a Computer Science major at a small liberal arts college. Students having completed the first three years of an undergraduate CS curriculum should be well prepared for this course. Our students typically have completed the core courses and are competent in: Object Oriented Programming (2 courses in Java), Data Structures (in Java), Analysis of Algorithms, Programming Languages (including C/C++, Python, Scheme, Prolog), Organization and Architecture. They may also have completed additional electives (e.g. Operating Systems, Networking, AI, Databases) and other core courses (e.g. Theory of Computation).
Infrastructure The course outlined below assumes 28 75-minute course meetings (2 per week) per semester, plus a 3-hour final exam period. Students are expected to average between 8 and 12 hours of work outside of class per week.

Many of the activities and assignments rely on the use of particular technologies. These can be substituted with equivalent technologies but are currently:

  • Virtual Box
  • Ubuntu 16.04
  • Slack
  • Moodle (Wiki/Forums)


Complete Course Materials and User Guide

Complete details of this course including all materials, a guide to use and adaptation of the materials, analysis of student survey data and a discussion of ongoing improvements can be found in the following GitHub Repository:

COMP491/492 at Dickinson College


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