0% found this document useful (0 votes)
14 views7 pages

Principles, Patterns, Practices, and Projects SSSZ

Uploaded by

barugemada
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views7 pages

Principles, Patterns, Practices, and Projects SSSZ

Uploaded by

barugemada
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/381815288

P4: Principles, Patterns, Practices, and Projects for Effective Software


Engineering Education

Conference Paper · May 2024


DOI: 10.1109/MIPRO60963.2024.10569934

CITATIONS READS

0 25

3 authors, including:

Nicholas Caporusso Maureen Doyle


Northern Kentucky University Northern Kentucky University
75 PUBLICATIONS 585 CITATIONS 49 PUBLICATIONS 388 CITATIONS

SEE PROFILE SEE PROFILE

All content following this page was uploaded by Nicholas Caporusso on 07 August 2024.

The user has requested enhancement of the downloaded file.


P4: Principles, Patterns, Practices, and Projects
for Effective Software Engineering Education
Samuel Sungmin Cho, Nicholas Caporusso, and Maureen Doyle
Northern Kentucky University, Highland Heights, United States
{chos5, doylem3, caporusson1}@nku.edu

Abstract—Software Engineering education involves balanc- the rapidly evolving nature of the software industry often
ing theory and practice to produce industry-ready students outpaces curriculum development, which leads to a sce-
who are not only proficient with various computer science nario where either theoretical concepts and programming
concepts but also understand how to apply them in real-world
scenarios. However, finding an appropriate balance between fundamentals are not always sufficiently covered, or the
the two aspects is not an easy task for educators because of applied part of the material taught in classrooms fails to
the challenges of theory-based teaching and industry demand keep pace with the latest trends, tools, and practices. As a
in terms of applied skills and experience. In this paper, we result, upon graduation, students may find themselves well-
discuss P4, a novel approach to designing software engineer- versed in theoretical knowledge but lacking in practical,
ing courses and programs for computer science and software
engineering students. P4 has been developed and incorporated industry-relevant skills, or vice versa [4].
into the Applied Software Engineering program at Northern Northern Kentucky University (NKU), a regional univer-
Kentucky University. The proposed approach focuses on four sity where more than 50% of faculty time is dedicated to
pillars, that is, principles, patterns, practices, and projects,
which are utilized as a consistent theme in all the courses of
teaching, is uniquely positioned in the Greater Cincinnati
the curriculum. In P4, principles are foundational concepts area and in the Tri-State region (i.e., Kentucky, Indiana,
that students are expected to know and be proficient with. and Ohio), and it serves a population mostly consisting
Subsequently, students are taught patterns, i.e., solutions that of first-generation students. NKU’s CS graduates primarily
can be applied to address specific design or development aspire towards software development roles in the regional
problems. Then, the approach highlights the importance of
learning and using software engineering practices, which,
tech industry. In 2018, the CS department decided to
in turn, enable achieving a repeatable process focused on expand its offering, which already included degrees in
quality improvement. Finally, P4 involves real-world software Computer Science, Data Science, Computer Information
products as project activities. Technology, and Cybersecurity, to make its programs even
more relevant to its students. To this end, it launched the
Keywords—software engineering; education; best practices. BS degree in Applied Software Engineering (ASE), which
was specifically designed to address the local industry’s
growing demand for job-ready graduates [5].
I. I NTRODUCTION Besides the crucial task of integrating theoretical knowl-
Bridging the gap between theory and practice in Com- edge with practical application, the development of the
puter Science education is a well-known and multi-faceted ASE curriculum also involved the challenge of distin-
challenge that has significant implications for both the guishing this program from the existing CS degree in a
industry and academia [1]. This is especially true in way that could be clearly communicated to current and
Software Engineering (SE) education, where it is crucial to prospective students to highlight the pros and cons of each
provide students with a solid understanding of theoretical degree to ensure clarity and informed decision-making.
concepts and programming fundamentals while simultane- At the same time, as a newly established degree, the
ously engaging them in hands-on experiences that equip ASE program presented an ideal opportunity to innovate
them to be professional software engineers prepared for and adopt educational methodologies and new approaches
real-world professional environments. co-developed with both students and industry leaders to
specifically address their needs and expectations [5].
From the industry perspective, employers increasingly
demand graduates who are technically competent and In this paper, we present P4, an approach for software
ready to perform on the job immediately without additional engineering education founded on four core pillars: Princi-
training to bridge the practice gap. Providing students ples, Patterns, Practices, and Projects. This strategy, which
with opportunities for the development of practical skills seeks to establish a progressive path between theoretical
impacts key metrics such as employability, the perceived understanding and practical application, has been incor-
value of the degree, and ultimately enrollment [2] [3]. porated into the design across all the courses within the
ASE program, and it provides instructors with a consistent
Most educational institutions have addressed this need methodology for developing courses and maintaining them
by adopting different strategies, devising new programs, aligned with the mission of the program. Furthermore, the
revising courses, and introducing experiential learning P4 strategy helps integrate the curricular content of the
initiatives such as co-ops and internships. Unfortunately,
CS program, which predominantly addresses theoretical programs. Introducing projects and experiential learning
and foundational aspects of computation and programming is an effective strategy to address the reported lack of
(i.e., principles and patterns), into the ASE program, which practical knowledge. Several universities introduced team
specifically focuses on the practical implementation of projects in their CS or SE courses to teach processes
these principles in the development of software systems utilized in the industry [12]. Incorporating more hands-
(i.e., practices and projects). on projects, internships, and industry-specific case studies
into the curriculum can give students a taste of real-world
II. R ELATED W ORK scenarios. Additionally, involving industry professionals in
curriculum design and guest lectures can help in keep-
Software engineering is a multifaceted discipline, with ing the educational content relevant and up-to-date. The
varying definitions contributing to its understanding. The authors of [13]reported that project-based learning has
IEEE, for instance, describes it as “the application of a several benefits in terms of higher-quality code. Further-
systematic, disciplined, quantifiable approach to the devel- more, research confirmed that team-based projects and
opment, operation, and maintenance of software; that is, collaborative work result in better student satisfaction [14].
the application of engineering to software” [6], thereby To this end, simulated projects provide students with expo-
underscoring the significance of the process in software sure to real-world dynamics, including team management
engineering. Complementarily, Pressman’s perspective [7] [15]. Other works [16] propose a more holistic approach,
views software engineering as an amalgamation of pro- which includes teaching agile software development and its
cesses, methods, and tools essential for producing quality frameworks and tools, including Scrum, XP, and Kanban.
software, with a focus on the quality of the product itself. On the other hand, Xie et al. propose the use of serious
Also, [8] discussed the issues that software engineers games for teaching SE project management [17].
cannot avoid because of the inherent nature of software
and the accidental problems that can be avoided by learning However, excessive focus on applied skills and project-
and using SE rules and tools. based content might be at the expense of theoretical
foundations, especially considering that the constraints
SE programs have emphasized the theoretical aspects, of a typical semester further exacerbate this challenge,
as they have progressed from CS programs over time, and making it difficult to adequately cover both theoretical
also emphasized the practical aspects, as students with SE and practical components. Additionally, segregating theory
degrees should be ready to join and contribute as profes- and practice into separate courses could further widen
sional software engineers in a real-world [4]. Although SE this perceived divide. Therefore, SE education necessitates
courses are part of most CS degree programs [9], the ap- a more integrated approach to ensure a seamless bridge
plied nature of SE programs would raise concerns in regard between theory and practice [18].
to the theoretical foundations of SE graduates compared to
CS students. To this end, guidelines from the ACM define
SE curricula [10] and differentiate them from programs in III. T HE P4 A PPROACH
other CS disciplines. Similarly, the Software Engineering
The diverse definitions and perspectives have been in-
Body of Knowledge (SWEBOK) [11] identifies fundamen-
strumental in shaping the objectives, strategy, and content
tal topics to be incorporated into SE education. While
of NKU’s ASE curriculum from its design phase. Our
these sources offer comprehensive directives regarding the
objective was to adopt a systematic pedagogical approach
content that SE programs and courses should cover, they
that addresses the longstanding challenges in SE education,
are less prescriptive about the methods and strategies
including bridging the gap between theory and practice
for content delivery. This leaves room for educational
often found in CS courses. To this end, we devised P4, a
institutions to adapt their teaching to the evolving needs
novel framework for curriculum and course development
of the SE field.
that not only aims to cover the foundational aspects of
On the other hand, the lack of detailed guidance and SE but also ensures students are exposed to practical,
standards on pedagogical approaches contributes to the real-world applications and problem-solving techniques.
gap between the skills needed in industry settings. Prior P4 is based on four pillars: principles, patterns, practices,
research found that individuals in the software industry and projects. Fig. 1 shows the relationships between four
feel that current university curricula fail to focus on the elements of P4 and their role in bridging the gap between
practical aspects of software development [9]. As a result, theory and practice. Specifically, the principles pillar rep-
several authors, including [4], identified important skills resents the theory domain, that is, fundamental CS and
required in the industry that should be an addition to SE concepts that constitute the foundation. Conversely,
SWEBOK, such as project management and deployment the projects pillar involves completely practical, hands-on
configuration. For example, project-related topics, such as product development experiences. Patterns (i.e., established
SE processes, models, and practical topics, such as design, solutions to known problems) and practices (i.e., validated
and testing, are some of the major items contributing to processes for effective software development) enable stu-
the gap [4]. dents to learn and adopt a process for analyzing problems
In the past decade, there has been increasing attention and developing solutions, thus creating a seamless path for
on incorporating practical, hands-on experience in SE bridging the gap between theory and practice.
Practical Aspects of
A. Principles Software Engineering Education

