SlideShare a Scribd company logo
Somya Jain
Assistant Professor
CSE/IT, JIIT-Noida 62
Six main chapters
1. Introduction
2. Problems with current and traditional teaching
approaches
3. Different trends to teaching software
engineering
4. Key issues
5. Curriculum Design and Delivery
6. Different Approaches to teaching software
engineering
Software Engineering
 Software Engineering is defined as the “application of
a systematic, disciplined, quantifiable ap-proach to the
development, operation and maintenance of software”
(Petkovic, Thompson, & Todtenhoefer, 2006, p. 294).
The need to teach software engineering in colleges has
been identi-fied for decades.
Problems :
Nurkkala & Brandle (2011) summarize the problems
 Short duration – single semester, or two-semester, courses impose an artificial time
constraint .
 High turnover – new students each semester means the talent pool remains shallow
and student skills are not developing based on previous experience
 Low complexity – by necessity given time constraints and skill sets
 In terms of the delivery medium, the educator can deliver the message via the “board-
and- talk” method
Jordanian Universities SE Analysis
 There are great inconsistencies among the SE courses taught at the different
universities.
 Most of the learning is theoretical and there is no incorporation of real projects or case
Studies from the Jordanian or global software market.
Different trends to teaching software
engineering
 For many years since early 1970’s, the “waterfall model” life-cycle
was considered the most successful for a structured approach to
software development. Popular textbooks espoused its techniques
and students were taught its methods.
 Subsequently, focus was placed on more incremental approaches
such as spiral development (Clinton, 1998) and rapid prototyping
(Boehm, 2006).
 More recently, techniques such as extreme programming (LeJeune,
2006), agile programming (Lu & DeClue, 2011), and software
performance in programming (Dugan, 2004) have been incorporated
in the educational experience.
 Some universities have courses which focus on programming
techniques versus software engineering processes and team work
(Petkovic et al., 2006).
 Callele et al., (2006) recommend a “stealth approach” of teaching
underlying software engineering principles, such as requirements
engineering, early in the students education without labeling it as
software engineering.
 Razmov & Anderson (2006) present a more overt approach to
creating a positive atmosphere by incorporating innovative
technology, such as tablet PC’s, in the classroom to mo-tivate
students.
 Offutt(2013) mentioned that engineering education must focus on
multiple quality attributes and mentioned that the following subject
should be in the core courses in study plan: usability, testing,
security, design modelling, project management, quality control,
standards, architecture, and so on.
 Perez and Alonso (2003) Proposed a SE curriculum composed of
two levels, the first level provides the students with the basic
knowledge of SE that may help students to start developing
software, in the second level the students got the knowledge on the
development stage such as software architecture, reengineering or
components
Key Issue
Computer Science Curricula 2013, Curriculum Guidelines for Undergraduate Degree Programs in
Computer Science, The Joint Task Force on Computing Curricula Association for Computing
Machinery (ACM) IEEE Computer Society
For example, specialized systems include:
• Real time systems
• Client-server systems
• Distributed systems
• Games
Domain specific software (e.g., scientific computing or business
applications)
Issues raised by each of these specialized systems demand
specific treatments in each phase of software engineering so
that there is no software crisis.
Key Issue
Stiller, E., & LeBlanc, C. (2002). Effective software engineering pedagogy. Journal of Computing
Sciences in Colleges, 17(6), 124-134.
 Stiller and LeBlanc (2002) suggest that the complex and
challenging nature of software engineering make the
effectiveness of such courses difficult and outline six steps to
convince students of the importance of effective software
engineering approaches: make it real, make it fun, make it
critical, make it accessible, make it successful, and speak with a
clear consistent voice in outlining strategies for students.
They suggest that it is the responsibility of the faculty to sell
the students on the value of software engineering by
convincing them that it is not a boring subject.
Curriculum Design and Delivery
Lesson plan
consists of
P. Desai, G.H. Joshi, Activity Based Teaching Learning in Software
Engineering – An Experience, IEEE International Conference on Engineering Education:
Innovative Practices and Future Trends, 2012
Courses
Computer Science Curricula 2013, Curriculum Guidelines for Undergraduate Degree Programs in
Computer Science, The Joint Task Force on Computing Curricula Association for Computing
Machinery (ACM) IEEE Computer Society
Learning Outcomes :
Example(Software Requirement)
1. List the key components of a use case or similar description of
some behavior that is required for a system.
2. Describe how the requirements engineering process supports the
elicitation and validation of behavioral requirements.
3. Interpret a given requirements model for a simple software system.
4. Describe the fundamental challenges of and common techniques
used for requirements elicitation.
5. List the key components of a data model (e.g., class diagrams or
ER diagrams).
6. Identify both functional and non-functional requirements in a given
requirements specification for a software system.
7. Conduct a review of a set of software requirements to determine
the quality of the requirements with respect to the characteristics of
good requirements
Analyzing the percentages of SE courses to non SE courses at
each SE department at the Jordanian Universities as well as a
sample of UK and USA universities.
S. Hanna, H. Jaber, F. Jaber, T. Shalaby, A. Almasalmeh,” Enhancing the Software
Engineering Curriculums: A Case Study of the Jordanian Universities”, 978-1-4799-
4970- IEEE,2014
 The Average percentages of the core SE course in the SE
departments are almost similar among Jordanian and UK
Universities which is about 34%, however the USA universities has a
higher percentages of about 50% of the courses.
 The Average percentages of the CS course in the SE departments
are almost similar among Jordanian and USA Universities which is
about 30%, however the UK universities has a higher percentages of
about 56% of the courses.
 There is over emphasis of the non Computers relates course in the
