View on GitHub

COMP 491/492

Dickinson College Computer Science Senior Seminar

Syllabus

Course Description

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

  1. A year long project with two options:
    • Honors Research Projects: Students pursuing departmental honors will use their honors research project as their senior seminar project.
    • H/FOSS Projects: Students not pursuing departmental honors will become involved with a Free and Open Source Project (FOSS or Humanitarian FOSS - H/FOSS) and complete a sequence of four activities using their project and then planning additional work to be completed for the project, as time permits.
  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:

491 Grade Determination

Course Component Weight
Preparation/Attendance/Engagement (PAE) 15%
Reflective Writing Blog Posts 10%
Homework Exercises 15%
Project Selection (or Research Proposal for honors projects) 15%
Project Checkpoint #1 15%
Project Checkpoint #2 30%

Course Components

Participation/Attendance/Engagement (PAE)

The success of the Senior Seminar is in a large part up to you as its primary participants. Our 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. 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 ✓-. Rarely a ✓++ score may be given to recognize truly outstanding performance in a rubric category.

Click rubric to enlarge image.
PAE Rubric

If you find class participation 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, you will write reflective blog posts following class discussions related to social/legal/ethical issues in computing. You are given wide latitude in these posts to reflect/expand on some aspect of the reading/discussion topic that was of interest to you. Doing so on a public-facing blog encourages careful thought, precise writing and can provide evidence of your knowledge and abilities to prospective employers and/or graduate programs.

The best posts will:

Blog posts will be assessed 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 ✓-. Rarely a ✓++ score may be given to recognize truly outstanding performance in a rubric category.

Click rubric to enlarge image.
Blog Rubric

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 ✓-. Rarely a ✓++ score may be given to recognize live-logs that demonstrate truly outstanding learning beyond expectations.

Click rubric to enlarge image.
Homework Rubric

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 ✓-. performance in a rubric category. Rarely a ✓++ score may be given to recognize truly outstanding performance in a rubric category. Additional assignment details will be posted on the course schedule.

Click rubric to enlarge image.
Project Selection Rubric

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 ✓-. Rarely a ✓++ score may be given to recognize truly outstanding performance in a rubric category.

Click rubric to enlarge image.
Research Proposal Rubric

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 ✓-. Rarely a ✓++ score may be given to recognize truly outstanding performance in a rubric category.

Click rubric to enlarge image.
Project Checkpoint Rubric

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.

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.

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.

  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.

  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.

  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 equitable access 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 hinder your access to learning or demonstrating knowledge in this class, please contact Access and Disability Services (ADS). They will confidentially explain the accommodation request process and the type of documentation that Dean and Director Marni Jones will need to determine your eligibility for reasonable accommodations. To learn more about available supports, go to www.dickinson.edu/ADS, email access@dickinson.edu, call (717) 245-1734, or go to the ADS office in Room 005 of Old West, Lower Level (aka “the OWLL”).

If you’ve already been granted accommodations at Dickinson, please follow the guidance at www.dickinson.edu/AccessPlan for disclosing the accommodations for which you are eligible and scheduling a meeting with me as soon as possible so that we can discuss your accommodations and finalize your Access Plan. If test proctoring will be needed from ADS, remember that we will need to complete your Access Plan in time to give them at least one week’s advance notice.

Life Happens:

Sometimes stuff just happens, even more so in the challenging situations in we currently find ourselves. 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 (my) own. Dickinson is 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, your advisor or your class Dean. They will all be willing to talk with you, help to formulate a plan and/or connect you with others that may be able to assist. If I am experiencing such events, I will communicate them to you as well and we will adapt.