Principles represent the foundational theoretical ele-


Projects
ments of software engineering education. On the one hand,
our strategy focuses on teaching and solidifying principles Practice 1 Practice 2 … Practices M
that underpin the entire field. From a software engineering Application
standpoint, this includes understanding core concepts such of Theories
to Solve Problems
as modularity, encapsulation, and abstraction, which are es-
sential for understanding software design and architecture, Pattern 1 Pattern 2 … Pattern N

as well as development lifecycles, algorithmic thinking, Principles


and ethical considerations in software development. On the Theoretical Aspects of
other hand, we address Human-Computer Interaction and Software Engineering Education

User Interface Design principles that guide the design of


interfaces that are not only functional but also engaging Fig. 1. Relationships among P4 Elements
and inclusive, enhancing the overall user experience, such
as usability, accessibility, consistency, and feedback. Prin-
ciples enable equipping students with a solid understanding in software design and development is crucial for problem-
necessary for analyzing and constructing robust software solving, whereas being able to implement the appropriate
systems with a high degree of usability. By rooting our patterns has a fundamental role in prototyping and rapid
program in these fundamental principles, we aim to build application development, as well as adopting established
a strong base upon which advanced concepts can be UI patterns ensures high consistency and quality and
understood and applied. reduces development cost in interface design.
In the context of our work, patterns serve as a bridge
B. Patterns between theory and practice. By incorporating them as
This dimension focuses on the study of design patterns, a pillar of our software engineering curriculum, we aim
architectural patterns, and anti-patterns, that is, established to equip students with the skills to identify and apply
solutions for common problems encountered in software appropriate patterns in diverse scenarios and enable them
design and development. Patterns involve the application to design and develop software efficiently and effectively.
of one or more key principles to a problem domain. This not only enhances their problem-solving skills but
For example, software design patterns [19] or refactoring also encourages a deeper understanding of software design
patternsare based on SOLID principles to solve complex paradigms, simultaneously providing them with a reusable
problems caused by the interaction of objects. Recognizing toolkit of resources that they can apply in their projects
patterns in software design and development is crucial to design and develop more structured, reliable, and main-
for problem-solving, whereas being able to implement the tainable software solutions.
appropriate patterns has a fundamental role in prototyping
C. Practices
and rapid application development as well as adopting
established UI patterns ensures high consistency and qual- The concept of practices refers to the concrete method-
ity and reduces development costs in interface design. ologies, techniques, and processes that are employed in the
Patterns are not specific to any particular programming actual development and management of software projects.
language, technology, or implementation but rather general They represent the actionable aspects of software engineer-
approaches and conceptual templates that can be applied ing, translating theoretical knowledge and design patterns
and adapted to various circumstances. Also, they help into real-world applications. Practices encompass a wide
standardize solutions, make software more robust, and range of activities, from coding standards and version
reduce the likelihood of errors. control to testing methodologies and project management
An example of a widely-used pattern in software design techniques.
and development is the Model-View-Controller (MVC) Examples include Agile methodologies such as Scrum
pattern, which separates an application into three inter- or Kanban, which are based on the principles of iterative
connected components: the Model (data), the View (user development, collaboration, and adaptability to change.
interface), and the Controller (business logic). Based on Similarly, version control, test-driven development (TDD),
this pattern, students can learn advanced patterns, including and continuous integration and continuous deployment
the Model-View-ViewModel (MVVM), which was widely (CI/CD) enable the delivery of reliable applications more
adopted by industry . efficiently. In addition to software engineering practices,
This approach, which is based on the principle of the program heavily focuses on HCI methods and tech-
separation of concerns, enhances modularity, facilitates niques for product development, such as user-centered
maintenance, and improves scalability. Another example design and usability testing.
in the context of HCI is the progressive disclosure pattern By incorporating practices in our curriculum, we em-
based on the cognitive load theory, which involves reveal- phasize the importance of acquiring methodologies that are
ing information to the user gradually. Recognizing patterns current with respect to the demand of the software develop-
ment industry. Also, by engaging students in projects, the
curriculum ensures that not only are they knowledgeable PROJECTS
of these practices but also master their application.
PRACTICES

