Schedule for 05-899D: Human Aspects of Software Development (HASD)

Times: Tuesdays and Thursdays from 12noon to 1:20 p.m. in NSH 3002.
(Note: if you want to take this course, but have a conflict with the time, let me know.)

Schedule and Readings

1 Tues,
Jan 11, 2011

Introduction
Given by: Brad Myers

PowerPoint Slides for Lecture 1

Required Readings:

  • Brad A. Myers, John F. Pane and Andy Ko, "Natural Programming Languages and Environments". Communications of the ACM. (special issue on End-User Development). Sept, 2004, vol. 47, no. 9. pp. 47-52. pdf

(Additional Readings listed on the GoogleDocs for this topic)

Homework: Fill out survey about what topics should be covered: http://www.surveymonkey.com/s/TVSTMD7
2 Thurs,
Jan 13, 2011

HCI Research Methods, part 1: Using exploratory and evaluation studies
Given by: Thomas LaToza

PDF of Slides for Lecture 2

Required Readings:

  • Saul Greenberg and Bill Buxton. 2008. Usability evaluation considered harmful (some of the time). In Proceeding of the twenty-sixth annual SIGCHI conference on Human factors in computing systems (CHI '08). ACM, New York, NY, USA, 111-120.
    • This paper, despite ostensibly being about the risks of usability evaluation, is really about how the whole HCI design process works or should work, how to do it rigorously, and the role of usability evaluation and other evaluations in this.

(Additional Readings listed on the GoogleDocs for this topic)

3 Tues,
Jan 18, 2011

HCI Research Methods, part 2: Analyzing data
Given by: Thomas LaToza

PDF of Slides for Lecture 3

Required Readings:

  • B. A. Kitchenham, S. L. Pfleeger, L. M. Pickard, et al.. "Preliminary guidelines for empirical research in software engineering." IEEE Transactions on Software Engineering, Vol. 28, No. 8. (2002), pp. 721-734. Saul Greenberg and Bill Buxton. 2008.
    • This paper is all about the method, data analysis, and result details that you should do and report in writing a paper when running at study.

(Additional Readings listed on the GoogleDocs for this topic)

4 Thurs,
Jan 20, 2011

5.2 Designing and Documenting APIs
Given by: Brad Myers

PowerPoint Slides for Lecture 4

Required Readings:

  • Brian Ellis, Jeffrey Stylos, and Brad Myers. "The Factory Pattern in API Design: A Usability Evaluation". International Conference on Software Engineering (ICSE'2007). May 20-26, 2007. Minneapolis, MN. pp. 302-312. ACM or local pdf .
    • This paper is about a study of the Factory Pattern. We started by asking how developers would "naturally" express creating objects, in which none used factories, and then performed a lab study, and found that the time to develop using factories took 2.1 to 5.3 times longer compared to regular constructors across a variety of tasks.

(Additional Readings listed on the GoogleDocs for this topic)

5 Tues,
Jan 25

6.1 Exploring code
Presented by Thomas LaToza

PDF of Slides for Lecture 5

Required Readings:

  • Thomas D. LaToza and Brad A. Myers. 2010. Developers ask reachability questions. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1 (ICSE '10), Vol. 1. ACM, New York, NY, USA, 185-194

(Additional Readings listed on the GoogleDocs for this topic)

(Brad may be away)

6 Thurs,
Jan 27

4.2 Coordinating developers
Presented by Prof. Jim Herbsleb

PDF of Slides for Lecture 6

Required Readings:

  • Herbsleb, J.D. & Mockus, A. (2003). An empirical study of speed and communication in globally-distributed software development. IEEE Transactions on Software Engineering, 29(3), 1-14. (pdf).

(Additional Readings listed on the GoogleDocs for this topic)

(Brad may be away)

7 Tues,
Feb 1

8.3 Debugging
Presented by Thomas LaToza

PDF of Slides for Lecture 7

Required Readings:

(Additional Readings listed on the GoogleDocs for this topic)

(Brad may be away)

8 Thurs,
Feb 3

Groups Present Their Initial Plans

9 Tues,
Feb 8

3.2 Software Visualization
Presented by Brad Myers 

PowerPoint Slides for Lecture 9

Required Readings:

(Additional Readings listed on the GoogleDocs for this topic)

10 Thurs,
Feb 10

7.6 Navigating working sets
Presented by Brad Myers

PowerPoint Slides for Lecture 10

Required Readings:

  • Ko, A. J., Aung, H., and Myers, B. A. (2005). Eliciting Design Requirements for Maintenance-Oriented IDEs: A Detailed Study of Corrective and Perfective Maintenance Tasks. International Conference on Software Engineering (ICSE'05). St. Louis, MO: pp. 126-135. (Winner, Distinguished Paper Award). pdf

(Additional Readings listed on the GoogleDocs for this topic)

11 Tues,
Feb 15

3.1 Learning to program, how people naturally think about computation
Presented by Cyrus Omar

PowerPoint Slides for Lecture 11

Required Readings:

  • Gary Lewandowski, Dennis J. Bouvier, Robert McCartney, Kate Sanders, and Beth Simon. Commonsense computing (episode 3): concurrency and concert tickets. In Proceedings of the third international workshop on Computing education research (ICER '07). ACM, New York, NY, USA, 133-144. ACM DL or pdf

(Additional Readings listed on the GoogleDocs for this topic)

12 Thurs,
Feb 17

4.1 Designing with Diagrams
Presented by Chris Martens

PDF of Slides for Lecture 12

Required Readings:

  • Helen C. Purchase, Ray Welland, Matthew McGill, Linda Colpoys. (2004). Comprehension of diagram syntax: an empirical study of entity relationship notations. Int. J. Hum.-Comput. Stud. 61(2): 187-203. pdf

(Additional Readings listed on the GoogleDocs for this topic) 

13 Tues,
Feb 22

4.3 Finding experts, maintaining awareness, onboarding
Presented by Kun Niu

PowerPoint Slides for Lecture 13

Required Readings:

(Additional Readings listed on the GoogleDocs for this topic)

  Thurs,
Feb 24

NO CLASS: presentations postponed until Friday, March 4

14 Tues,
Mar 1

5.1 Finding code to reuse
Presented by Kerry Chang

PowerPoint Slides for Lecture 14

Required Readings:

  • Yunwen Ye and Gerhard Fischer. 2002. Supporting reuse by delivering task-relevant and personalized information. In Proceedings of the 24th International Conference on Software Engineering (ICSE '02). ACM, New York, NY, USA, 513-523. ACM DL

(Additional Readings listed on the GoogleDocs for this topic)

(Brad will be away)

15 Thurs,
Mar 3

6.3 Reading code (program comprehension, mental models of programs, and effects of expertise)
Presented by Stephen Oney

PowerPoint Slides for Lecture 15

Required Readings:

(Additional Readings listed on the GoogleDocs for this topic)

16 Friday,
March 4

Special class: 10:30-11:50 in Gates GHC 5222
Groups Present Their Study of Existing Practice

  Monday, March 7 -- Mid-Semester Grades Due for Students
  Tues, Mar 8 No class, Spring Break
  Thurs, Mar 10 No class, Spring Break
17 Tues,
Mar 15

10.5 Capability Maturity Model Integration (CMMI)
Presented by Prof. Mark Paulk

PowerPoint Slides for Lecture 17

Required Readings:

  • Mike Phillips and Sandy Shrum, “Process Improvement for All: What to Expect from CMMIVersion 1.3”, IEEE Crosstalk, January/February 2010, pp. 10-14, IEEE pdf or local pdf

(Additional Readings listed on the GoogleDocs for this topic)

18 Thurs,
Mar 17

8.1 Causes of bugs, preventing bugs
Presented by Joshua Sunshine

PowerPoint Slides for Lecture 18

Required Readings:

  • Nachiappan Nagappan, Thomas Ball, Andreas Zeller. "Mining Metrics to Predict Component Failures". Proceedings of the International Conference on Software Engineering, Shanghai, China, May 2006. ACM DL.

(Additional Readings listed on the GoogleDocs for this topic)

19 Tues,
Mar 22

7.3 Visual languages
Presented by Vishal Dwivedi

PowerPoint Slides for Lecture 19

Required Readings:

(Additional Readings listed on the GoogleDocs for this topic)

20 Thurs,
Mar 24

7.5 Evolving and improving code: (Copy and paste; Refactoring; Reviewing changes)
Presented by YoungSeok Yoon

PowerPoint Slides for Lecture 20

Required Readings:

(Additional Readings listed on the GoogleDocs for this topic)

(Brad may be away)

21 Tues,
Mar 29

9.2 End-User Programming for Scientists
Presented by Cyrus Omar

PowerPoint Slides for Lecture 21

Required Readings:

  • Judith Segal. 2008. "Models of Scientific Software Development," In Proc. 2008 Workshop Software Eng. in Computational Science and Eng. (SECSE08). 13 May 2008, Leipzig, Germany. pdf.

(Additional Readings listed on the GoogleDocs for this topic)

22 Thurs,
Mar 31

7.1 Languages and tools for novice and end-user programmers
Presented by Brad Myers

PowerPoint Slides for Lecture 22

Required Readings:

  • Caitlin Kelleher and Randy Pausch. “Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers,” ACM Comput. Surv. 2005. 37(2). pp. 83-137. ACM

(Additional Readings listed on the GoogleDocs for this topic)

23 Tues,
April 5

Groups Present Their Prototype of a New Tool

24 Thurs,
April 7

10. Programming Processes (Pair Programming; Agile; Test-driven development; Code organization techniques)
Presented by Kun Niu 

PowerPoint Slides for Lecture 24

Required Readings:

(Additional Readings listed on the GoogleDocs for this topic)

25 Tues,
April 12

7.2 Programming by example
Presented by Kerry Chang

PowerPoint Slides for Lecture 25

Required Readings:

(Additional Readings listed on the GoogleDocs for this topic)

(Brad may be away)

  Thurs, April 14 No Class: Spring Carnival
26 Tues,
April 19

7.4 Textual languages and editors
Presented by Stephen Oney

PowerPoint Slides for Lecture 26

Required Readings:

  • Andrew J. Ko and Brad A. Myers. "Citrus: A Toolkit for Simplifying the Creation of Structured Editors for Code and Data." ACM Symposium on User Interface Software and Technology, UIST'05, October 23-26, 2005, Seattle, WA. pp. 3-12. pdf

(Additional Readings listed on the GoogleDocs for this topic)

(Brad may be away)

27 Thurs,
April 21

9.1 End-User Software Engineering in General
Presented by Vishal Dwivedi

PowerPoint Slides for Lecture 27

Required Readings:

  • Margaret Burnett, "What Is End-User Software Engineering and Why Does It Matter?". IS-EUD'09 invited paper. pdf

(Additional Readings listed on the GoogleDocs for this topic)

28 Tues,
April 26

8.2 Reporting and triaging bugs
presented by YoungSeok Yoon

PowerPoint Slides for Lecture 28

Required Readings:

  • Philip J. Guo, Thomas Zimmermann, Nachiappan Nagappan, Brendan Murphy. "Characterizing and Predicting Which Bugs Get Fixed: An Empirical Study of Microsoft Windows." In Proceedings of the 32th International Conference on Software Engineering (ICSE 2010), Cape Town, South Africa, May 2010. pdf

(Additional Readings listed on the GoogleDocs for this topic)

29 Thurs,
April 28

Groups Present Their Lab study comparing two versions

Spring 2011 Semester
Semester: (M-14.5, T-15, W-15, Th-14, F-13) Total=71.5
Date Day
January 10 M Semester & Mini-3 Classes Begin
January 17 M Martin Luther King Day;  No Classes after 12:30 p.m. (all colleges, all courses; including evening classes)
January 21 F Semester Course Add Deadline without Dean's Permission
January 21 F Semester Course Audit Grade Option Deadline
March 4 F Mid-Semester Break;  No Classes
March 7 M Mid-Semester Grades Due by 9 p.m.
March 7-11 M-F Spring Break;  No Classes
March 28 M Semester Course Drop and Pass/Fail Grade Option Deadline;  Assign Withdrawal Grade for Course Dropping After This Date
April 14 Th No Classes (except Tepper/Heinz)
Apr. 15-16 F-Sa Spring Carnival; No Classes (except Tepper/Heinz)
April 18-22 M-F Fall 2011 Registration Week
Apr. 18-May 10 M-T Semester Faculty Course Evaluations
April 29 F Semester Last Day of Classes
April 29 F Semester Course Drop Deadline to Receive a Withdrawal Grade
May 12 Th Final Grades for graduating students due by 6 p.m.
May 15 Su Commencement
May 17 T Final Grades for non-graduating students due by 4 p.m.