Principles, Patterns, Practices, and Projects SSSZ
Principles, Patterns, Practices, and Projects SSSZ
net/publication/381815288
CITATIONS READS
0 25
3 authors, including:
All content following this page was uploaded by Nicholas Caporusso on 07 August 2024.
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
D. Projects PATTERNS