-
Notifications
You must be signed in to change notification settings - Fork 0
EECS 598: User Interfaces for Programming Languages
The course webpage is http://web.eecs.umich.edu/~comar/courses/ui-for-pl.
There is a course chat for discussions that may be of interest to the students in the course, including cool UIs that you find online or follow-up discussions related to course meetings. You can also use it to ask if anyone has references for a topic you're interested in. Feel free to use it freely. Your participation in course chat is not required, but it is encouraged!
The course chat is a private channel in the large, public Future of Coding Slack, which you should also feel free to participate in (e.g. by introducing yourself in the #introductions channel).
- Join this Slack by following the instructions here: https://futureofcoding.org/slack-readme.html.
- Send a message to
@Cyrus Omar
after you've joined and I will add you to the private#ui-for-pl-michigan
channel. - You may or may not want to install Slack on your computer, phone, and/or other devices (you can also just use it from the web browser).
- The Future of Coding Slack is very active, so you'll want to mess with your notification settings to make sure you are notified of new discussions in
#ui-for-pl-michigan
specifically.
Class announcements will be sent via the course mailing list, which you will be added to automatically when you register for the course. If you are attending the course but are NOT registered, that's fine, but please email me so I can be sure you get the announcements as well.
Each student will individually do a course project. The project should be either:
- An implementation project, where you implement a new UI for programming and do a lightweight evaluation; or
- An evaluation project, where you do a more substantial evaluation of an existing UI for programming.
If you are proposing the implementation of a user interface for programming, please include the following information (the suggested section lengths are general guidelines, feel free to go above or below if it makes sense):
- Project title, your name, and your email address
- Describe the general problem that your tool might address. (1 paragraph)
- Describe the tool and how it might address the problem that you have identified. Include a mockup. (1-2 paragraphs)
- Describe some related work and compare it to your proposed tool. Include proper citations. (3-5 sentences)
- Describe how you will implement your tool, i.e. which languages, libraries, and existing implementations you will use. For each of these, describe your prior experience with these technologies. (3-5 sentences)
- Describe how you will evaluate your design, e.g. a survey using mockups before the implementation, a cognitive dimensions analysis, or a case study of the tool after it has been implemented. (1 paragraph)
- Provide a rough timeline of the tasks that you hope to accomplish each week for the remainder of the semester. (1 table)
If you are proposing the evaluation of an existing user interface for programming, please include the following information (the suggested section lengths are general guidelines, feel free to go above or below if it makes sense):
- Project title, your name, and your email address.
- Describe the general problem that the tool you have selected claims to address. (1 paragraph)
- Describe the tool itself and how it claims to address the problem that you have identified. Include proper citations to any relevant papers and websites. Include a screenshot or a link to a video if possible. (1-2 paragraphs)
- Describe how the tool has been evaluated so far. Include proper citations to any relevant papers and websites. Copy in a copy of relevant figure(s) if possible. (1 paragraph)
- Describe how you plan to evaluate the tool. Appropriate evaluations include a small user study, an extensive case study, a study that analyzes data collected by other researchers or gathered from the web (e.g. a code corpus analysis), or an extensive survey-based study. (2 paragraphs)
- Provide a rough timeline of the tasks that you hope to accomplish each week for the remainder of the semester. (1 table)
On Thursday, Oct. 10th, everyone will give a 3-5 minute lightning talk on their proposed project. Please send me the slides for your talk along with your project proposal by Wednesday, Oct. 9th at midnight so that I can package everything up.
You will have an opportunity to update your proposal after the lightning talk based on feedback that you receive.
THIS IS VERY IMPORTANT
If you are planning to conduct a study that involves human subjects, including a lab study, a survey, or the collection or analysis of data involving human subjects, you must talk to me about getting IRB approval. Do not start this part of your project until I let you know that it has been approved.
The final project presentations will be on the last three days of class. Plan to give a 15 minute talk about your project, with about 5 minutes for questions. In order to fit everyone in, I will cut you off if you go long.
Your final project report will be an extension of your proposal, adding a description of what you accomplished, some of the challenges that you confronted, and a description of potential future directions. It will be due Friday, December 13th at 5pm.
- Each participant will be asked to present one topic.
- For each presentation, another participant will be assigned as the presentation partner. Their job is to meet with the presenter at least once before the course meeting to provide substantial feedback on a practice presentation.
- Each participant will also be asked to write the portions of the companion compendium related to their presentation.
- 1 week before presentation, midnight: first draft of compendium contribution, submitted via Github pull request
- 2 days before the presentation, 11am: send Cyrus any required and suggested readings / videos / activities to post on the course webpage
- 1 day before the presentation, 3pm: practice talk with project partner. send slides + partner feedback to Cyrus by email.
- 1 week after presentation, midnight: second draft of compendium contribution, submitted via Github pull request
- Dec. 13th at 5pm: final draft of compendium contribution, submitted via Github pull request
The compendium is a living document that we will be making the first contributions to this semester.
Each participant will be responsible for fleshing out the section(s) of the compendium corresponding to their presentation topic. The "Notation" chapter is an example of what is expected by the end of the semester. The goal is to cover the topic reasonably broadly. Each contribution should include 7-10 cited papers. You should prefer well-cited papers (check Google Scholar) over obscure papers in general, though exceptions are fine if you have a good reason (e.g. the paper was recently published, or it contains a particularly notable result).
The following rubric will be used to grade your compendium contributions:
- The topic is introduced clearly (2-4 paragraphs)
- The sub-topics are organized sensibly and introduced clearly (1-2 paragraphs each)
- The literature is broadly reviewed (7-10 correctly cited papers)
- For each paper, the paper summary describes the key idea(s) and result(s) (1-6 sentences each)
- For each paper, the paper is prominent in the literature or if not, it is clear why the paper is nevertheless of general interest
- Technical terms used in the compendium contribution are defined before they are used
- Spelling and grammar is adequate
The compendium is developed on Github at the following URL, and the README provides technical details:
https://github.com/fplab/ui-for-pl
Each submission (first draft, second draft, and final draft) should take the form of a Github pull request onto that repository. Please fork the repository and make sure you can build the compendium on your machine as soon as possible. After each draft, I will provide feedback using the Github code review tools. If you would like my feedback on your pull requests to remain private, please contact me.
After the semester is over, the compendium will be published online as a public resource, under a Creative Commons license. You will be listed as a contributor to the compendium. Please contact me if you have any concerns about this.
If you need writing help, feel free to contact Cyrus. In addition, the folks at the Sweetland Center for Writing have a number of resources available, including one-on-one help. You do not need to be in LSA to take advantage of these resources.
The in-class presentations should take approximately 75 minutes total (starting at 12:05, finished by 1:20).
Please prepare 45-60 minutes of direct instruction in the form of a presentation with slides, videos, and demos as outlined by the rubric below. For the remainder of the time (which can come before, during, and/or after your presentation), you should prepare one or two discussion activities (e.g. brainstorming about design considerations, design critiques, brainstorming about future directions).
Please refer to the presentation rubric [.pdf, .docx, .odt] for more on what is expected.