D. Projects PATTERNS

The final dimension of our approach revolves around PRINCIPLES


project-based learning, which represents the practical,
KNOWING COMPREHENDING SYNTHESIZING
hands-on component wherein students synthesize and ap- or
REMEMBERING
or
UNDERSTANDING
APPLYING ANALYZING or
EVALUATING
CREATING

ply the principles, patterns, and practices they have learned


in the context of real-world projects or simulated pro-
Fig. 2. Mapping between P4 pillars and Bloom’s taxonomy.
fessional environments. Projects are a critical part of the
curriculum, providing students with the opportunity to de-
velop, test, and refine their skills in designing, developing,
and managing software. to analyze and evaluate different best practices, discerning
Moreover, the purpose of projects is not only to bridge the most effective approaches for various scenarios and
the gap between theory and practice but also to expose challenges in software development. Practices can be im-
students to aspects of software development that they plemented in many forms in a class setting. For instance,
would not necessarily learn through theory, such as require- appropriate teaching and assessment strategies for this can
ment analysis and customer expectation management, team include simulations, project planning, and addressing the
dynamics, resource allocation, and failure. With real-world issues of a specific component of software development.
projects, students gain invaluable experience in problem- As an example of an assignment, students can be asked
solving, teamwork, project management, and communi- to implement the Command design pattern to learn the
cation skills. They also learn to deal with real-world separation of concerns using the Single Responsibility
complexities and constraints, such as limited resources, Principle.
time constraints, and changing requirements. Finally, projects are associated with higher-order think-
Moreover, these projects serve as a portfolio for stu- ing activities of Bloom’s taxonomy, such as synthesizing or
dents, reflecting their ability to apply their knowledge in evaluating and creating. Projects represent the culmination
practical settings and providing a tangible showcase that of the P4 framework and are the practical embodiment of
demonstrates their capabilities to future employers. the principles, patterns, and practices learned. They provide
a platform for students to integrate their knowledge and
IV. P4 IN C OURSE AND C URRICULUM D ESIGN skills to design, develop, and deliver complete software
systems. This experiential learning solidifies students’ un-
The P4 framework is designed to scaffold learning in derstanding and prepares them for the complexities of real-
a way that builds complexity and depth of understanding world software engineering challenges.
incrementally, as students advance in their study. The
The correspondence between the four pillars of P4
scaffolding aspect of our proposed educational model is
and Bloom’s taxonomy of learning outcomes makes our
consistent with Bloom’s approach to the definition of
approach extremely useful in the development of individual
learning objectives as ranging from lower-order to higher-
SE courses. Moreover, thanks to the modular approach,
order thinking. Fig. 2 shows a correspondence between the
each pillar can be utilized independently to differentiate
four pillars of our proposed framework and the levels of
the specific perspective and content of CS and SE courses.
cognitive skills development defined by the taxonomy.
For instance, beyond fundamental aspects such as the
The first element, principles, aligns with the initial syntax of the language, introductory CS courses teaching
cognitive stages of knowing or remembering and com- Java programming focus on the application of princi-
prehending or understanding. To this end, a series of ples through algorithms, data structures, and complexity,
teaching strategies and tools, such as exercises, questions, whereas Object-oriented programming (OOP) paradigms
and discussions, can be utilized to assess that students and patterns are discussed in more advanced CS courses.
master the core principles of the field. On the contrary, introductory SE courses teaching Java
Patterns are associated with the cognitive process of highlight practical aspects such as OOP design or software
comprehending or understanding and applying knowledge. testing with unit tests, which are needed for application
This stage transitions students from theoretical understand- development.
ing to the practical application of principles in the form of Moreover, P4 can be utilized to seamlessly integrate
patterns. To this end, demonstrations, sample projects, and CS and SE concepts across multiple courses and create
case studies can be utilized to teach and assess students’ different professional paths. Specifically, the correspon-
ability to recognize and apply SE patterns. dence between the four pillars and Bloom’s taxonomy
The third element of the P4 framework, that is, Prac- aligns very well with previous research that investigated
tices, is primarily associated with the analytical phase of the correspondence between specific learning objectives
Bloom’s Taxonomy. At this stage, students are encouraged and the skills required by SE profiles.
The proposed approach can be systematically utilized for Focus on rules and tools for solving problems

