spring 2020 software engineering course introduction march 30, …rjust/courses/2020... · 2020. 3....
TRANSCRIPT
![Page 1: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/1.jpg)
CSE 403Software Engineering
Spring 2020
Course introduction
March 30, 2020
![Page 2: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/2.jpg)
My first thoughts on going completely virtual
1. My planned course is not going to work.
2. Maybe there is an opportunity here.
3. Let’s model a realistic, distributed SW development process.
![Page 3: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/3.jpg)
Today
● Logistics● Brief introduction (my background)● Your background and expectations● What is Software Engineering● Course overview
![Page 4: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/4.jpg)
Logistics: the CSE 403 teamInstructor● René Just● [email protected]
Teaching assistants● Kaushal Mangipudi and Brendan Wallace● [email protected], [email protected]
Please send inquiries to the entire team.
![Page 5: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/5.jpg)
Logistics: meetings
● Lectures: M/W/F 12:30pm – 1:20pm (Zoom)
● Project meetings: Thu 1:30pm – 2:20pm (Zoom by default)
● Team meetings: Tue 1:30pm – 2:20pm (Zoom by default)
No project and team meetings this week.
![Page 6: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/6.jpg)
Logistics: resources
● Course website: https://homes.cs.washington.edu/~rjust/courses/2020Spring/CSE403
● Submission of assignments via Canvas: https://canvas.uw.edu
● Discussions on Slack: https://cse403group.slack.com
![Page 7: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/7.jpg)
My background
![Page 8: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/8.jpg)
My backgroundMy research areas● Software testing and verification● Software debugging● Software security
![Page 9: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/9.jpg)
My backgroundMy research areas● Software testing and verification● Software debugging● Software security
● Empirical software engineering● Data science / Applied ML
![Page 10: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/10.jpg)
My backgroundMy research areas● Software testing and verification● Software debugging● Software security
● Empirical software engineering● Data science / Applied ML
![Page 11: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/11.jpg)
Your background and expectations
10 min introduction (breakout rooms)● Background: What is your SE background?● Goals: What are your career goals (grad school, SW engineer, etc)?● Top-2 expectations: What do you expect from this course?
1. Introduce yourself to your group2. Post a summary of your group discussion on Slack
(Bulleted lists for: backgrounds, goals, and expectations)
![Page 12: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/12.jpg)
What is Software Engineering?
![Page 13: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/13.jpg)
What is Software Engineering?
● Developing in an IDEand software ecosystem?
![Page 14: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/14.jpg)
What is Software Engineering?
● Developing in an IDEand software ecosystem?
● Coding and debugging?
![Page 15: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/15.jpg)
What is Software Engineering?
● Developing in an IDEand software ecosystem?
● Coding and debugging?
● Deploying and runninga software system?
![Page 16: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/16.jpg)
What is Software Engineering?
● Developing in an IDEand software ecosystem?
● Coding and debugging?
● Deploying and runninga software system?
● Empirical evaluations?
![Page 17: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/17.jpg)
What is Software Engineering?
● Developing in an IDEand software ecosystem?
● Coding and debugging?
● Deploying and runninga software system?
● Empirical evaluations?
All of the above -- much more than just writing code!
![Page 18: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/18.jpg)
What is Software Engineering?
More than just writing codeThe complete process of specifying, designing, developing, analyzing, deploying, and maintaining a software system.
● Common Software Engineering tasks include:○ Requirements engineering○ Specification writing and documentation○ Software architecture and design○ Programming Just one out of many important tasks!○ Software testing and debugging○ Maintenance and refactoring
![Page 19: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/19.jpg)
(Development workflow at Microsoft, Big Code summit 2019)
The Role of Software Engineering in Practice
![Page 20: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/20.jpg)
(Development workflow at Microsoft, Big Code summit 2019)
The Role of Software Engineering in Practice
Focus of intro to programming courses.Our goal: go beyond the inner cycle.
![Page 21: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/21.jpg)
The Role of Software Engineering in Research
Experimental infrastructure is software, too!
Example (automated debugging)● 150 configurations, 1000+ benchmarks● 1-85 hours per execution● 200,000+ CPU hours (~23 CPU years)
1 0.34 0.81
2 0.52 0.32
3 0.21 0.53
4 0.81 0.22
... ... ...
Infrastructure
Design space exploration
Software bugs can lead to wrong scientific conclusions.
![Page 22: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/22.jpg)
Why is Software Engineering important?
Software is eating the world!
![Page 23: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/23.jpg)
Why is Software Engineering important?
Software is eating the world!
![Page 24: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/24.jpg)
Why is Software Engineering important?
Software is complex!
● ~15 million lines of code
Let’s say 50 lines per page (0.05 mm)● 300000 pages● 15 m (49 ft)
![Page 25: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/25.jpg)
Summary: Software Engineering
What is Software Engineering?● The complete process of specifying, designing,
developing, analyzing, and maintaining a software system.
Why is it important?● Decomposes a complex engineering problem.● Organizes processes and effort.● Improves software reliability.● Improves developer productivity.
![Page 26: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/26.jpg)
Course overview: the big picture
● Software processes, requirements, and specification○ Different software development processes.○ Precise writing (requirements and specifications).
● Software development○ Decompose a complex problem and build abstractions.○ Improve your coding skills.○ Effectively use version control (Git).
● Software testing and debugging○ Write effective (unit) tests.○ Hands-on experience, using testing and debugging techniques.○ Continuous integration.
● Class project○ Apply all of the above in a group project.
![Page 27: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/27.jpg)
Course overview: grading
Overall grading● 60% Semester-long class project
● 30% In-class exercises and individual assignments
● 10% Participation
No final exam this quarter.
![Page 28: Spring 2020 Software Engineering Course introduction March 30, …rjust/courses/2020... · 2020. 3. 31. · Empirical software engineering Data science / Applied ML. My ... (Development](https://reader036.vdocuments.mx/reader036/viewer/2022071019/5fd2b6b2cc72af228d5dba1c/html5/thumbnails/28.jpg)
Expectations
● Programming experience and familiarity with one programming language (Java, C++, ...).
● Active participation in discussions.
● Teamwork and communication.
● Reflecting on and improving submitted assignments.
You must already know how to program.