Policies
Attendance. This is a collaborative project course, and our time together in the classroom is essential. We, therefore, expect you to attend class, both for your own learning and for the benefit of your ideas to your peers. You must be present in class to receive credit for participation.
If you need to miss class, please fill out this form to let us know and request an excused absence: Absence from Class Form.
Academic Integrity. We expect you to uphold the Duke Community Standard; that is, to agree that “…I will not lie, cheat, or steal in my academic endeavors; I will conduct myself honorably in all my endeavors; and I will act if the Standard is compromised.” In all cases, failure to uphold this standard will result in referral to the Office of Student Conduct. Any work that copies, paraphrases, or in any other way uses materials not your own without citation will be considered in violation. This includes the undocumented use of code.
Extensions and Late Work. We only grant extensions (without penalty) on assignments when accompanied by Dean’s excuses for exceptional circumstances. Otherwise, assignments turned in late within 48 hours will have their grade penalized by subtracting 10%. Beyond 48 hours you should contact the instructors to discuss accommodations.
Incapacitation or Short-Term Health Issues. If you are unexpectedly incapacitated for health reasons, you should submit a short-term incapacitation form as directed by Trinity College. Note that the definition of incapacitation is “An incapacitating health issue is one in which you are hospitalized, under medical care for a short-term condition, or otherwise sufficiently debilitated as to be unable to perform basic academic tasks. Colds, headaches, or other such mild complaints that result in your feeling less than 100% are not considered incapacitating, and you should not use the Incapacitation Form in such instances.”
Long Term Health Issues. If you have or develop a chronic health issue that will interfere with your participation in this course, please contact your academic dean to seek accommodations as directed by Trinity College.
Personal Distress or Emergencies. If a situation of extreme personal distress or an emergency interferes with your participation in this course, please contact your academic dean to seek accommodations as directed by Trinity College.
Collaboration
Despite the stereotypes, computer scientists almost never work alone. The reality is that significant real-world projects in computer science are almost always pursued by teams. Effective collaboration and improved teamwork are a focus of the course.
Although you will likely take on different roles and focus on different aspects of the project during the semester, all team members are expected to be actively engaged each week by regularly:
- communicating with team members (not necessarily formal meetings)
- making significant contributions (not necessarily coding)
- reviewing and revising the team’s plan describing values, policies, roles, and responsibilities
Some class time each week will be provided for teams to meet face to face.
You will provide feedback on your team members’ effectiveness throughout the semester.
Choosing a Project
Students, faculty, and external clients are all eligible to pitch project ideas. Once teams are formed, students will design a plan to implement those ideas. The instructors will act as mentors in this process.
We expect projects to be diverse in both their outcomes and methodologies, an appropriate reflection of the real-world diversity of computing. Nevertheless, for clarity, we describe some common themes below. We expect most projects to fall under one of these methodological themes but note that these are neither exhaustive nor mutually exclusive (as examples, one might choose to implement a sophisticated theoretical algorithm in software as a project or build a highly data-driven mobile application). Projects of all these types are important because they are representative of the real-world tasks in which computer scientists are expected to engage to construct computational artifacts of significance and value to society at large
| Project Identification | Developing a Solution | Outcomes and Evaluation | |
|---|---|---|---|
| Software | Identifying end-users, clients, and use cases for a software system that adds valuable functionality for organizing information, automating tasks, increasing interactivity and responsiveness, etc. | Consider abstractions of key interfaces within software system; iteratively develop, deploy, test, and refine code for software system; add and modify features as needed | A functioning software system; demonstrations of use and features, tests of user experiences, documentation of technical solution and discussion of use |
| Data | Identifying a task or research question, often of interdisciplinary interest, which can be solved or answered through systematic acquisition and analysis of data using tools from statistics, machine learning, and artificial intelligence | Acquire data, typically by searching databases, contacting relevant institutions, generating data, or web scraping; Process/wrangle data into appropriate format and conduct analyses, build visualizations, and connect data to applications; Iteratively refine models and data as needed | Results of statistical analyses, predictive models, visualizations, possible integration into interactive applications; clear description of methodologies and data acquisition; description of results and implications for research questions or task |
| Theory | Identifying a formal model (often mathematical) for a computational task motivated by applications and/or connections to research literature and posing a precise question for investigation within that model | Systematic review of research literature review for related models and results; proposal of alternative solutions or answers to question; use of mathematical proof or formal experiments to evaluate proposed solutions | Description of formal mathematical or experimental model; discussion of relationship to research literature; description of proposed solution(s) or answer(s); formal mathematical proofs or rigorous experiments to support claims |
Deliverables and Feedback
You will turn in four major deliverables for your project marking milestones in its evolution. Each stage comes in pairs: a formative first part that is graded for completion with feedback on quality, and a summative second part that is graded for quality.
- Proposal → Re-proposal: Initial project identification and contextualization. Should identify the problem, need, or research question(s) to be addressed, the computing artifact(s) you intend to construct, a survey of related work (research literature or other implementations), discussion of technologies and/or techniques to be used, proposed timeline, criteria for success, and roles and responsibilities of group members.
- Proof of Concept → Prototype: demonstrates the viability of proposed solutions. Should include a minimum viable computational artifact, discussion of design principles, analysis/testing of preliminary result, discussion of the significance of results, discussion of challenges and setbacks, updated timeline, and updated roles and responsibilities for group members.
- Practice Presentation → Final Presentation: Communicates significant results in the community of peers. This will be a 10-12 minute presentation/demonstration followed by question and answer.
- Rough Draft → Project Final: documents and evaluates project results in context. Should provide all the information from the proof of concept/prototype updated to the final computing artifact.
Between major deliverables, we will follow an agile approach to scaffolding the project within the course. You will be expected to demonstrate individual progress on your project and to document that in regular progress reports. Progress can be demonstrated in a variety of ways and may vary at different points in the course. For example, early in the course, you might demonstrate progress by annotating research papers you have read or describing data sources you have identified. Later on, you might demonstrate progress by documenting updates to your codebase, describing the results of experiments, or describing a proof attempt or counterexample.
Class Activities
Expect to engage as an active participant in class. Most classes will have at most 20-30 minutes of us (the instructor(s)) presenting in order to maximize opportunities for the following activities.
- Guest Speakers: We will have some guest speakers from computing in context (industry, interdisciplinary, etc) join us to share their experience of computing in the real world.
- Brainstorming. We will often use brainstorming activities to begin conversations about new aspects of the course project or computing more generally. During structured brainstorming activities, students will be asked to reflect on a question (for example, what computing skills do I bring to a team, what is an example of bad design in computing, etc.) and write a brief reflection independently. We will then share these ideas in small groups.
- Workshopping. We will workshop projects together frequently as a class. Typically, this will involve sharing current project materials between groups. Students will be asked to provide written feedback before coming together in small groups to discuss feedback.
- Stand-up meeting. Most class meetings will allocate time for brief (15-20 minute) stand-up meetings between project team members. The focus of these meetings should be (a) what did we finish since the last meeting, (b) what is everyone working on now, and (c) what should we start next. Project mentors will circulate during stand-up meetings to provide feedback.
- Seminar groups. When we want to explore a variety of perspectives or materials on a particular topic (for example, different ethical case studies or career paths in computing), we will frequently break the class up into small groups and provide each small group with a set of readings or other materials. Students will be provided with guided discussion questions for their small groups. After small group discussion, each group will be asked to report out to the larger class on one or more questions provided.
Grades
We will use the following meta-rubric for the course.
- A (90%-100%). Exceptional, above and beyond expectations, demonstrates mastery.
- B (80%-90%). Superior, satisfies expectations well, demonstrates proficiency.
- C (70%-80%). Satisfactory, meets basic requirements, demonstrates competency.
- D (60%-70%). Low pass, needs improvement, demonstrates effort.
- F (below 60%). Failing, incomplete or superficial engagement.
Due to the diversity of projects in the course and to encourage reflective design practices, we will ask you to participate in drafting appropriate rubrics for evaluating your project. We may also ask you to justify what grade you think is most appropriate. This may be very different from your experience in other courses, but the reality is that evaluating success in the real world is often a conversation between different stakeholders rather than a grade handed down from on high.
We will average assignments with the following weights to determine overall numerical course grades. They are listed in roughly chronological order. Final letter grades for the course will be assigned based on your numerical course grade according to the meta rubric above.
In general, students on a project team will receive the same grade for major project deliverables, but individual progress reports & contribution grades and peer evaluation grades are individual. We also reserve the right to give different individual grades on a project deliverable in exceptional circumstances.
| Item | Weight (%) | Details |
|---|---|---|
| Warmup Project Stages | 5 | |
| Proposal | 2 | Formative |
| Re-proposal | 5 | Summative |
| Re-proposal presentations | 2 | Formative |
| Proof of Concept | 2 | Formative |
| Prototype | 10 | Summative |
| Practice Presentations | 2 | Formative |
| Project Presentations | 10 | Summative |
| Rough Draft | 2 | Formative |
| Project Final | 30 | Summative |
| Class Participation | 5 | Two “skips,” i.e., you can miss two classes without penalty. |
| Individual Progress Reports & Contribution | 15 | |
| Peer Evaluation | 10 |