designing individual courses by incorporating one pilar or, Professional Project

possibly, all four pillars. By incorporating P4 as an integral Real-World Project


aspect of the curriculum, students benefit from a consistent
Team Project
experience across the entire program. Simultaneously, they
have multiple opportunities to get exposed to the relation- Individual Project
ship between the four pillars. Focus on delivering products in a team

For instance, in SE courses, integrating practical ex-


perience is essential for teaching the most fundamental Fig. 3. Different Project Focus
principles in a way that students can easily understand.
An example is KISS (Keep It Simple, Stupid), a central
practice in software design based on the principle of important than just making applications. When students
Occam’s razor. The principle advocates that the simplest need to build software from requests from clients, they
solution is almost always the best, and it highlights the experience the next level of team projects. Students learn
importance of simplicity in both design and tool selection. how to communicate with clients so that requirements are
Similarly, KISS is embraced in other disciplines, such as thoroughly discussed and analyzed to deliver the products
Human-Computer Interaction, though it is utilized in in- that are requested. The top level, professional level, is the
teraction design, user interface, and User eXperience (UX) projects that students get involved in when they join a real-
contexts. However, the full comprehension and application world company as an intern or when they are in a similar
of this principle can be challenging for students without professional software engineering environment.
the opportunity to witness its practical implications in a In this approach, students are required to do individual
real-world project development context. Therefore, both and team projects in a semester. In the team project,
software design and HCI courses might incorporate similar students form a team with different roles: a team leader and
pillars and even reiterate similar principles or practices. members. The team leader takes responsibility for sched-
Such redundancy provides students with multiple touch- ule, artifacts, documents, and quality management. Each
points with topics, which helps familiarize them with them team member takes the responsibility to define, design,
better. and develop their features based on users’ requirements. To
Throughout the program, students have multiple oppor- avoid the situation wherein team members take advantage
tunities to experience a wide array of projects that vary of earning points without doing anything, students are
in scope and complexity. For instance, most assignments required to do the individual project at the same time.
involve individual or group assignments in which students Also, in team projects, students are required to play the
are required to develop a small software application or role of team members or team leaders. They build software
to contribute to the development of a component of a applications in a team under constraints—they should
larger open-source project. Also, each course’s mid-term deliver the software products on time and within budget by
and final exams consist of the implementation of a software managing complexity. Working in a team requires different
product based on specifications provided by the instructor types of tools, rules, and skills than working alone. They
based on real-world scenarios or requirements defined by need to choose from different software processes and use
the students after they identify and analyze a problem the process to deliver products in a team. As a result,
experienced by a group of actual users. Furthermore, other students focus on practical aspects of SE as they are time-
projects, especially in the context of advanced courses or pressed to deliver software artifacts or learn the tools
capstone projects, often involve collaborating with industry for team projects. This is an issue as students need to
partners on real-world applications and encompassing the understand and apply the theoretical aspects of SE, such as
full software development lifecycle, from requirements software architecture, design, or testing, instead of working
gathering and system design to implementation, testing, towards meeting assignment deadlines.
and deployment. This exposure to actual software devel- Both projects are implemented using a software process.
opment processes and challenges ensures that students not Students are required to abstract the requirements using
only understand the theory of SE but also have the practical user stories from users’ requests. Then, they use software
experience to apply this knowledge effectively in real- architectures to identify the input, storage, transformation,
world scenarios, which prepares them for the professional and output of the software system as an aggregation of
environment, fostering skills such as teamwork, communi- modules. Each student designs, implements, and unit tests
cation, and time management. their assigned features. Team leaders play the role of
There are four levels of projects that students implement managers who take responsibility for quality software by
as in Fig 3. The most basic level, individual project, managing integration, regression, and acceptance tests.
focuses on solving given problems using principles and
patterns and their rules and tools. The next level, the team V. C ONCLUSION
project, focuses on building quality software in a team. At
this level, time and resource management becomes more In the evolving landscape of software engineering educa-
tion, there is a constant need for innovative and effective
strategies that produce industry-ready graduates who are R EFERENCES
prepared to contribute to software projects with current [1] N. E. A. M. Almi, N. A. Rahman, D. Purusothaman, and
knowledge and practical skills. Although numerous models S. Sulaiman, “Engineering education : The gap between industry
attempted to bridge the gap between theoretical knowledge ’ s requirements and graduates ’ readiness,” 2011. [Online].
Available: https://api.semanticscholar.org/CorpusID:13864825
and practical application, there is a need for strategies that [2] W. A. Mata-López and S. Tobón, “Analysis of factors associated
harmonize hands-on experience with academic learning. to the enrollment and demand of computing-related careers,” Social
Sciences, vol. 8, no. 1, p. 1, 2018.
This paper presents a novel approach to software engi- [3] C. Winberg, M. Bramhall, D. Greenfield, P. Johnson, P. Rowlett,
neering education designed to address the gaps in current O. Lewis, J. Waldock, and K. Wolff, “Developing employability
models and to prepare students for the complexities and in engineering education: a systematic review of the literature,”
European Journal of Engineering Education, vol. 45, no. 2, pp.
challenges of the modern software development industry. 165–180, 2020.
The P4 approach is built on four foundational pillars, [4] V. Garousi, G. Giray, E. Tuzun, C. Catal, and M. Felderer, “Closing
that is, Principles, Patterns, Practices, and Projects, each the gap between software engineering education and industrial
needs,” IEEE Software, vol. 37, no. 2, p. 68–77, 2020.
of which plays a crucial role in the development of [5] S. S. Cho, N. Caporusso, and M. Doyle, “Nku applied software
theoretical and applied software engineering competencies. engineering program: A novel approach to software engineering
The Principles pillar focuses on the theoretical foundations education,” in 2023 IEEE Frontiers in Education Conference (FIE),
2023, pp. 1–5.
and core concepts of software engineering. This includes [6] “Iso/iec/ieee international standard - systems and software
aspects such as understanding algorithms, data structures, engineering–vocabulary,” ISO/IEC/IEEE 24765:2017(E), pp. 1–541,
and software design and development principles. The Pat- 2017.
[7] R. Pressman, Software Engineering: A Practitioner’s Approach,
terns pillar emphasizes the importance of learning from 7th ed. USA: McGraw-Hill, Inc., 2009.
existing models and established frameworks that have been [8] F. P. Brooks, The Mythical Man-Month: Essays on Software, 1st ed.
proven effective solutions for known software design and USA: Addison-Wesley Longman Publishing Co., Inc., 1978.
[9] J. D. Tvedt, R. Tesoriero, and K. A. Gary, “The software factory:
development problems and needs. It encourages students Combining undergraduate computer science and software engineer-
to leverage the collective wisdom of the field in approach- ing education,” in Proceedings of the 23rd International Conference
ing problem-solving through the application of consistent on Software Engineering, ser. ICSE ’01. USA: IEEE Computer
Society, 2001, p. 633–642.
patterns. The third pillar is centered on learning the best [10] T. J. T. F. on Computing Curricula, “Curriculum guidelines for
Practices in computer science and software engineering. undergraduate degree programs in software engineering,” New York,
This includes coding standards, version control, testing NY, USA, Tech. Rep., 2004.
[11] P. Bourque, R. E. Fairley, and I. C. Society, Guide to the Software
methodologies, and project management techniques that Engineering Body of Knowledge (SWEBOK(R)): Version 3.0, 3rd ed.
are widely utilized in the software industry. The final pillar Washington, DC, USA: IEEE Computer Society Press, 2014.
focuses on hands-on experience through collaborative, real- [12] Strengthening the “Engineering” in Software Engineering Educa-
tion: A Software Engineering Bachelor of Engineering Program for
world Projects. This is where students apply principles, the 21st Century, 2016.
patterns, and practices in a controlled, yet realistic envi- [13] W. K. Chen and B. R. Hall, “Applying software engineering
ronment. Projects involve real-world scenarios, providing in cs1,” in Proceedings of the 18th ACM Conference on
Innovation and Technology in Computer Science Education,
students with the opportunity to work in teams, manage ser. ITiCSE ’13. New York, NY, USA: Association for
timelines, communicate with clients, and deliver functional Computing Machinery, 2013, p. 297–302. [Online]. Available:
software products. https://doi.org/10.1145/2462476.2462480
[14] A. Joan O Vicente, T. Adelaine G Tan, and A. Ray O Yu,
P4’s scaffolding aims at producing graduates who are “Collaborative Approach in Software Engineering Education: An
not only theoretically proficient but also adept at ap- Interdisciplinary Case,” Journal of Information Technology Educa-
tion: Innovations in Practice, vol. 17, pp. 127–152, 2018. [Online].
plying their skills in practical settings. Furthermore, the Available: https://www.informingscience.org/Publications/4062
framework serves as a conceptual guide for both ongoing [15] N. Campos, M. Nogal, C. Caliz, and A. A. Juan, “Simulation-based
education and future professional growth of our students. education involving online and on-campus models in different euro-
pean universities,” International Journal of Educational Technology
Simultaneously, the P4 approach helps deliver a consistent in Higher Education, vol. 17, pp. 1–15, 2020.
and structured academic experience across the curriculum, [16] M. Kropp and A. Meier, “Teaching agile software development at
and it provides educators with a blueprint for aligning university level: Values, management, and craftsmanship,” in 2013
26th International Conference on Software Engineering Education
the student learning objectives of each course with the and Training (CSEE&T). San Francisco, CA, USA: IEEE, May
overarching goals of the program. 2013, pp. 179–188.
[17] T. Xie, N. Tillmann, and J. de Halleux, “Educational software
The P4 approach played a crucial role in the design engineering: Where software engineering, education, and gaming
of NKU’s ASE program and its entire curriculum. As the meet,” in 2013 3rd International Workshop on Games and Software
inaugural cohort of the program will graduate in Spring Engineering: Engineering Computer Games to Enable Positive,
Progressive Change (GAS), 2013, pp. 36–39.
2023, our future work will focus on evaluating the efficacy [18] A. Connolly, J. Hellerstein, N. Alterman, D. Beck, R. Fatland,
of the P4 model, particularly in terms of its impact on E. Lazowska, V. Mandava, and S. Stone, “Software engineering
graduate employability. This will allow us to assess the practices in academia: Promoting the 3rs—readability, resilience,
and reuse,” 2023.
tangible benefits of the P4 approach in preparing students [19] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, “Design
for successful careers in the software engineering industry. patterns: Abstraction and reuse of object-oriented design,” in
ECOOP’93—Object-Oriented Programming: 7th European Confer-
ence Kaiserslautern, Germany, July 26–30, 1993 Proceedings 7.
Springer, 1993, pp. 406–431.

View publication stats

You might also like