Jordanian Universities; 33.5% of courses comparing to only 21% and
9% in USA and UK Universities respectively.
Different Approaches to teaching
software engineering
1. Activity Based Teaching Learning in Software
Engineering
 The theory course on
Software Engineering was
redesigned by tightly coupling
a Mini project course with it.
Different activities are
designed along with Class
room teaching to make
Software Engineering as
joyful course for the students.
P. Desai, G.H. Joshi, Activity Based Teaching Learning in Software Engineering – An Experience, IEEE International Conference
on Engineering Education: Innovative Practices and Future Trends, 2012
Results:
The feedback is taken for the class strength of 140 students. This curriculum
is successfully implemented for consecutive years.
 The approach followed helped to improve their performance in
Continuous Internal Exams (CIE) and Semester End Exams (SEE)
both in theory and mini project course, 80% of the students have
got marks above 50. Performance in SEE is shown in Fig. This
indicate that students passing percentage in Software Engineering
theory is 96% and in mini projects results is 99% which is better
compared to previous year results.
2. Project based Approach
 A common approach to providing this type of experience to students
is to assign projects to small teams of students to complete during a
one-semester SE class.
 Project-based approaches are commonly used, but these
approaches have the weakness of creating an artificial "one man
shop" in which all aspects of the project are designed by one or a
small group of students to work on a single project throughout the
semester .
 A weakness of the "one project" design is that there is little or no
requirement to communicate technical details of the project to
another person or group.
 This "one man team“ structure does not accurately reflect the "real
world" of software development In many software development
companies as different groups are tasked with developing
requirements, selecting, installing, and maintaining hardware,
database management, overall system design, testing,
documentation, and support.
AN INNOVATIVE PROJECT STRUCTURE
FOR TEACHING SOFTWARE ENGINEERING
 They present a project structure that provides students the opportunity
to engage in all aspects of the software development life cycle while
also requiring that they produce clear documentation of their outputs at
each stage and communicate effectively with other teams who are
working on the same project.
 Hawker [1] identified a similar need for a SE project design that more
closely replicates the experience of working on a "real world" software
project. His approach was also based on the idea of having students
fulfill different roles within different projects at the same time.
T. Rishel, “An innovative project structure for teaching software engineering”, CCSC,
Southeastern Conference, University of Southern Mississippi Gulf Coast, 2012
Project Design:
 The basic structure of the project is a N x N x N matrix involving N
applications, N groups of students, and N tasks in the software
development process. For the structure to work as designed, the
number of projects, number of groups, and number of tasks all need to
be equal.
 Other changes to the course included :
How projects were selected : brainstorming session
who acted the role of “customer : The group that developed the
requirements document was also designated as the "customer" for the
application throughout the project lifecycle, so if there was ever a
question of general design or implementation of a feature the "customer"
group served as a resource to resolve the question.)
Cont..
The SE tasks were organized into a sequential order following a
general design framework. The order used was:
1. Requirements Data
2. Design/Architecture
3. Classes/Component
4. User Interface
5. Test Plan
Software Engineering Education and Teaching
Benefits:
 It required all groups to complete all phases of a SE project.
 The proposed project structure motivated students to do their best
work as It is required each group to document their work not only for
evaluation by the instructor, but to actually pass their output to their
peers in the class.
 The peer-centric design of this project structure also emulates
working conditions in the software development industry. How
software design operates in the real world and gave the students a
realistic experience of interacting with others throughout the SE
process.
 Promotes "best-practices" within the class, encourage learning and
using proper terminology, and motivate students to seek out
documentation techniques that encourage clear and concise
communication of technical details of a project.
 It enhance the teamwork performance by Consider and adopt
suggestions from others, providing help and ask to other team
members and Completing assignments on time.
Assessing Teamwork Skills:
 Independent observation
 Evaluating the evidence of individual team member contributions
 Conduct peer reviews
Peer Evaluation Form
R. W. Lingard, “Teaching and Assessing Teamwork Skills in Engineering and Computer
Science” , VOLUME 8 - NUMBER 1, ISSN: 1690-4524, California State University, Northridge,
2010
3. Teaching using Open Source Development
Tools
 Regardless of the specific pedagogical approach taken, many software
engineering educators have noted the importance of teaching students
the use of tools in software development, both to familiarize students
with current industry practices as well as to aid their own development
effort.
Some offerings use existing development tools such as:
• project planning software
• Integrated Development Environments (IDE’s)
• Configuration management tools.
• UML Modeling Tools
• Testing Tools
• Personal Assistant for Software Engineers (PASE) for project and
metric tracking.
• Facebook and Google Docs, to promote team communication and
collabo-ation
S. Teel, D. Schweitzer, S. Fulton , “Teaching Undergraduate Software Engineering Using Open Source
Development Tools ”, vol. 9,2012, United States Air Force Academy, Colorado, USA
 Wiki Tab to create Wiki pages for their projects and use Google
Project Hosting Wiki feature to document their project. Wiki based
web-tools are popular for creating and sharing project documents
enabling collaboration and team-work. All the members of the
project team had permissions to add, modify and delete their
respective project related documents and were helpful in knowledge
management and project communication.
Readmine:
It is an open source which provides both Project Management and Project
Communication capabilities for all student project teams.
 Multiple projects support
 Each project had the following built-in features: Wiki, News,
Document/Files, Forums, Issue tracking (requirements, bugs, tasks,
and enhancements) with associated scheduling, versioning, time-
tracking, calendar, and Gantt charts,Feeds & email notifications.
 Instructors find that it is much easier to monitor the status of each
project team on a regular basis -- and can provide mentoring to more
teams than previously With a single click.
 A central, web-accessible project information repository that provides
