COMP 4081: Software Engineering

Slides:



Advertisements
Similar presentations
What is a CAT?. Introduction COMPUTER ADAPTIVE TEST + performance task.
Advertisements

Assessment of Undergraduate Programs Neeraj Mittal Department of Computer Science The University of Texas at Dallas.
© Copyright CSAB 2013 Future Directions for the Computing Accreditation Criteria Report from CAC and CSAB Joint Criteria Committee Gayle Yaverbaum Barbara.
 A set of objectives or student learning outcomes for a course or a set of courses.  Specifies the set of concepts and skills that the student must.
Guide to the Software Engineering Body of Knowledge Chapter 1 - Introduction.
The Role of Automation in Undergraduate Computer Science Chris Wilcox Colorado State University 3/5/2015.
Dr. Tom WayCSC What is Software Engineering? CSC 4700 Software Engineering Lecture 1.
Software Engineering ‘The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and.
EECE 310 Software Engineering Lecture 0: Course Orientation.
1 General Introduction CPRE 416-Software Evolution and Maintenance-Lecture 1.
Chapter 1: Introduction to Project Management
Leave Your Ego at the Door! CMSC 345 Software Design and Development Spring 2011 Ms. Susan Mitchell.
Lecture 4. Software Engineering Body of Knowledge SWEBOK  Articulating a body of knowledge is an essential step toward developing a profession because.
Welcome Parents! Computer Science Periods 3 &4 Anthony A. Atwood, M.Ed. Computer Science Teacher Valley Center High School Valley Center-Pauma Unified.
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
AED 203 Academic professor/tutorialrank.com For more course Tutorials
AYP Aigner Allen Shoemaker Elementary  Shoemaker did not make AYP because of the following subjects:  Math  Writing.
Soft Skills: Where Do We Teach Them in a 4-Year Environment Kathy Winters University of Tennessee, Chattanooga.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
8th Grade Math Information Discovery Middle School.
Advanced Software Engineering Dr. Cheng
MBA CLASS CONTENT AND TEACHING EFFECTIVENESS
Computer Network Fundamentals CNT4007C
電腦圖學 Computer Graphic with Programming
Course Overview - Database Systems
What is a CAT? What is a CAT?.
CS101 Computer Programming I
Math for Mastery Information
Welcome to 7th Grade Integrated Science
COMP/EECE 7012/8012: Foundations of Software Engineering
COMP/EECE 7012/8012: Foundations of Software Engineering
Welcome to Software Engineering!
For more course tutorials visit
Everything you need to know!
CSc 1302 Principles of Computer Science II
Competency Based Learning and Project Based Learning
System Testing Antares Rocket Test Launch ( HQ) System Testing.
Computer Networks CNT5106C
Unit 1: Science, Technology and Engineering
Lecture 1 What is Software Engineering? CSC 4700 Software Engineering
COMP 7012: Foundations of Software Engineering
Software Requirements

