Computer Science 491/492
Senior Seminar

Dickinson College
Academic Year 2018/19
Grant Braught

Contact Information

My office hours, phone number and e-mail address are available on my home page.

Course Description

The Senior Seminar (COMP491/492 combined) has three main components:

  1. A year long project with two options:
  2. Readings, in-class exercises, homework, class discussions and reflective writings related to Free and Open Source Software (H/FOSS) and Software Engineering (491/fall);
  3. Readings, discussions and reflective writings on ethical, legal and social issues related to computing (492/spring).

Course Schedule

Assignment details including due dates and topics are indicated on the Course Home Page.

Textbook

Reading materials for COMP491/492 will be provided via links on the course schedule or via Moodle.

Learning Goals

Students will:

  1. Become familiar with a variety of H/FOSS and Software Engineering topics.
  2. Become familiar with a variety of ethical, legal and social issues related to computing.
  3. Improve their ability to work (reading/modifying/testing) within a substantial existing code base.
  4. Deepen their ability to write clearly and develop their mastery of specific forms of disciplinary writing.
  5. Apply computer science skills to an issue of public significance through interaction with a community of developers and users.
  6. Cultivate civic dispositions and skills that prepare them for a life of civic engagement.
  7. Be prepared for graduate study or a professional career in computing.

491 Grade Determination

492 Grade Determination

Course Components

PAE
The success of the Senior Seminar is in a large part up to you as its primary participants. My hope is that you will all engage in the material, prepare carefully and come to our meetings excited to participate in discussions and activities with your peers. If that happens then our meetings will be lively and interesting and we will be able to focus largely on the aspects of the material that are most interesting to you as a group. Plus, its good practice - many employers are now using Group Discussions as a screening technique before or during interviews!

PAE is assessed for each individual during each class period. Preparation includes completion of any reading, tutorials, exercises or activities assigned in the "Reading & Preparation" row of the "Class Detail". Attendance is your presence in class during our scheduled meetings. Engagement combines participation in discussion and activities with with a demonstrated investment both in the material and the betterment of the class for everyone.

PAE scores will be assigned according to the rubric below. The standard score in each category, and what you should generally expect to receive, is a ✓. Something exceptionally notable is required to move either up to a ✓+ or down to 0 or ✓-.

If you find PAE challenging, some good advice on increasing or improving class participation can be found at:

Blog / Reflective Writing:
An important part of learning about and understanding issues is to reflect upon them after reading and discussion. This gives you a chance to process the information, organize your thoughts, incorporate insights from others. To facilitate this reflection, following each class discussion you are asked to write a blog post reflecting/expanding on some aspect of the reading/discussion topic that was of interest to you. Doing this on a public blog encourages careful thought, precise writing and can provide evidence of your knowledge and abilities to prospective employers and/or graduate programs.

Posts will typically be 200-400 words. You are given wide latitude for the content of your posts. The best posts will:

  • be closely related to the reading/discussion
  • be clear, focused and grammatically correct
  • be written to be of interest to an audience beyond our course
  • go beyond a mere summary of the reading/discussion
  • include multimedia (images, audio, video, etc.) only as appropriate to enhance the content of the post. Be sure that if you use any external content that you are using it in a way that is allowed by its license.

I will assess blog posts at random during the semester. When you are selected to have your blog assessed, I will review all of your blog posts since the prior assessment using the rubric below. The standard score, and what you should generally expect to receive, is a ✓. Something exceptionally notable is required to move either up to a ✓+ or down to 0 or ✓-.


Note: Some language adapted from http://foss2serve.org/index.php/FOSS_Course_Syllabus#2._Methods_of_Assessment

If you find writing blog posts challenging, some good advice on writing effective blog entries can be found at:

Tutorials / Homework Exercises
Early in the semester there will be a number of tutorials and homework assignments designed to introduce you to some of the tools and techniques commonly used in FOSS projects (and in professional software development as well). Typically these assignments will require you to complete some tutorials and activities while keeping a Slack Live-Log (see below) of your work.