an easy-to-update and reference location for all students wherever
they are, whenever they need.
 This approach also helps enforce the need to keep project
documents continually up-to-date -- rather than the common
approach of “wait until later” which can result in extremely out-of-date
documentation.
Who uses Readmine?
Education & Research
 Quality & Usability Lab, Technische Universität Berlin
 Thiagarajar College of Engineering
 Ukrainia University Linux Competence Center at
Chernigiv State Technological University and Students '
Team work site of CS department
 Michigan State University, MSU Hydrogeology Lab
Companies and others
 alaTest, Product Reviews
 Applidium, iPad and iPhone application development
 Puppet Labs
Open Source tools which can be
used in Software Engineering labs:
4. Emphasizing Experiences in Teaching
Software Engineering Courses
 Although universities put much effort into preparing students for
software industry, a great portion of employers complain about level
of readiness of university graduates for working in this industry. They
are usually unsatisfied with lack of graduates' knowledge and
expertise in some aspects such as requirement engineering, team
working, testing, and measuring.
 This approach focused on instructing engineering practices and
principles and helping students to perceive their applications and
advantages through properly designed experiments.
 If we think that software is a product that can be engineered, it has to
be developed with the help of scientific hand outs, we have to use
tools in all stages of development and we have to evaluate our final
and intermediate products according to some well-defined standards.
S. Hosseinabadi, Z. Aghakasiri, A. Sadeghi, P. Delfani, M. Ghandehari, “Emphasizing
Experiences in Teaching Software Engineering Courses”, 2nd International Conference on
Education Technology and Computer (ICETC), IEEE, 2010
5. The Company Approach to Software
Engineering Project Courses
 Teaching larger software engineering project courses at
the end of a computing curriculum is a way for students to
learn some aspects of real-world jobs in industry. Such
courses, often referred to as capstone courses, are
effective for learning how to apply the skills they have
acquired in, for example, design, test, and configuration
management. However, these courses are typically
performed in small team.
 The company approach describes the general ideas and
concepts in the form of a course template, i.e., a generic
description from which a specific software engineering
course can be designed.
D. Broman, K. Sandah, M. Baker, “The Company Approach to Software Engineering Project
Courses”, ACCEPTED TO IEEE TRANSACTIONS ON EDUCATION, VOLUME 55, ISSUE 4, 2012,IEEE
Teaching/learning activities of the methodology:
1. Role selection
2. Company meetings
3. Requirements elicitation
4. Preliminary study and business meetings
5. Iteration planning and reviews
6. Time reporting and project planning
7. Transformation of organizational structure
8. Retrospectives and process improvements
9. Release planning and expo
10. Self reflection and experience documentation
Software Engineering Education and Teaching
Assessing and grading project-based
courses
 For the current course (2011) a new concept is being tested where
students also write individual reports during the project. These reports
include:
(1) what the student claims he/she has contributed with in the project, and
(2) what are the most important things that he/she learned during the
project.
 A particular component of the company approach assumed to help
with the individual assessment is the individual time budgets and time
reporting. The key idea of using constrained time budgets is to
achieve the learning outcome that student realize that resources are
limited and therefore prioritization is necessary.
Software Engineering Education and Teaching
6. Studio-Based Instruction Model
A.Sureka, M. Gupta, D. Sarkar, V. Chaudhary, “A Case-Study on Teaching Undergraduate-
Level
Software Engineering Course Using Inverted-Classroom, Large-Group, Real-Client and
Studio-Based Instruction Model”
 Software Studio is a studio-based learning (SBL) curriculum
designed to train students as professional software engineers.
 Traditional software engineering courses remain important, but suffer
significant gaps in preparing students for professional engagement.
 The seating arrangement was different than the lecture-based model