Regents Prep Living Environment.
The Systems Engineering Context
Course Information Mark Stanovich Principles of Operating Systems
Phase 4: Prepare the budget
Mr. Paul Egleston Sun Valley Mathematics Algebra 1B
Math Parent Night September 2016
Notes for helpers Supporting everyone to tell their story
Course Overview - Database Systems
Welcome to COE212: Engineering Programming
EECE 310 Software Engineering
Geo 318 – Introduction to GIS Programming
Academic Advising 101.
Active Learning A Pedagogic Framework for Bringing Active Learning Into Your Classroom Jason Babcock.
Hard Skills vs. Soft Skills
Welcome to the First-Year Experience!
COMP/EECE 7012: Foundations of Software Engineering
Planning and Estimation.
COMP 7012: Foundations of Software Engineering
Welcome to Back to School Night. (please sign in
Software Configuration Management.
Team Based Learning A Pedagogic Framework for Bringing Active Learning Into Your Classroom Jason Babcock.
Welcome to the First-Year Experience!
Curriculum Coordinator: Janet Parcell Mitchell January 2016
Human-Centric Software Engineering
Welcome to the First-Year Experience!
OU BATTLECARD: Oracle WebCenter Training
Presentation transcript:

COMP 4081: Software Engineering Fall 2016 Dr. Scott Fleming, Instructor Hanwen Yu, Teaching Assistant Kazi Zaman, Teaching Assistant http://flic.kr/p/3f1RGT

Questions! What’s an SE project like? What knowledge/skills must SEs master? How will you learn in this course?

Questions! What’s an SE project like? What knowledge/skills must SEs master? How will you learn in this course? Caveat: Every project is an individual

Characteristics of SE Projects Large Scale http://flic.kr/p/sAPm8 Customers http://flic.kr/p/hnrKZ Teams of Developers http://flic.kr/p/83MmEP

What is the measure of a successful software engineering project?

What is the measure of a successful software engineering project? Customer Satisfaction http://flic.kr/p/hnrKZ * OK, effect on society and humanity matters too, but humor me…

What do customers want?

Meets their needs, On time, On budget What do customers want? Software that Meets their needs, On time, and On budget

Unfortunately, satisfying customers is hard… http://flic.kr/p/7pGoCd Have you ever been a dissatisfied customer?

The “Software Crisis” Since the 1960s (More like a depression) (Standish Group) Of 28,000 projects completed in 2000… (Cutter Consortium) 2002 Study: 78% of orgs landed in court

Although stats improving, challenges remain… Recent headlines (Oct 2013–Aug 2014): Tech Problems Plague First Day Of Health Exchange Rollout Health Exchange Tech Problems Point To A Thornier Issue It's Easy To Blame The Canadians For HealthCare.gov Problems Sebelius: Hold Me Accountable For HealthCare.gov Debacle Add Security To The List Of HealthCare.gov Tech Issues Oregon's State Exchange May Be Worse Than HealthCare.gov Could A Tech Giant Build A Better Health Exchange? Maybe Not Official In Charge Of Creating HealthCare.gov Steps Down Giving Up On Its Obamacare Exchange No Cure For Oregon's Ills Oregon Sues Oracle For "Abysmal" Healthcare Website ( ) ( )

Questions! What’s an SE project like? What knowledge/skills must SEs master? How will you learn in this course?

The SWEBOK (pronounced “SWEE-bock”) Software Engineering Body Of Knowledge SWEBOK Guide: http://www.computer.org/web/swebok

So what’s in this SWEBOK anyway? One possible (albeit circular) definition of Software Engineering: Applying SWEBOK to software creation and evolution So what’s in this SWEBOK anyway?

15 Knowledge Areas (KAs) Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Models and Methods Software Quality Software Engineering Professional Practice Software Engineering Economics Computing Foundations Mathematical Foundations Engineering Foundations

We’ll focus on this subset 15 Knowledge Areas (KAs) Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Models and Methods Software Quality Software Engineering Professional Practice Software Engineering Economics Computing Foundations Mathematical Foundations Engineering Foundations We’ll focus on this subset

Questions! What’s an SE project like? What knowledge/skills must SEs master? How will you learn in this course?

Levels of Mastery Which will be our focus? Familiarity Usage Understand what concept means “What do you know about this?” Usage Use or apply concept “What do you know how to do?” Assessment Justify selection of concept vs others “Why would you do that?” Which will be our focus? We use three levels of mastery, defined as: ● Familiarity: The student understands what a concept is or what it means. This level of mastery concerns a basic awareness of a concept as opposed to expecting real facility with its application. It provides an answer to the question “What do you know about this?” ● Usage: The student is able to use or apply a concept in a concrete way. Using a concept may include, for example, appropriately using a specific concept in a program, using a particular proof technique, or performing a particular analysis. It provides an answer to the question “What do you know how to do?” ● Assessment: The student is able to consider a concept from multiple viewpoints and/or justify the selection of a particular approach to solve a problem. This level of mastery implies more than using a concept; it involves the ability to select an appropriate approach from understood alternatives. It provides an answer to the question “Why would you do that?” From the ACM/IEEE Curriculum Guidelines for Undergraduate Degree Programs in Computer Science (2013)

Levels of Mastery This one! Familiarity Usage Assessment Understand what concept means “What do you know about this?” Usage Use or apply concept “What do you know how to do?” Assessment Justify selection of concept vs others “Why would you do that?” This one! From the ACM/IEEE Curriculum Guidelines for Undergraduate Degree Programs in Computer Science (2013)

Practice! Levels of Mastery How do you learn usage? Familiarity Usage Understand what concept means “What do you know about this?” Usage Use or apply concept “What do you know how to do?” Assessment Justify selection of concept vs others “Why would you do that?” How do you learn usage? Practice! From the ACM/IEEE Curriculum Guidelines for Undergraduate Degree Programs in Computer Science (2013)

How You’ll Practice Boot Camp Significant software project Team skills Communication skills Project management

What type of software will you build for the project? Web Apps!

Why web apps? Every bit as dynamic and interactive as native apps Avoid deployment problems Reach people world wide http://flic.kr/p/9DTDXi

What programming language(s)? http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2015 2014 numbers were similar: http://spectrum.ieee.org/static/interactive-the-top-programming-languages (2014)

Most Valuable Skills on Resume (2014)

Course Structure Rails Web App Boot Camp (7 weeks) Team Project Weekly Homework Team Project Initial Planning (2 weeks) Development Iteration 1 (3 weeks) Development Iteration 2 (3 weeks) Pop quizzes throughout Two exams Each project iteration ends with demos

Grading 40% Team Project 36% Exams (18% ea.) 14% Homework and Quizzes Initial Planning 5% Team Milestone 0 Dev. Iteration 1 4% Team Milestone 1 7% Individual Contrib. Dev. Iteration 2 4% Team Milestone 2 7% Individual Contrib. 8% Final Product (team) 5% A&B (individual) 36% Exams (18% ea.) 14% Homework and Quizzes 10% Participation

Policies of Interest No cheating! I use plagiarism detection system! Participate! (or lose participation point) Be here at beginning of class Stay until the end Be engaged in between! Expect seating chart Laptops required in class, but…

http://www.cbc.ca/news/technology/story/2013/08/14/technology-laptop-grades.html

Let’s tour the course web pages and see what’s coming up…