1 |
h01 |
CS56 F19 |
Name: | ||||
---|---|---|---|---|
(as it would appear on official course roster) | ||||
Umail address: | @umail.ucsb.edu | section 5pm, 6pm, 7pm |
||
Optional: name you wish to be called if different from name above. | ||||
Optional: name of "homework buddy" (leaving this blank signifies "I worked alone" |
h01: Listening to Early Career Developers
ready? | assigned | due | points |
---|---|---|---|
true | Mon 09/30 05:00PM | Wed 10/02 05:00PM |
Printable PDF You may collaborate on this homework with AT MOST one person, an optional "homework buddy".
MAY ONLY BE TURNED IN IN THE LECTURE/LAB LISTED ABOVE AS THE DUE DATE,
OR IF APPLICABLE, SUBMITTED ON GRADESCOPE. There is NO MAKEUP for missed assignments;
in place of that, we drop the three lowest scores (if you have zeros, those are the three lowest scores.)
Reading Assignment: Please read this paper written by a Michelle Craig, a CS faculty member at the University of Toronto, with Phill Conrad of UCSB, and three UCSB undergraduate students. Then answer the questions that follow.
- Michelle Craig, Phill Conrad, Dylan Lynch, Natasha Lee, and Laura Anthony. 2018. Listening to early career software developers. J. Comput. Sci. Coll. 33, 4 (April 2018), 138-149. https://ucsb-cs56.github.io/f19/hwk/h01/reading.pdf
- (10 pts) Please fill in the information at the top of this homework sheet, including your name and umail address. Put the time your discussion section starts (5pm, 6pm, 7pm) in the space indicated (the one you are registered for—even if you usually attend a different one.) If the other two items apply, please fill them in as well. Please do this every single time you submit homework for this class.
-
(20 pts) The authors found that students that pursue careers in industry find that software development in industry differs from that they encountered in school along six dimensions, as found in Table 2. The authors gave shorthand names to each of these: “what”, “when”, “who”, “why”, “how” and “how big”.
Section 4.1 focuses on the “what” dimension. In your own words (not just repeating back the words of the paper, or repeating the quotations of the study participants), summarize the difference(s) that the early career developers surveyed encountered on this dimension? Keep your answer short enough that it fits in the space provided.
-
The next dimension is “when”.
-
(5 pts) This discussion mentions greenfield development vs. working with legacy code. Briefly explain what these terms mean. (If the difference isn’t clear from the paper, use a web search to explore these terms further.)
-
(5 pts) If your experience is like that of the students in the paper, most of your experience so far may have been with greenfield development. From what you’ve read here, what do you understand to be the additional challenges of working with legacy code vs. greenfield development?
-
-
Section 4.3 discusses “who”. The discussion centers on working in larger teams vs. working alone or in pairs. There are three specific skills that the section mentions are needed. Briefly identify each of these skills and why they are important, according to the study participants:
-
(5 pts) Skill #1: What is it, and why is it important?
-
(5 pts) Skill #2: What is it, and why is it important?
-
(5 pts) Skill #3: What is it, and why is it important?
-
-
(5 pts) Section 4.4 discusses that industry code is typically written for a user need rather than for the purposes of learning. What is the additional skill that is needed in this context, one that previous work has found that students often don’t get much practice with?
-
The section on “How” mentions four things that study participants felt were not covered adequately in their university preparation. What are these four things?
-
(5 pts)
-
(5 pts)
-
(5 pts)
-
(5 pts)
-
-
(20 pts) The final section 4.6 concentrates on the size of the code bases that student work with. Students said that in industry they spent much more times adding features to large existing code bases vs. writing stand-alone programs, and identify several challenges, including:
- “integrating libraries”,
- “reading other peoples’s code and working in other codebases”
- “building new features for an existing system”
- “learning how to refactor”
- learning to follow a style guide
Which of these strikes you as the one you are most motiviated to learn about in this course and explain why.