Capstone, Dickinson, Braught

(Difference between revisions)
Jump to: navigation, search
Line 17: Line 17:
 
|-
 
|-
 
! style="text-align:right;"| Student Characteristics
 
! style="text-align:right;"| Student Characteristics
| ''typical class size, student background, etc (omit for general course categories - e.g. CS1,CS2)''
+
| Typically offered to 10-15 senior computer science majors per year.
 
|-
 
|-
 
! style="text-align:right;"| Prerequisites
 
! style="text-align:right;"| Prerequisites
Line 37: Line 37:
  
 
== 1. Learning Objectives ==
 
== 1. Learning Objectives ==
* ''objectives & prerequisites should be active, student-centered, specific, and measurable''
+
*Students will:
** ''the student will be able to...''
+
**Recognize the ethical, legal and social implications of computing.
* ''for the entire course, and/or for FOSS-specific parts of the course''
+
**Be exposed to H/F/OSS and Software Engineering topics.
* ''might include content & process skills''
+
**Improve their ability to work (reading/modifying/testing) within a substantial existing code base.
* ''might consider all levels of Bloom's taxonomy''
+
**Interact with a community of developers and users.
 +
**Deepen their ability to write clearly and develop their mastery of specific forms of disciplinary writing.
 +
**Be prepared for graduate study or a professional career in computing.
  
 
== 2. Methods of Assessment ==
 
== 2. Methods of Assessment ==
* ''what will students do in this course, and how will it be evaluated''
+
 
** ''Exams, assignments, projects, etc.''
+
 
* ''should be tied to learning objectives''
+
Each week students will complete some or all of the following:
 +
*Post to course forum discussion questions based on the reading that will form the basis for the in-class discussion.
 +
**
 +
*Add to wiki a reflective writing following on from readings and course discussion.
 +
*Add to wiki a reflective writing discussing project accomplishments, challenges and planning tasks for the following week.
 +
*Have live-texted their project work using Slack.
 +
 
 +
Early course meetings will have homework assignments with specific deliverables.
 +
 
 +
Project checkpoints will have specific deliverables.
 +
 
  
 
== 3. Course Outline ==
 
== 3. Course Outline ==
* ''major topics, events, milestones''
+
* __Link to course website here__
* ''learning activities that can be adopted or adapted''
+
* ''new learning activities that should or could be developed''
+
* ''include links where appropriate''
+
* ''reading assignments and supporting materials''
+
* ''or link to course website''
+
  
 
== 4. Notes to Instructor ==
 
== 4. Notes to Instructor ==
* ''Tips, suggestions, lessons learned (warnings)...''
+
* __Fill in as course progresses__
  
 
== 5. Moving Forward ==
 
== 5. Moving Forward ==
* ''what next steps are desirable or possible for this course''
+
* __Fill in as course progresses__
  
 
--------------------
 
--------------------
Line 208: Line 215:
  
 
=== Deliverables: ===
 
=== Deliverables: ===
Each week students will complete some or all of the following:
 
*Post to course forum discussion questions based on the reading that will form the basis for the in-class discussion.
 
*Add to wiki a reflective writing following on from readings and course discussion.
 
*Add to wiki a reflective writing discussing project accomplishments, challenges and planning tasks for the following week.
 
*Have live-texted their project work using Slack.
 
 
Early course meetings will have homework assignments with specific deliverables.
 
 
Project checkpoints will have specific deliverables.
 
  
 
=== Assessment: ===
 
=== Assessment: ===

Revision as of 13:57, 16 August 2016

NOTE: THIS IS CURRENTLY A WORK IN PROGRESS!!

NOTE: COURSE WILL BE OFFERED AY16-17. THE MATERIALS HERE WILL BE REFINED THROUGHOUT THAT PERIOD.

0. Overview

Course Name Computer Science Senior Seminar (COMP491/492)
Course Overview A two-semester required senior capstone including 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 on their selected H/F/OSS project according to their plans while also completing readings on contemporary and ethical issues in computing.
Instructor Contact Info Grant Braught, Dickinson College
Student Characteristics Typically offered to 10-15 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 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.

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)
Offerings To be offered AY 2016-17 at Dickinson College

1. Learning Objectives

  • Students will:
    • Recognize the ethical, legal and social implications of computing.
    • Be exposed to H/F/OSS and Software Engineering topics.
    • Improve their ability to work (reading/modifying/testing) within a substantial existing code base.
    • Interact with a community of developers and users.
    • Deepen their ability to write clearly and develop their mastery of specific forms of disciplinary writing.
    • Be prepared for graduate study or a professional career in computing.

2. Methods of Assessment

Each week students will complete some or all of the following:

  • Post to course forum discussion questions based on the reading that will form the basis for the in-class discussion.
  • Add to wiki a reflective writing following on from readings and course discussion.
  • Add to wiki a reflective writing discussing project accomplishments, challenges and planning tasks for the following week.
  • Have live-texted their project work using Slack.

Early course meetings will have homework assignments with specific deliverables.

Project checkpoints will have specific deliverables.


3. Course Outline

  • __Link to course website here__

4. Notes to Instructor

  • __Fill in as course progresses__

5. Moving Forward

  • __Fill in as course progresses__

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

CC license.png

Materials linked to by this page may be governed by other licenses.



Title Syllabus for 2-Semester Senior Capstone Course
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.
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).
Learning Objectives
  • Students will:
    • Recognize the ethical, legal and social implications of computing.
    • Be exposed to H/F/OSS and Software Engineering topics.
    • Improve their ability to work (reading/modifying/testing) within a substantial existing code base.
    • Interact with a community of developers and users.
    • Deepen their ability to write clearly and develop their mastery of specific forms of disciplinary writing.
    • Be prepared for graduate study or a professional career in computing.

Background:

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.

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)

Directions:

Meeting Topic Summary Readings for this Class In-Class Activities Homework
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
  • Introductory Git/GitHub Activity (Stony?)
  • Extended Git/GitHub Activity (CHRIS?)
  • Project Selection pt. 3

Topics:

Bug Reporting Software Testing Software Reviews Software Processes Software Architectures Patterns 1 Patterns 2 FOSS Business Models FOSS Success Stories FOSS Criticisms


| 4 |Bug Reporting |

|- | 4 |Software Process | Discussion of software development processes (waterfall / agile / etc). Student groups give short presentation on the projects that they have selected. | TBA |

  • Project presentations

|

  • Build/Instal/Demo Checkpoint

|- | 5 | Software Architectures |- | 6 | Software Patterns 1 |- | 7 | Software Patterns 2 |- | 8 | Software Flaws |- | 9 | Software Testing |- | 10 | Bug Reporting |- | 11 | FOSS Success Stories |- | 12 | |- | 13 | |- | 14 | |}


Deliverables:

Assessment:

Each homework assignment and project checkpoint will provide a specific rubric for its assessment.

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:

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 Challenging
Estimated Time to Completion 2 Semesters
Materials/Environment GitHub Account / Slack Account / Machine running Virtual Box
Author(s) Grant Braught
Source Many... all linked above.
License Creative Commons Attribution-ShareAlike 4.0 International License

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 Creative Commons Attribution-ShareAlike 4.0 International License

CC license.png

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