Tutorials and homework exercises will be assessed largely on completion and effort as documented by the associated Slack live-logs according to the rubric below. The standard score, and what you should generally expect to receive, is a ✓. Something exceptionally notable is required to move either up to a ✓+ or down to 0 or ✓-.

Project/Community Selection or Research Proposal
Students pursuing H/FOSS projects will be assigned several preliminary exercises leading to the selection of an H/FOSS project/community. Each project group will then give a presentation on their selected project/community. Project/community selection will be assessed based on the completion and quality of the preliminary exercises and the presentation according to rubric below. The standard score, and what you should generally expect to receive, is a ✓. Something exceptionally notable is required to move either up to a ✓+ or down to 0 or ✓-.

Additional assignment details will be posted on the course schedule.

Students pursuing Departmental Honors will turn in a copy of their Research Proposal and give a presentation of their proposed research. Students pursuing Honors will also complete a reduced version of the Project/Community Selection exercises to provide an appropriate introduction to H/FOSS projects and communities. The Research Proposal will be assessed, with input from the Honors Advisors, based on the quality of the written proposal and presentation. The proposal and the Project/Community selection exercises will be assessed according to rubric below. The standard score, and what you should generally expect to receive, is a ✓. Something exceptionally notable is required to move either up to a ✓+ or down to 0 or ✓-.

Project Checkpoints
At each Project Checkpoint the work on the project since the last checkpoint will be assessed. The assessment will include the following elements:

Project Checkpoints will be scored using the rubric below. The standard score, and what you should generally expect to receive, is a ✓. Something exceptionally notable is required to move either up to a ✓+ or down to 0 or ✓-.

Leading a Discussion
Small groups of students will select readings on a social, legal or ethical issue in computing and then prepare and lead a class discussion on that topic.

Code Review
Each student will present a technical code review to the class based on code with which they have worked on during the year. Additional details will be provided on the assignment page and in class.

Poster Presentation
Honors/research students will present a poster on their research project at the Science Research Symposium. Teams working on H/FOSS projects will present a poster on their project at the Service Learning / Community Based Learning Poster session. Additional details will be provided on the assignment page and in class.

Time & Effort Documentation Tools

Slack Live-Logs
All students will be required to keep Slack Live-Logs for the early homework assignments, as described above. In addition, FOSS Project teams will be required to maintain Slack Live-Logs for their project work throughout the remainder of the semester.

A Slack Live-Log is just a series of messages posted to a Slack channel as you work. The messages should paint a rough picture of what you are doing, when you did it and any other interesting/useful tidbits to be remembered while you are working. Ideally, when working in a pair, one partner will be controlling the machine where the project work is happening and the other will be live-logging on another machine. These roles should be swapped regularly. It is not necessary to document every tiny thing, and you don't have to use polished language, grammar and punctuation. You can see a sample live-log in the sample-live-log channel in the COMP491 Slack team.

For homework assignments the Slack Live-Log will be used to demonstrate that you have worked through the appropriate exercises, tutorials and assignments.

For FOSS Project work the Slack Live-Log will be used to demonstrate an appropriate investment of time and quality effort in the project work, as well as to document your progress through the project guides. Each of you has different experience and every FOSS project has different technical challenges. Thus, some tasks will be easier (or harder) than others and what is accomplished will vary between teams, from week-to-week and between projects. Thus, rather than relying solely on final products for credit teams will be expected to invest an appropriate amount of time and effort on their project work each week. Slack Live-Logs provide the mechanism for documenting the time and effort invested in the project.

In addition to keeping a record of what a team has done and how long it has worked, these live-logs are intended to encourage teams to practice and demonstrate that they are working via steady, sustained engagement rather than in long irregular bursts. Working via steady, sustained engagement is more effective, more productive and less frustrating than working in long irregular bursts. It allows time to process information, generate new ideas, communicate with faculty, peers and the project's development community.

Five-Fifteen

A five-fifteen report is a short weekly templated report that is designed to enhance communication, reflection, prioritization, goal setting and time management without being time consuming. The name five-fifteen reflects that the report should take no more than five minutes to read and no more than fifteen minutes to write.

