CompSci 390
Spring 2023
Educational Technology Practicum

An expert is someone who, over many years, manages to remain confident enough to keep trying and humble enough to keep learning. — James Clear

Meeting Time

Attendance is required since we will discussing, presenting, or working together every day. If you must miss class, email me an explanation ahead of time; missing class time without explanation will negatively affect your grade.

I am excited to bring you the best learning experience collaboratively — so I look forward to your thoughts and suggestions.

Professor Robert C. Duvall

  • rcd AT cs DOT duke DOT edu
  • LSRC room D228
  • Office Hours: Tuesdays 2-3pm, Wednesdays 2-3pm
  • Drop-in policy: You may make an appointment via email

In general, only email me about administrative aspects of the course (please put CompSci 390 in the subject line); questions about course content are better made using the course Bulletin Board where an answer can benefit everyone.

If I do not respond to your email within 24 hours, I probably did not receive it.

Books

While there are no official textbooks for the course, readings will be available online during the semester. The majority of classtime will be a discussion about or extension of the reading, not a summary. You will be expected to be active participants during class. This makes it vital that you prepare by reading before coming to class.

Inability to discuss assigned readings implies a lack of participation.

Grading

This course is about working with an open source community, thus it is much more than simply a programming course. It also means we do not have complete control over how successful our projects will actually be, how much value they will provide, or what roadblocks we will run into. This means it is your responsibilty to demonstrate that you have done as much as possible to make progress on your projects. To help you manage my expectations on your progress, respond to changes and setbacks, and deliver as much direct value as possible, we will be using Scrum to manage your work, with regular Sprints to emphasize agile project principles. The Open Source community has a concept known as "if it isn't public, it didn't happen". In practical terms, this means that each week you will be expected to show what you have accomplished so that we can understand the context of your progress and how best to proceed.

To receive a passing grade, you must demonstrate that you have consistently made significant progress to making your project a success. In order to ensure consistent progress on this project, your work will be monitored regularly. These parts of your grade will be factored in primarily on a pass/fail basis, so missing any of these parts essentially reduces your grade by a letter. For example, if you consistently miss the weekly deadlines or do not test your app with your users, your grade will slip. If, on the other hand, you only miss one or two deadlines, then your grade should not suffer.

During the first half of the course you will work on small projects to get you thinking about issues in Educational Technology and what value means for users and how to handle their feedback.

The last half of the semester will be spent working in teams on a software project of your design. This project is given in lieu of a final exam and must be completed and presented at the end of the semester. Additionally, you will be required to objectively evaluate the performance of all team members, including yourself.

Here is a summary of the significant requirements for the semester:

20% Participation in-class presentations and discussions, regular progress reports unless pre-approved to miss
30% Small Projects sprint deadlines met and project planning done in timely manner that shows improvement
10% Team Feedback consistent, timely, public, and positive contributions to the project (not necessarily code)
10% User Testing evidence users have tested, given feedback, and team has responded to that feedback
30% Final Project evidence of progress and following the Agile practices, even when the outcome does not work

Submitting Assignments Late

Plan on submitting work on time, but work submitted within 1 day of the deadline will be given full credit.

Individual extensions beyond that will be granted for:

If you find you are having trouble or consistently behind — do not give up, ask for help as soon as possible.

Collaboration Policy

In accordance with the Duke Community Standard, we encourage proper collaboration, in which all parties participate collaboratively.

You are encouraged to use resources on the Internet to help you learn the course material or solve very specific issues within your programming projects. It is not acceptable to search for direct answers to the programming problems or copy more than 10 lines of code from a single source. Any code you copy directly from any Internet source must be attributed in your comments. You are responsible for understanding all work you turn in. For any given assignment, an interview may be included as part of the graded work. During the interview, you may be asked to explain the problem solving process and individual lines of code not given as part of the assignment. Turning in code that you cannot explain is considered cheating.

You may consult with the me about any aspect of the course. On programming projects you may consult with other students only in a general way, e.g., about debugging, programming concepts, or questions about wording on the assignment. You cannot actively work with someone else unless the assignment specifically grants permission for you to do so. It is never acceptable to directly show another student your code or write one program among a group and submit multiple copies.

Consult means you can discuss programs in a general way before writing code and get help with debugging your program, but you must write your own code and do your own thinking about the problem. For each project you are expected to include a list of the people (or AI Assistants) with whom you have consulted in the README file you submit with the assignment. You should also cite any resources other than class materials you use (e.g. web pages, notes from other courses at other universities, etc.). This file is required and failure to provide it will result in rejection of the assignment as complete.

If you are not sure what the collaboration policy is for a given assignment — ask for clarification!

Diversity

This course is committed to Duke's Commitment to Diversity and Inclusion.

Even beyond this statement, we believe this class should be a secure and supportive learning environment for all students.

Disabilities

This course is committed to providing equal access to students with documented disabilities. Anyone with disabilities may contact the Student Disability Access Office (SDAO) to ensure equitable access to this course. There you can engage in a confidential conversation about the process for requesting reasonable accommodations both in the classroom and in clinical settings.

Please note that accommodations cannot be provided retroactively — seek out extra assistance and advice early.

Academic Wellness

The semester can be long and stressful for many students, so taking steps to reduce stress and improve your physical health are important to maintain positive mental health.

Duke's goal is simple: to help you learn, both inside and outside the classroom. If you have a problem or question, we want to talk about it — do not put it off.

Computing Requirements

You are expected to have access to and on-going use of a computer on which you can install the software used in the course: A laptop is strongly recommended (so you can bring it to class, team meetings, or meetings with me).

Specific project choices may require using a specific language or technology, but there is not a general language, software, or platform requirement.

The Innovation Co-Lab supports tech all over campus. They have staff professionals and experienced students who can help you with tech questions about Python/PyCharm and much more. You can see Office Hours times and make appointments, as well as find learning opportunities online.

Online Course Information

Web Site (http://www.cs.duke.edu/courses/spring23/compsci390/). Many of the materials for this course, including the syllabus, class notes, reading assignments, homeworks, and other resources, will be available through this course web site.

Gitlab Server (https://coursework.cs.duke.edu/CompSci390_2023Spring). All projects are expected to be completed by pushing your code to the course Gitlab server by the end of the day given as the due date (i.e., 11:59:59pm).

Bulletin Board (https://edstem.org/us/courses/9326/discussion). You are expected to regularly read and contribute to the course Bulletin Board as it is a useful place for posting questions, continuing discussions, and generating ideas or concensus.

Email. You are expected to regularly check your email, as important course announcements may be sent via email.