and is motivated by studio-based learning model applied in
architecture schools.
Survey result:
A.Sureka, M. Gupta, D. Sarkar, V. Chaudhary, “A Case-Study on Teaching Undergraduate-Level Software
Engineering Course Using Inverted-Classroom, Large-Group, Real-Client and Studio-Based Instruction Model”
References
1. ACM, IEEE. (2008). Computer science curriculum 2008, An interim revision of CS 2001. Retrieved
March 14, 2012 from http://www.acm.org/education/curricula/ComputerScience2008.pdf
2. A.Sureka, M. Gupta, D. Sarkar, V. Chaudhary, “A Case-Study on Teaching Undergraduate-Level
Software Engineering Course Using Inverted-Classroom, Large-Group, Real-Client and Studio-
Based Instruction Model”
3. Callele, D., & Makaroff, D. (2006). Teaching requirements engineering to an unsuspecting
audience. ACM SIGCSE Bulletin, 38(1), 433-437.
4. Claypool, K., & Claypool, M. (2005). Teaching software engineering through game design.
Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer
science educa-tion (ITiCSE '05), 123-127.
5. Clinton J. (1998). Tight spiral projects for communicating software engineering concepts.
Proceedings of the 3rd Australasian conference on Computer science education (ACSE '98), 136-
144.
6. Computer Science Curricula 2013, Curriculum Guidelines for Undergraduate Degree Programs in
Computer Science, The Joint Task Force on Computing Curricula Association for Computing
Machinery (ACM) IEEE Computer Society
7. C. Wohlin, B. Regnell, "Strategies for industrial relevance in software engineering education", The
Journal of Systems and Software, vol. 49, 1999,pp. 125-134.
8. D. Broman, K. Sandah, M. Baker, “The Company Approach to Software Engineering Project
Courses”, ACCEPTED TO IEEE TRANSACTIONS ON EDUCATION, VOLUME 55, ISSUE 4,
2012,IEEE
9. Lingard, R. and Berry, E., “Improving Team Performance in Software Engineering”, Selected Papers from the 11th
International Conference on College Teaching and Learning, Chambers, C. (ed.), Florida Community College at
Jacksonville, 2000.
10. Lu, B., & DeClue, T. (2011). Teaching agile methodology in a software engineering capstone course. Jour-nal of
Computing Sciences in Colleges, 26(5), 293-299.
11. P. Desai, G.H. Joshi, Activity Based Teaching Learning in Software Engineering – An Experience, IEEE
International Conference on Engineering Education: Innovative Practices and Future Trends, 2012
12. Petkovic, D., Thompson, G., & Todtenhoefer, R. (2006). Teaching practical software engineering and global
software engineering: evaluation and comparison. ACM SIGCSE Bulletin, 38(3), 294-298.
13. Razmov, V., & Anderson, R. (2006). Pedagogical techniques supported by the use of student devices in teaching
software engineering. ACM SIGCSE Bulletin, 38(1) 344-348.
14. R. Conn, "Developing software engineers at the C-BOJ software factory", IEEE Software, vol. 19,2002, pp. 25 -
29.
15. R. W. Lingard, “Teaching and Assessing Teamwork Skills in Engineering and Computer Science” , VOLUME 8 -
NUMBER 1, ISSN: 1690-4524, California State University, Northridge, 2010
16. S. Mirian-Hosseinabadi, Z .Aghakasiri, A. Sadeghi, P. Delfani, M. Ghandehari, “Emphasizing Experiences in
Software engineering Courses”, International Conference on Education Technology and Computer (ICETC),
IEEE, 978-1-4244-6370-11.
17. T. Rishel, “An innovative project structure for teaching software engineering”, CCSC, Southeastern Conference,
University of Southern Mississippi Gulf Coast, 2012

More Related Content

PDF
Iccie2012 siti rosminah
PDF
A comparison between evaluation of
PDF
A Learning Setting Based on Competitions for Agile Software Engineering
PDF
10.1.1.124.4940
PDF
CRITERION BASED AUTOMATIC GENERATION OF QUESTION PAPER
PDF
Unifying an Introduction to Artificial Intelligence Course ...
PDF
Directional-based Cellular e-Commerce: Undergraduate Systems Engineering Caps...
PPT
Texas S Ta R Chart
Iccie2012 siti rosminah
A comparison between evaluation of
A Learning Setting Based on Competitions for Agile Software Engineering
10.1.1.124.4940
CRITERION BASED AUTOMATIC GENERATION OF QUESTION PAPER
Unifying an Introduction to Artificial Intelligence Course ...
Directional-based Cellular e-Commerce: Undergraduate Systems Engineering Caps...
Texas S Ta R Chart

What's hot (17)

PDF
Www whidbey com_frodo_isd_htm
PDF
THE IMPACT OF USING VISUAL PROGRAMMING ENVIRONMENT TOWARDS COLLEGE STUDENTS’ ...
PDF
Beyond the technical barriers oral communication barriers of engineering stu...
PDF
Enhancing quality in e-Learning by knowledge-based IT support
PDF
Students’ Performance and Satisfaction with the Cisco Academy Networking Pr...
PDF
Secured cloud support for global software
PPTX
B tech cse syllabus - MITAOE
PDF
E-Learning Readiness Assessment Tool for Philippine Higher Education Institut...
PDF
Adaboost-multilayer perceptron to predict the student’s performance in softwa...
PDF
P2004079admin wei1
PDF
Determining the core part of software development curriculum applying associa...
PDF
IRJET- Impact of Audio-Visual Teaching in Relation to Academic Performance of...
PDF
IRJET- Placement Recommender and Evaluator
PDF
iBaTs: Interactive Bash Shell Adaptive Tutoring System
PDF
Vilnius pres dianne lalancette
PPT
Ed 633 persuasive arguement presentation
PDF
E-learning's contribution to workforce development
Www whidbey com_frodo_isd_htm
THE IMPACT OF USING VISUAL PROGRAMMING ENVIRONMENT TOWARDS COLLEGE STUDENTS’ ...
Beyond the technical barriers oral communication barriers of engineering stu...
Enhancing quality in e-Learning by knowledge-based IT support
Students’ Performance and Satisfaction with the Cisco Academy Networking Pr...
Secured cloud support for global software
B tech cse syllabus - MITAOE
E-Learning Readiness Assessment Tool for Philippine Higher Education Institut...
Adaboost-multilayer perceptron to predict the student’s performance in softwa...
P2004079admin wei1
Determining the core part of software development curriculum applying associa...
IRJET- Impact of Audio-Visual Teaching in Relation to Academic Performance of...
IRJET- Placement Recommender and Evaluator
iBaTs: Interactive Bash Shell Adaptive Tutoring System
Vilnius pres dianne lalancette
Ed 633 persuasive arguement presentation
E-learning's contribution to workforce development
Ad

Viewers also liked (13)

PPTX
Online recruitment system
PPTX
Online Recruitment
PDF
E recruitment system
PDF
Online examination system
PPT
E Recruitments
PPT
Online Recruitment Portal
PDF
Online Bus ticket reservation
DOCX
SRS for online examination system
PDF
Employee Management System UML Diagrams Use Case Diagram, Activity Diagram, S...
PDF
Employee Recruitment System srs
PPSX
Employee Management System
PPT
Methods, approaches and techniques of teaching english
Online recruitment system
Online Recruitment
E recruitment system
Online examination system
E Recruitments
Online Recruitment Portal
Online Bus ticket reservation
SRS for online examination system
Employee Management System UML Diagrams Use Case Diagram, Activity Diagram, S...
Employee Recruitment System srs
Employee Management System
Methods, approaches and techniques of teaching english
Ad

Similar to Software Engineering Education and Teaching (20)

PDF
CS0: A Project Based, Active Learning Course
PDF
NEED FOR A SOFT DIMENSION
PDF
PDF
A Systematic Literature Review Of Requirements Engineering Education
PPT
Prin itppt k_texler_v2_062609
PDF
Cg31350353
PDF
A Practical Approach Of Teaching Software Engineering
PDF
Applicability of Extreme Programming In Educational Environment
PDF
Student perceptions and attitudes towards the software factory as a learning ...
PDF
software engineering
PDF
Plan curricular Sistemas de información.pdf
PDF
A Domain Engineering For Interactive Learning Modules
DOCX
DBMS LAB MANUAL RECORD BOOK TO BE USED BY BTECH STUDENTS
PDF
Development of Indonesian National Qualification Framework-Based teaching mod...
DOCX
Final project program evaluation module 8
DOCX
Project Management Courses in IS Graduate Programs What is Being .docx
PDF
Virtual Flipped Classroom
PPTX
CHAPTER 6 - INNOVATIVE TECHNOLOGIES IN ASSESSMENT (1).pptx
PDF
MOVING FROM WATERFALL TO AGILE PROCESS IN SOFTWARE ENGINEERING CAPSTONE PROJE...
PDF
Case Study Based Software Engineering Project Development: State of Art
CS0: A Project Based, Active Learning Course
NEED FOR A SOFT DIMENSION
A Systematic Literature Review Of Requirements Engineering Education
Prin itppt k_texler_v2_062609
Cg31350353
A Practical Approach Of Teaching Software Engineering
Applicability of Extreme Programming In Educational Environment
Student perceptions and attitudes towards the software factory as a learning ...
software engineering
Plan curricular Sistemas de información.pdf
A Domain Engineering For Interactive Learning Modules
DBMS LAB MANUAL RECORD BOOK TO BE USED BY BTECH STUDENTS
Development of Indonesian National Qualification Framework-Based teaching mod...
Final project program evaluation module 8
Project Management Courses in IS Graduate Programs What is Being .docx
Virtual Flipped Classroom
CHAPTER 6 - INNOVATIVE TECHNOLOGIES IN ASSESSMENT (1).pptx
MOVING FROM WATERFALL TO AGILE PROCESS IN SOFTWARE ENGINEERING CAPSTONE PROJE...
Case Study Based Software Engineering Project Development: State of Art

Recently uploaded (20)

PPT
Total quality management ppt for engineering students
PDF
737-MAX_SRG.pdf student reference guides
PDF
III.4.1.2_The_Space_Environment.p pdffdf
PPTX
"Array and Linked List in Data Structures with Types, Operations, Implementat...
PPTX
AUTOMOTIVE ENGINE MANAGEMENT (MECHATRONICS).pptx
PDF
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
PPTX
Software Engineering and software moduleing
PDF
Design Guidelines and solutions for Plastics parts
PDF
distributed database system" (DDBS) is often used to refer to both the distri...
PDF
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
PPTX
Current and future trends in Computer Vision.pptx
PPTX
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
PDF
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
PDF
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
PDF
PREDICTION OF DIABETES FROM ELECTRONIC HEALTH RECORDS
PDF
Human-AI Collaboration: Balancing Agentic AI and Autonomy in Hybrid Systems
PPTX
Artificial Intelligence
PDF
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
PDF
Abrasive, erosive and cavitation wear.pdf
PDF
Categorization of Factors Affecting Classification Algorithms Selection
Total quality management ppt for engineering students
737-MAX_SRG.pdf student reference guides
III.4.1.2_The_Space_Environment.p pdffdf
"Array and Linked List in Data Structures with Types, Operations, Implementat...
AUTOMOTIVE ENGINE MANAGEMENT (MECHATRONICS).pptx
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
Software Engineering and software moduleing
Design Guidelines and solutions for Plastics parts
distributed database system" (DDBS) is often used to refer to both the distri...
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
Current and future trends in Computer Vision.pptx
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
PREDICTION OF DIABETES FROM ELECTRONIC HEALTH RECORDS
Human-AI Collaboration: Balancing Agentic AI and Autonomy in Hybrid Systems
Artificial Intelligence
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
Abrasive, erosive and cavitation wear.pdf
Categorization of Factors Affecting Classification Algorithms Selection

Software Engineering Education and Teaching

  • 2. Six main chapters 1. Introduction 2. Problems with current and traditional teaching approaches 3. Different trends to teaching software engineering 4. Key issues 5. Curriculum Design and Delivery 6. Different Approaches to teaching software engineering
  • 3. Software Engineering  Software Engineering is defined as the “application of a systematic, disciplined, quantifiable ap-proach to the development, operation and maintenance of software” (Petkovic, Thompson, & Todtenhoefer, 2006, p. 294). The need to teach software engineering in colleges has been identi-fied for decades.
  • 4. Problems : Nurkkala & Brandle (2011) summarize the problems  Short duration – single semester, or two-semester, courses impose an artificial time constraint .  High turnover – new students each semester means the talent pool remains shallow and student skills are not developing based on previous experience  Low complexity – by necessity given time constraints and skill sets  In terms of the delivery medium, the educator can deliver the message via the “board- and- talk” method Jordanian Universities SE Analysis  There are great inconsistencies among the SE courses taught at the different universities.  Most of the learning is theoretical and there is no incorporation of real projects or case Studies from the Jordanian or global software market.
  • 5. Different trends to teaching software engineering
  • 6.  For many years since early 1970’s, the “waterfall model” life-cycle was considered the most successful for a structured approach to software development. Popular textbooks espoused its techniques and students were taught its methods.  Subsequently, focus was placed on more incremental approaches such as spiral development (Clinton, 1998) and rapid prototyping (Boehm, 2006).  More recently, techniques such as extreme programming (LeJeune, 2006), agile programming (Lu & DeClue, 2011), and software performance in programming (Dugan, 2004) have been incorporated in the educational experience.  Some universities have courses which focus on programming techniques versus software engineering processes and team work (Petkovic et al., 2006).
  • 7.  Callele et al., (2006) recommend a “stealth approach” of teaching underlying software engineering principles, such as requirements engineering, early in the students education without labeling it as software engineering.  Razmov & Anderson (2006) present a more overt approach to creating a positive atmosphere by incorporating innovative technology, such as tablet PC’s, in the classroom to mo-tivate students.  Offutt(2013) mentioned that engineering education must focus on multiple quality attributes and mentioned that the following subject should be in the core courses in study plan: usability, testing, security, design modelling, project management, quality control, standards, architecture, and so on.  Perez and Alonso (2003) Proposed a SE curriculum composed of two levels, the first level provides the students with the basic knowledge of SE that may help students to start developing software, in the second level the students got the knowledge on the development stage such as software architecture, reengineering or components
  • 8. Key Issue Computer Science Curricula 2013, Curriculum Guidelines for Undergraduate Degree Programs in Computer Science, The Joint Task Force on Computing Curricula Association for Computing Machinery (ACM) IEEE Computer Society
  • 9. For example, specialized systems include: • Real time systems • Client-server systems • Distributed systems • Games Domain specific software (e.g., scientific computing or business applications) Issues raised by each of these specialized systems demand specific treatments in each phase of software engineering so that there is no software crisis.
  • 10. Key Issue Stiller, E., & LeBlanc, C. (2002). Effective software engineering pedagogy. Journal of Computing Sciences in Colleges, 17(6), 124-134.
  • 11.  Stiller and LeBlanc (2002) suggest that the complex and challenging nature of software engineering make the effectiveness of such courses difficult and outline six steps to convince students of the importance of effective software engineering approaches: make it real, make it fun, make it critical, make it accessible, make it successful, and speak with a clear consistent voice in outlining strategies for students. They suggest that it is the responsibility of the faculty to sell the students on the value of software engineering by convincing them that it is not a boring subject.
  • 13. Lesson plan consists of P. Desai, G.H. Joshi, Activity Based Teaching Learning in Software Engineering – An Experience, IEEE International Conference on Engineering Education: Innovative Practices and Future Trends, 2012
  • 14. Courses Computer Science Curricula 2013, Curriculum Guidelines for Undergraduate Degree Programs in Computer Science, The Joint Task Force on Computing Curricula Association for Computing Machinery (ACM) IEEE Computer Society
  • 15. Learning Outcomes : Example(Software Requirement) 1. List the key components of a use case or similar description of some behavior that is required for a system. 2. Describe how the requirements engineering process supports the elicitation and validation of behavioral requirements. 3. Interpret a given requirements model for a simple software system. 4. Describe the fundamental challenges of and common techniques used for requirements elicitation. 5. List the key components of a data model (e.g., class diagrams or ER diagrams). 6. Identify both functional and non-functional requirements in a given requirements specification for a software system. 7. Conduct a review of a set of software requirements to determine the quality of the requirements with respect to the characteristics of good requirements
  • 16. Analyzing the percentages of SE courses to non SE courses at each SE department at the Jordanian Universities as well as a sample of UK and USA universities. S. Hanna, H. Jaber, F. Jaber, T. Shalaby, A. Almasalmeh,” Enhancing the Software Engineering Curriculums: A Case Study of the Jordanian Universities”, 978-1-4799- 4970- IEEE,2014
  • 17.  The Average percentages of the core SE course in the SE departments are almost similar among Jordanian and UK Universities which is about 34%, however the USA universities has a higher percentages of about 50% of the courses.  The Average percentages of the CS course in the SE departments are almost similar among Jordanian and USA Universities which is about 30%, however the UK universities has a higher percentages of about 56% of the courses.  There is over emphasis of the non Computers relates course in the Jordanian Universities; 33.5% of courses comparing to only 21% and 9% in USA and UK Universities respectively.
  • 18. Different Approaches to teaching software engineering
  • 19. 1. Activity Based Teaching Learning in Software Engineering  The theory course on Software Engineering was redesigned by tightly coupling a Mini project course with it. Different activities are designed along with Class room teaching to make Software Engineering as joyful course for the students. P. Desai, G.H. Joshi, Activity Based Teaching Learning in Software Engineering – An Experience, IEEE International Conference on Engineering Education: Innovative Practices and Future Trends, 2012
  • 20. Results: The feedback is taken for the class strength of 140 students. This curriculum is successfully implemented for consecutive years.
  • 21.  The approach followed helped to improve their performance in Continuous Internal Exams (CIE) and Semester End Exams (SEE) both in theory and mini project course, 80% of the students have got marks above 50. Performance in SEE is shown in Fig. This indicate that students passing percentage in Software Engineering theory is 96% and in mini projects results is 99% which is better compared to previous year results.
  • 22. 2. Project based Approach  A common approach to providing this type of experience to students is to assign projects to small teams of students to complete during a one-semester SE class.  Project-based approaches are commonly used, but these approaches have the weakness of creating an artificial "one man shop" in which all aspects of the project are designed by one or a small group of students to work on a single project throughout the semester .  A weakness of the "one project" design is that there is little or no requirement to communicate technical details of the project to another person or group.  This "one man team“ structure does not accurately reflect the "real world" of software development In many software development companies as different groups are tasked with developing requirements, selecting, installing, and maintaining hardware, database management, overall system design, testing, documentation, and support.
  • 23. AN INNOVATIVE PROJECT STRUCTURE FOR TEACHING SOFTWARE ENGINEERING  They present a project structure that provides students the opportunity to engage in all aspects of the software development life cycle while also requiring that they produce clear documentation of their outputs at each stage and communicate effectively with other teams who are working on the same project.  Hawker [1] identified a similar need for a SE project design that more closely replicates the experience of working on a "real world" software project. His approach was also based on the idea of having students fulfill different roles within different projects at the same time. T. Rishel, “An innovative project structure for teaching software engineering”, CCSC, Southeastern Conference, University of Southern Mississippi Gulf Coast, 2012
  • 24. Project Design:  The basic structure of the project is a N x N x N matrix involving N applications, N groups of students, and N tasks in the software development process. For the structure to work as designed, the number of projects, number of groups, and number of tasks all need to be equal.  Other changes to the course included : How projects were selected : brainstorming session who acted the role of “customer : The group that developed the requirements document was also designated as the "customer" for the application throughout the project lifecycle, so if there was ever a question of general design or implementation of a feature the "customer" group served as a resource to resolve the question.)
  • 25. Cont.. The SE tasks were organized into a sequential order following a general design framework. The order used was: 1. Requirements Data 2. Design/Architecture 3. Classes/Component 4. User Interface 5. Test Plan
  • 27. Benefits:  It required all groups to complete all phases of a SE project.  The proposed project structure motivated students to do their best work as It is required each group to document their work not only for evaluation by the instructor, but to actually pass their output to their peers in the class.  The peer-centric design of this project structure also emulates working conditions in the software development industry. How software design operates in the real world and gave the students a realistic experience of interacting with others throughout the SE process.  Promotes "best-practices" within the class, encourage learning and using proper terminology, and motivate students to seek out documentation techniques that encourage clear and concise communication of technical details of a project.  It enhance the teamwork performance by Consider and adopt suggestions from others, providing help and ask to other team members and Completing assignments on time.
  • 28. Assessing Teamwork Skills:  Independent observation  Evaluating the evidence of individual team member contributions  Conduct peer reviews
  • 29. Peer Evaluation Form R. W. Lingard, “Teaching and Assessing Teamwork Skills in Engineering and Computer Science” , VOLUME 8 - NUMBER 1, ISSN: 1690-4524, California State University, Northridge, 2010
  • 30. 3. Teaching using Open Source Development Tools  Regardless of the specific pedagogical approach taken, many software engineering educators have noted the importance of teaching students the use of tools in software development, both to familiarize students with current industry practices as well as to aid their own development effort. Some offerings use existing development tools such as: • project planning software • Integrated Development Environments (IDE’s) • Configuration management tools. • UML Modeling Tools • Testing Tools • Personal Assistant for Software Engineers (PASE) for project and metric tracking. • Facebook and Google Docs, to promote team communication and collabo-ation S. Teel, D. Schweitzer, S. Fulton , “Teaching Undergraduate Software Engineering Using Open Source Development Tools ”, vol. 9,2012, United States Air Force Academy, Colorado, USA
  • 31.  Wiki Tab to create Wiki pages for their projects and use Google Project Hosting Wiki feature to document their project. Wiki based web-tools are popular for creating and sharing project documents enabling collaboration and team-work. All the members of the project team had permissions to add, modify and delete their respective project related documents and were helpful in knowledge management and project communication.
  • 32. Readmine: It is an open source which provides both Project Management and Project Communication capabilities for all student project teams.  Multiple projects support  Each project had the following built-in features: Wiki, News, Document/Files, Forums, Issue tracking (requirements, bugs, tasks, and enhancements) with associated scheduling, versioning, time- tracking, calendar, and Gantt charts,Feeds & email notifications.  Instructors find that it is much easier to monitor the status of each project team on a regular basis -- and can provide mentoring to more teams than previously With a single click.  A central, web-accessible project information repository that provides an easy-to-update and reference location for all students wherever they are, whenever they need.  This approach also helps enforce the need to keep project documents continually up-to-date -- rather than the common approach of “wait until later” which can result in extremely out-of-date documentation.
  • 33. Who uses Readmine? Education & Research  Quality & Usability Lab, Technische Universität Berlin  Thiagarajar College of Engineering  Ukrainia University Linux Competence Center at Chernigiv State Technological University and Students ' Team work site of CS department  Michigan State University, MSU Hydrogeology Lab Companies and others  alaTest, Product Reviews  Applidium, iPad and iPhone application development  Puppet Labs
  • 34. Open Source tools which can be used in Software Engineering labs:
  • 35. 4. Emphasizing Experiences in Teaching Software Engineering Courses  Although universities put much effort into preparing students for software industry, a great portion of employers complain about level of readiness of university graduates for working in this industry. They are usually unsatisfied with lack of graduates' knowledge and expertise in some aspects such as requirement engineering, team working, testing, and measuring.  This approach focused on instructing engineering practices and principles and helping students to perceive their applications and advantages through properly designed experiments.  If we think that software is a product that can be engineered, it has to be developed with the help of scientific hand outs, we have to use tools in all stages of development and we have to evaluate our final and intermediate products according to some well-defined standards. S. Hosseinabadi, Z. Aghakasiri, A. Sadeghi, P. Delfani, M. Ghandehari, “Emphasizing Experiences in Teaching Software Engineering Courses”, 2nd International Conference on Education Technology and Computer (ICETC), IEEE, 2010
  • 36. 5. The Company Approach to Software Engineering Project Courses  Teaching larger software engineering project courses at the end of a computing curriculum is a way for students to learn some aspects of real-world jobs in industry. Such courses, often referred to as capstone courses, are effective for learning how to apply the skills they have acquired in, for example, design, test, and configuration management. However, these courses are typically performed in small team.  The company approach describes the general ideas and concepts in the form of a course template, i.e., a generic description from which a specific software engineering course can be designed. D. Broman, K. Sandah, M. Baker, “The Company Approach to Software Engineering Project Courses”, ACCEPTED TO IEEE TRANSACTIONS ON EDUCATION, VOLUME 55, ISSUE 4, 2012,IEEE
  • 37. Teaching/learning activities of the methodology: 1. Role selection 2. Company meetings 3. Requirements elicitation 4. Preliminary study and business meetings 5. Iteration planning and reviews 6. Time reporting and project planning 7. Transformation of organizational structure 8. Retrospectives and process improvements 9. Release planning and expo 10. Self reflection and experience documentation
  • 39. Assessing and grading project-based courses  For the current course (2011) a new concept is being tested where students also write individual reports during the project. These reports include: (1) what the student claims he/she has contributed with in the project, and (2) what are the most important things that he/she learned during the project.  A particular component of the company approach assumed to help with the individual assessment is the individual time budgets and time reporting. The key idea of using constrained time budgets is to achieve the learning outcome that student realize that resources are limited and therefore prioritization is necessary.
  • 41. 6. Studio-Based Instruction Model A.Sureka, M. Gupta, D. Sarkar, V. Chaudhary, “A Case-Study on Teaching Undergraduate- Level Software Engineering Course Using Inverted-Classroom, Large-Group, Real-Client and Studio-Based Instruction Model”  Software Studio is a studio-based learning (SBL) curriculum designed to train students as professional software engineers.  Traditional software engineering courses remain important, but suffer significant gaps in preparing students for professional engagement.  The seating arrangement was different than the lecture-based model and is motivated by studio-based learning model applied in architecture schools.
  • 42. Survey result: A.Sureka, M. Gupta, D. Sarkar, V. Chaudhary, “A Case-Study on Teaching Undergraduate-Level Software Engineering Course Using Inverted-Classroom, Large-Group, Real-Client and Studio-Based Instruction Model”
  • 43. References 1. ACM, IEEE. (2008). Computer science curriculum 2008, An interim revision of CS 2001. Retrieved March 14, 2012 from http://www.acm.org/education/curricula/ComputerScience2008.pdf 2. A.Sureka, M. Gupta, D. Sarkar, V. Chaudhary, “A Case-Study on Teaching Undergraduate-Level Software Engineering Course Using Inverted-Classroom, Large-Group, Real-Client and Studio- Based Instruction Model” 3. Callele, D., & Makaroff, D. (2006). Teaching requirements engineering to an unsuspecting audience. ACM SIGCSE Bulletin, 38(1), 433-437. 4. Claypool, K., & Claypool, M. (2005). Teaching software engineering through game design. Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science educa-tion (ITiCSE '05), 123-127. 5. Clinton J. (1998). Tight spiral projects for communicating software engineering concepts. Proceedings of the 3rd Australasian conference on Computer science education (ACSE '98), 136- 144. 6. Computer Science Curricula 2013, Curriculum Guidelines for Undergraduate Degree Programs in Computer Science, The Joint Task Force on Computing Curricula Association for Computing Machinery (ACM) IEEE Computer Society 7. C. Wohlin, B. Regnell, "Strategies for industrial relevance in software engineering education", The Journal of Systems and Software, vol. 49, 1999,pp. 125-134. 8. D. Broman, K. Sandah, M. Baker, “The Company Approach to Software Engineering Project Courses”, ACCEPTED TO IEEE TRANSACTIONS ON EDUCATION, VOLUME 55, ISSUE 4, 2012,IEEE
  • 44. 9. Lingard, R. and Berry, E., “Improving Team Performance in Software Engineering”, Selected Papers from the 11th International Conference on College Teaching and Learning, Chambers, C. (ed.), Florida Community College at Jacksonville, 2000. 10. Lu, B., & DeClue, T. (2011). Teaching agile methodology in a software engineering capstone course. Jour-nal of Computing Sciences in Colleges, 26(5), 293-299. 11. P. Desai, G.H. Joshi, Activity Based Teaching Learning in Software Engineering – An Experience, IEEE International Conference on Engineering Education: Innovative Practices and Future Trends, 2012 12. Petkovic, D., Thompson, G., & Todtenhoefer, R. (2006). Teaching practical software engineering and global software engineering: evaluation and comparison. ACM SIGCSE Bulletin, 38(3), 294-298. 13. Razmov, V., & Anderson, R. (2006). Pedagogical techniques supported by the use of student devices in teaching software engineering. ACM SIGCSE Bulletin, 38(1) 344-348. 14. R. Conn, "Developing software engineers at the C-BOJ software factory", IEEE Software, vol. 19,2002, pp. 25 - 29. 15. R. W. Lingard, “Teaching and Assessing Teamwork Skills in Engineering and Computer Science” , VOLUME 8 - NUMBER 1, ISSN: 1690-4524, California State University, Northridge, 2010 16. S. Mirian-Hosseinabadi, Z .Aghakasiri, A. Sadeghi, P. Delfani, M. Ghandehari, “Emphasizing Experiences in Software engineering Courses”, International Conference on Education Technology and Computer (ICETC), IEEE, 978-1-4244-6370-11. 17. T. Rishel, “An innovative project structure for teaching software engineering”, CCSC, Southeastern Conference, University of Southern Mississippi Gulf Coast, 2012