Proseminar Human-Computer Interaction

Summary

Term
Summer 2018
ECTS
3 (also see course catalog)
Level
Bachelor
Instructors
Michael Rohs
Seminar Time
Tuesday, 10:00–11:30
Seminar Room
901, 3408 (Hochhaus, Appelstr. 9A)

Course Description

Das Proseminar beginnt mit einer Einführung in das wissenschaftliche Arbeiten und in Präsentationstechnik. In diesem Semester sollen Konzepte von Programmiersprachen aus Perspektive der Mensch-Computer-Interaktion betrachtet werden. Programmiersprachen sind kognitive Werkzeuge, mit denen Informatiker Problemstellungen lösen. Die Ausgestaltung programmiersprachlicher Konzepte hat einen wesentlichen Einfluss darauf, wie gut sich Lösungen entwickeln und formulieren lassen. In diesem Seminar sollen ausgewählte Konzepte einiger konkreter Programmiersprachen erarbeitet werden und an Hand des Cognitive Dimensions Frameworks untersucht werden. Unter anderem sollen die Sprachen F#, Racket, NewLisp, PostScript und Gforth betrachtet werden. Ein Ziel des Seminars besteht darin, unterschiedliche Ansätze beurteilen und einsetzen zu können — und vielleicht sogar ein besserer Programmierer zu werden.

Course Objectives

  • Vertiefte Kenntnis eines Themas der Mensch-Computer-Interaktion auf dem Niveau des 5. Bachelorsemesters
  • Methodenkenntnisse in der Recherche, mündlichen Präsentation und schriftlichen Ausarbeitung eines Themas
  • Erfahrung in der Diskussion von wissenschaftlichen Fragestellungen
  • Inhaltlich: Kenntnis von Usability-Aspekten programmiersparchlicher Konzepte

Course Calendar

Date
Topic
10.4.
Organisation, Einführung, Cognitive Dimensions Framework
17.4.
Administration, introduction, topic assignments
24.4.
no class (CHI)
1.5.
no class (Tag der Arbeit)
8.5.
F#, F#, F#
15.5.
Racket, Racket, Racket
22.5.
no class (spring break)
29.5.
Clojure, Ruby, Ruby
5.6.
Gforth, PostScript, PostScript
12.6.
Pyret, Elm, UrWeb
19.6.
Papers: 1 - 3
26.6.
Papers: 4 - 6
3.7.
Papers: 7 - 9
10.7.
Papers: 10 - 12
17.7.
Papers: 13 - 15

Papers

  1. Linda McIver and Damian Conway. 1996. Seven Deadly Sins of Introductory Programming Language Design. In Proceedings of the 1996 International Conference on Software Engineering: Education and Practice (SE:EP '96) (SEEP '96). IEEE Computer Society, Washington, DC, USA, 309-316. https://dl.acm.org/citation.cfm?id=829930
  2. Preston Tunnell Wilson, Justin Pombrio, and Shriram Krishnamurthi. 2017. Can we crowdsource language design?. In Proceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! 2017). ACM, New York, NY, USA, 1-17. DOI: https://doi.org/10.1145/3133850.3133863
  3. Roger D. Chamberlain. 2017. Assessing user preferences in programming language design. In Proceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! 2017). ACM, New York, NY, USA, 18-29. DOI: https://doi.org/10.1145/3133850.3133851
  4. Sebastian Nanz and Carlo A. Furia. 2015. A comparative study of programming languages in Rosetta code. In Proceedings of the 37th International Conference on Software Engineering - Volume 1 (ICSE '15), Vol. 1. IEEE Press, Piscataway, NJ, USA, 778-788. https://arxiv.org/pdf/1409.0252.pdf
  5. Baishakhi Ray, Daryl Posnett, Premkumar Devanbu, and Vladimir Filkov. 2017. A large-scale study of programming languages and code quality in GitHub. Commun. ACM 60, 10 (September 2017), 91-100. DOI: https://doi.org/10.1145/3126905
  6. Kathi Fisler, Shriram Krishnamurthi, and Preston Tunnell Wilson. 2017. Assessing and Teaching Scope, Mutation, and Aliasing in Upper-Level Undergraduates. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE '17). ACM, New York, NY, USA, 213-218. DOI: https://doi.org/10.1145/3017680.3017777
  7. Brett A. Becker. 2016. An Effective Approach to Enhancing Compiler Error Messages. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education (SIGCSE '16). ACM, New York, NY, USA, 126-131. DOI: https://doi.org/10.1145/2839509.2844584
  8. John Wrenn and Shriram Krishnamurthi. 2017. Error messages are classifiers: a process to design and evaluate error messages. In Proceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! 2017). ACM, New York, NY, USA, 134-147. DOI: https://doi.org/10.1145/3133850.3133862
  9. Clemens Mayer, Stefan Hanenberg, Romain Robbes, Éric Tanter, and Andreas Stefik. 2012. An empirical study of the influence of static type systems on the usability of undocumented software. In Proceedings of the ACM international conference on Object oriented programming systems languages and applications (OOPSLA '12). ACM, New York, NY, USA, 683-702. DOI=http://dx.doi.org/10.1145/2384616.2384666
  10. Michael Hoppe and Stefan Hanenberg. 2013. Do developers benefit from generic types?: an empirical comparison of generic and raw types in java. In Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications (OOPSLA '13). ACM, New York, NY, USA, 457-474. DOI=http://dx.doi.org/10.1145/2509136.2509528
  11. Michael Coblenz, Joshua Sunshine, Jonathan Aldrich, Brad Myers, Sam Weber, and Forrest Shull. 2016. Exploring language support for immutability. In Proceedings of the 38th International Conference on Software Engineering (ICSE '16). ACM, New York, NY, USA, 736-747. DOI: https://doi.org/10.1145/2884781.2884798
  12. Guido Salvaneschi, Sven Amann, Sebastian Proksch, and Mira Mezini. 2014. An empirical study on program comprehension with reactive programming. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2014). ACM, New York, NY, USA, 564-575. DOI: https://doi.org/10.1145/2635868.2635895
  13. Jeffrey Stylos and Brad A. Myers. 2008. The implications of method placement on API learnability. In Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering (SIGSOFT '08/FSE-16). ACM, New York, NY, USA, 105-112. DOI=http://dx.doi.org/10.1145/1453101.1453117
  14. Lars Fischer and Stefan Hanenberg. 2015. An empirical investigation of the effects of type systems and code completion on API usability using TypeScript and JavaScript in MS visual studio. In Proceedings of the 11th Symposium on Dynamic Languages (DLS 2015). ACM, New York, NY, USA, 154-167. DOI=http://dx.doi.org/10.1145/2816707.2816720
  15. Cyrus Omar, YoungSeok Yoon, Thomas D. LaToza, and Brad A. Myers. 2012. Active code completion. In Proceedings of the 34th International Conference on Software Engineering (ICSE '12). IEEE Press, Piscataway, NJ, USA, 859-869. https://dl.acm.org/citation.cfm?id=2337324

Materials