We will use three types of 5-15 reports to reflect on your accomplishments, your self and your team, and to identify and plan future work. H/FOSS project students will complete Individual 5-15s and Team 5-15s. Honor's student's will complete a 5-15 tailored for individual research projects.

All 5-15's will be maintained as a Wiki page with the most recent entry at the top. Individual 5-15's will be linked with your personal information on the course Wiki (i.e. on the page with your blog and git links). Team and Honor's 5-15's will be linked from the project Wiki page.

Individual 5-15
Each individual 5-15 must have the headings given below and each must be followed by a few sentences or an annotated list. Ideally each team member will write their individual 5-15 before the team writes its 5-15.
  1. Period Ending (mm/dd/yyyy)
  2. What did my team accomplish?
  3. How did I contribute to those accomplishments?
  4. What did I learn / How did I improve?
  5. How can I improve?

Team 5-15
Each Team 5-15 must have the headings given below and each must be followed by a few sentences or an annotated list. Successive 5-15s should relate back to prior 5-15s to make clear how things that were planned turned into accomplishments, how thoughts on how to improve team function were enacted, how challenges/roadblocks were overcome, etc.
  1. Period Ending (mm/dd/yyyy)
  2. What were the team's accomplishments?
  3. What Interactions did the team have with the community? Include links to any interactions that are publicly accessible (e.g. posting to list serve, comment on an issue, etc.)
  4. What Contributions did the team make to the community? Include links to any publicly accessible contributions (e.g. documents, pages, new/refined/edited/closed tickets, pull requests, etc.)
  5. How is the team functioning? How can it be improved?
  6. What technical challenges/roadblocks does the team face?
  7. What's next?
  8. What steps will the team take to accomplish that? Who? When?

Honors 5-15
Each Project 5-15 must have the headings given below and each must be followed by a few sentences or an annotated list. Successive 5-15s should relate back to prior 5-15s to make clear how things that were planned turned into accomplishments, how challenges/roadblocks were overcome, etc.
  1. Period Ending (mm/dd/yyyy)
  2. What did I accomplish?
  3. What did I learn?
  4. What challenges/roadblocks do I face?
  5. What's next?
  6. What steps will I take to accomplish that? When?

Academic Integrity

Please take the time to read the Academic Misconduct section of Dickinson's Community Standards. Violations of this policy are considered serious transgressions, so you should be especially certain that you understand your rights and responsibilities under it. Students suspected of academic dishonesty will be subject to the process outlined in the Student Conduct pages. The specific collaboration policies for each component of this course are detailed in the assignments. If you are unsure about whether or not certain kinds of collaboration are permissible on an assignment or in this course, ask your instructor.

Intellectual Property Rights

Audio or video recording of class meetings, lectures or discussions is prohibited without explicit permission of the instructor. Photographic records of whiteboards, projected slides or other visual media is also prohibited without explicit permission of the instructor. In any case where permission is given for audio/video/photographic records to be made they are for personal use only. They may not be shared or redistributed and must be destroyed at the end of their usefulness or within one week following the termination of this course, whichever comes first. Similarly, any redistribution of sample code, homework solution sets or provided lab code is prohibited. Please note that all outside materials used in the course (readings/tutorials/assignments/projects/etc) are also be governed by their own licensing agreements.

Accommodations for Disabilities

Dickinson values diverse types of learners and is committed to ensuring that each student is afforded an equal opportunity to participate in all learning experiences. If you have (or think you may have) a learning difference or a disability - including a mental health, medical, or physical impairment - that would impact your educational experience in this class, please contact the Office of Disability Services (ODS) to schedule a meeting with Director Marni Jones. She will confidentially discuss your needs, review your documentation, and determine your eligibility for reasonable accommodations. To learn more about available supports, go to www.dickinson.edu/ODS, email DisabilityServices@dickinson.edu, call (717) 245-1734, or go to ODS in 106 Dana Hall.

If you've already been granted accommodations at Dickinson, please let me know as soon as possible so that we can meet to review your Accommodation Letter and complete your Access Plan. If you will need test proctoring from ODS, remember that you will need to provide them with at least one week's notice.