As the child delights in his mud pie, so the
adult enjoys building things, especially things of his own design. I
think this delight must be an image of God's delight in making
things, a delight shown in the distinctness and newness of each leaf
and each snowflake. — F.P.
Brooks, The Mythical Man-Month, 1975
Work through the guide materials looking for answers to the given
questions as you go. Rather than reading the full referenced article,
you can generally focus on the portions that address the questions posed
in the guide.
-
Software Engineering
-
Software
engineering
— Focus on the main introduction, the introduction
to the “Profession” section and
“Related fields”.
- What is software engineering, and how does it
compare with traditional engineering and with
computer science?
- Is software engineering a professional discipline,
that is, are there professional certifications that
one must acquire before being licensed to develop
software?
-
Software Project Management
-
Peopleware:
Productive Projects and Teams, T. DeMarco &
T. Lister — Read the introduction to Part I,
“Managing the Human Resource” and Chapter 1.
- In what ways are software developers similar to and
dissimilar from modular components?
- In what ways are software projects challenging in
terms of sociological issues?
-
Brooks’s
Law
- Know what Brooks’s Law is and how it applies
to software development.
-
The Big Five
Personality Test
- Know the five personality traits.
- Take the test and save your result for the lab
exercises. It’s a free test, but you'll need
to either create an account or record the results
(i.e., the five trait values). In the lab,
you’ll submit using this form (or you can just
submit them now):
CS 262 -
Personality Traits.
-
Constructive and
Destructive Group Behaviors:
- Consider which strengths and weaknesses you bring to
the group.
- How can you accentuate your positive impact on the
group and eliminate your negative impact?
- Is conflict acceptable or even desirable on teams?
Consider this video from the Harvard Business Review
discussing this issue: Get Comfortable
with Team Conflict (3 minutes).
-
Read this article on the implications of technological change:
“Five Things We Need
to Know About Technological Change”, focusing on
the first of his ideas.
- Briefly name Postman’s five ideas.
- Describe his first idea and explain whether or not you agree
with him.
We’ll be revisiting this article throughout the semester.
Focus, here, on his first idea.
-
Technology Stack — Review the following basic technologies.
If you’re new to JavaScript and HTML/CSS, you’ll
have a change to dig into them more deeply as the semester goes
on. For now, just be sure to work carefully through the
installation procedure and the materials for Expo &
ReactNative.
-
JavaScript —
You’ll find references to these technologies on
the main MDN JavaScript page or in the “JavaScript
Guide”. Be able to explain and implement:
- the basic data types, variables, and control
structures (see “JavaScript
language overview”
as needed).
- Functions as first-class objects,
anonymous functions and the arrow
notation (see the “Functions”
article on these latter subjects).
- Modules (see “JavaScript
Guide”→“JavaScript
modules”, in particular “Default
exports versus named exports”).
- Destructuring of object arguments (see Destructuring
assignment, in particular the section on
“Unpacking fields from objects passed as
function parameter”).
- Promises (see “JavaScript
Guide”→“Using
promises”, focussing on the basic
concept, not the full details).
- Closures (see “Closures”,
focusing on the basic concept, not the full
details).
See the JavaScript Guide for
explanations and the
JavaScript Reference
for details.
-
HTML/CSS — React Native abstracts away from these
basic web technologies but it‘s still useful to
understand the basics.
-
Introduction
HTML
— We will mostly be working with React
Native’s JSX, but make sure that you’re
familiar with HTML tags (see “Getting
started with HTML”).
-
CSS first steps
— Understand the distinction between the roles
of HTML and CSS (see “What is CSS?”) and
how CSS is used to add style to HTML elements (see
“Getting started with CSS?”).
-
Expo / ReactNative — To prepare for the first
lab, review the material in the Expo Get started
tutorial
(“Introduction”–“Start
developing”).
- The lab machines are pre-configured to
support this course, but we suggest that you
configure your own machine as shown here. It’s
best if you have either an Android or iOS device,
but you can also use an emulator. You can use any
Integrated Development Environment (IDE) but the lab
supports VSCode (see the policies page for
installation details).
You do not submit the answers to guide questions, but they may serve
as the basis for class discussion or quiz/exam questions.