Individual Logbook and Reflection: Spam Filter Project, Discrete Math
VerifiedAdded on 2022/11/25
|12
|4613
|407
Project
AI Summary
This logbook documents a group project undertaken by a student involving the development of an e-mail spam filter using machine learning, text processing, and discrete mathematics. The project followed the SCRUM agile development methodology, with the student taking on the roles of developer and assistant to the team leader. The logbook details the project's initiation, planning, implementation, and closure phases, including sprint activities, role assignments, and challenges faced. The development involved creating text processing algorithms and incorporating machine learning for spam detection. The student reflects on their personal contributions, the use of project management methodologies, and the impact on group dynamics and project outcomes. The project's success was measured by testing the filter's ability to detect and filter spam e-mails, achieving a high success rate. The logbook concludes with lessons learned and reflections on the project's overall performance.

INDIVIDUAL LOGBOOK AND REFLECTION: DISCRETE
MATHEMATICS DECLARATIVE PROGRAMMING PROJECT
MATHEMATICS DECLARATIVE PROGRAMMING PROJECT
Secure Best Marks with AI Grader
Need help grading? Try our AI Grader for instant feedback on your assignments.

Background
This logbook is written in respect of a class group project; the project involved the development of
an e-mail Spam filter that uses machine learning principles and text processing and can be
integrated into an e-mail client. The activity was undertaken in a group consisting of four group
members and involved each group member contributing to the realization of the project objectives
based on their strengths. The development was undertaken using project management methodology,
specifically the use of the SCRUM Agile developmental method with some form of the traditional
waterfall development model. This was chosen because of its suitability for rapid software
development and delivery projects where high quality software is required (Saeeda et al., 2015;
Prechelt, Schmeisky and Zieris, 2016)This log book details and discusses the group activities in all
the development stages and this is followed by a personal reflection of the author in undertaking the
project and being part of the group. The logbook also discusses the authors’ reflections and
experiences in the context of using project management methodologies and how this impacted
group dynamics and realization of the development objectives
This logbook is written in respect of a class group project; the project involved the development of
an e-mail Spam filter that uses machine learning principles and text processing and can be
integrated into an e-mail client. The activity was undertaken in a group consisting of four group
members and involved each group member contributing to the realization of the project objectives
based on their strengths. The development was undertaken using project management methodology,
specifically the use of the SCRUM Agile developmental method with some form of the traditional
waterfall development model. This was chosen because of its suitability for rapid software
development and delivery projects where high quality software is required (Saeeda et al., 2015;
Prechelt, Schmeisky and Zieris, 2016)This log book details and discusses the group activities in all
the development stages and this is followed by a personal reflection of the author in undertaking the
project and being part of the group. The logbook also discusses the authors’ reflections and
experiences in the context of using project management methodologies and how this impacted
group dynamics and realization of the development objectives

Logbook: Activities and Development Stages
Stage Activity Role
Project
Initiation phase
The initiation phase is very important for overall project
success because it increases team efficiency, makes
collaboration easy, and improves processes (Snijders et al.,
2013). This stage entailed getting instructions form the
lecturer and the forming a group of four to undertake the
project. We formed a team of four based on our personal
relationships and understanding of each other. After forming
the group, the team set up the objectives and requirements
of the e-mail Spam filter, discussion in detail its
performance requirements, functional and non-functional
requirements, the algorithms to use in developing the
machine learning, and text processing. These discussions
took nearly a week and even though roles had not been
assigned, already, natural roles were coming to the fore;
there was a member involved in taking notes, another in
arranging the meetings and acting as moderator, and others
making contributions and giving ideas that the whole group
discussed, following the scrum agile process (Vijayasarathy
and Butler, 2016; Warsta, 2016)
Team member
After setting out objectives, the team then got to the next
phase that involved determining ad assigning roles,
documenting the necessary tasks to be accomplished, and
how to ensure the deliverables were met. The roles were
assigned, and the team agreed to use the scrum agile
methodology in the delivery of the project, involving some
use of the traditional waterfall development method. I was
assigned the role of developer and also aiding the team
leader. I was also responsible for helping to organize
meetings and ensuring the team had all the required
resources
Developer,
assistant to team
leader
Planning This is the second phase and involves planning on how to
execute the project; the plans help in effective management
Stage Activity Role
Project
Initiation phase
The initiation phase is very important for overall project
success because it increases team efficiency, makes
collaboration easy, and improves processes (Snijders et al.,
2013). This stage entailed getting instructions form the
lecturer and the forming a group of four to undertake the
project. We formed a team of four based on our personal
relationships and understanding of each other. After forming
the group, the team set up the objectives and requirements
of the e-mail Spam filter, discussion in detail its
performance requirements, functional and non-functional
requirements, the algorithms to use in developing the
machine learning, and text processing. These discussions
took nearly a week and even though roles had not been
assigned, already, natural roles were coming to the fore;
there was a member involved in taking notes, another in
arranging the meetings and acting as moderator, and others
making contributions and giving ideas that the whole group
discussed, following the scrum agile process (Vijayasarathy
and Butler, 2016; Warsta, 2016)
Team member
After setting out objectives, the team then got to the next
phase that involved determining ad assigning roles,
documenting the necessary tasks to be accomplished, and
how to ensure the deliverables were met. The roles were
assigned, and the team agreed to use the scrum agile
methodology in the delivery of the project, involving some
use of the traditional waterfall development method. I was
assigned the role of developer and also aiding the team
leader. I was also responsible for helping to organize
meetings and ensuring the team had all the required
resources
Developer,
assistant to team
leader
Planning This is the second phase and involves planning on how to
execute the project; the plans help in effective management

and control of the quality, cost, time, risks, and changes
(Villanova University, 2019). The team developed a project
charter, project objectives, the project deliverables, and a
project management plan incorporating the tasks to be
accomplished,. This was essentially the sprint planning
meeting and the product owner was to develop the sprint
backlog and overall product backlog. I reviewed my role
again and realized I would have a lot to do, in addition to
being a developer
Implementation/
Execution
Sprint 1
This took two weeks in which the team developed the text
processing algorithm based on the concepts of discrete
mathematics and using declarative programming where the
computational aspects of the program are expressed without
the description of its control flow. The initial program
elements were developed over eight days and one day used
for testing its functioning to identify problems and a day
used for making corrections and improvements and the
iteration tested again. During this period, I was responsible
for organizing the necessary resources, including the
meeting room, stationery, and documenting the stand-up
meetings that we held daily. I recorded the progress and
activities undertaken by every member as well as any
challenges they faced and documented these, while also
seeking ways to solve the problems they faced. At the end of
the sprint, a review of the work done and progress made was
discussed, along with any challenges faced. The tea also
reviewed the product backlog and set the agenda for the
next sprint activities as well as clarified the next sprint
backlog
Developer,
assistant to team
leader
Sprint 2
This entailed further development; the team finalized
developing the program elements for text processing to be
able to identify Spam. During the second iteration, again the
Developer,
assistant to team
leader
(Villanova University, 2019). The team developed a project
charter, project objectives, the project deliverables, and a
project management plan incorporating the tasks to be
accomplished,. This was essentially the sprint planning
meeting and the product owner was to develop the sprint
backlog and overall product backlog. I reviewed my role
again and realized I would have a lot to do, in addition to
being a developer
Implementation/
Execution
Sprint 1
This took two weeks in which the team developed the text
processing algorithm based on the concepts of discrete
mathematics and using declarative programming where the
computational aspects of the program are expressed without
the description of its control flow. The initial program
elements were developed over eight days and one day used
for testing its functioning to identify problems and a day
used for making corrections and improvements and the
iteration tested again. During this period, I was responsible
for organizing the necessary resources, including the
meeting room, stationery, and documenting the stand-up
meetings that we held daily. I recorded the progress and
activities undertaken by every member as well as any
challenges they faced and documented these, while also
seeking ways to solve the problems they faced. At the end of
the sprint, a review of the work done and progress made was
discussed, along with any challenges faced. The tea also
reviewed the product backlog and set the agenda for the
next sprint activities as well as clarified the next sprint
backlog
Developer,
assistant to team
leader
Sprint 2
This entailed further development; the team finalized
developing the program elements for text processing to be
able to identify Spam. During the second iteration, again the
Developer,
assistant to team
leader
Secure Best Marks with AI Grader
Need help grading? Try our AI Grader for instant feedback on your assignments.

team held the usual daily stand up meetings; this time, we
had physical meetings twice a week and the rest of the days
we just had an online conference given the challenges of
learning and other commitments. The team leader asked me
to help on this by researching and proposing applications or
solutions that would enable the team to collaborate online.
During this sprint, the team finalized the code and
algorithms for the text editor and this took five days; with
some machine learning ability incorporated. Testing was
done over two days and a sprint review held to identify any
issues that needed to be solved in the software. Initial
corrections were made and the team held a second sprint
retrospect during which what was done right was discussed,
as well as what was done well and what needed to be done
in the next sprint backlog and lessons from the present
sprint that would enhance the performance in the next
sprint.
Sprint 3
This entailed refining the text processing and developing the
machine learning algorithms for the program. The sprint
was as usual accompanied by the stand up scrum meetings
and online collaboration as well as evaluating the
development of the program. I was involved in developing
and debugging code using the C# language, this took seven
days and testing was done over two days during which its
performance was evaluated during the sprint review. The
sprint review went on well and the sprint retrospective had
some ‘fire works’ this time, with concerns that the machine
learning algorithm was not relevant or was way too slow.
The team agreed that the machine learning algorithm needed
to be trained better, but the team was achieving most of its
objectives ad the performance parameters for the Spam
filtering program.
Developer,
assistant to team
leader
Sprint 4 Developer,
had physical meetings twice a week and the rest of the days
we just had an online conference given the challenges of
learning and other commitments. The team leader asked me
to help on this by researching and proposing applications or
solutions that would enable the team to collaborate online.
During this sprint, the team finalized the code and
algorithms for the text editor and this took five days; with
some machine learning ability incorporated. Testing was
done over two days and a sprint review held to identify any
issues that needed to be solved in the software. Initial
corrections were made and the team held a second sprint
retrospect during which what was done right was discussed,
as well as what was done well and what needed to be done
in the next sprint backlog and lessons from the present
sprint that would enhance the performance in the next
sprint.
Sprint 3
This entailed refining the text processing and developing the
machine learning algorithms for the program. The sprint
was as usual accompanied by the stand up scrum meetings
and online collaboration as well as evaluating the
development of the program. I was involved in developing
and debugging code using the C# language, this took seven
days and testing was done over two days during which its
performance was evaluated during the sprint review. The
sprint review went on well and the sprint retrospective had
some ‘fire works’ this time, with concerns that the machine
learning algorithm was not relevant or was way too slow.
The team agreed that the machine learning algorithm needed
to be trained better, but the team was achieving most of its
objectives ad the performance parameters for the Spam
filtering program.
Developer,
assistant to team
leader
Sprint 4 Developer,

This involved further refining and extended testing of the
third iteration of the program as well as elevated training of
the machine learning aspect and the refining of the discrete
mathematics approaches used in its development. This
sprint required the team embers to meet physically everyday
for the daily sprint stand up meetings where issues were
shared and the tasks undertaken reported and discussed. The
program was tested extensively and corrections made until
96% of the set technical and the functional as well as non-
functional requirements were met. This process took six
days after which the team deployed the final fourth iteration
and incorporated it in MS Outlook and tested its
performance to filter Spam. 100 Spam e-mails were sent to
a specifically created MS Outlook e-mail account in
addition to valid/ normal main and this was done randomly
such that for every five normal mails, a Spam e-mail was
sent to test the effectiveness of the program in text analysis
and filtering out Spam. The program was able to detect and
filter out 94 of the Spam e-mails sent; initially, it did not
recognize some mail as Spa but eventually, as the machine
learning algorithm got better, it was able to detect and filter
out Spam mails at a much faster rate. The team then had a
sprint review and a sprint retrospect, before having the final
sprint retrospect where the whole project was discussed
assistant to team
leader
Closure Sprint retrospect
The team had a final meeting where the project performance
was recorded and documented; what was done well,
whether the objectives were met, how the scope was
managed, and what things were not done well or went
wrong. This took two days during which the team
documented lessons learned and what would be used in
future projects to improve outcomes. The team leader and
other team members helped write the program
documentation, as well as define the maintenance and
Developer,
assistant to team
leader Developer,
assistant to team
leader
third iteration of the program as well as elevated training of
the machine learning aspect and the refining of the discrete
mathematics approaches used in its development. This
sprint required the team embers to meet physically everyday
for the daily sprint stand up meetings where issues were
shared and the tasks undertaken reported and discussed. The
program was tested extensively and corrections made until
96% of the set technical and the functional as well as non-
functional requirements were met. This process took six
days after which the team deployed the final fourth iteration
and incorporated it in MS Outlook and tested its
performance to filter Spam. 100 Spam e-mails were sent to
a specifically created MS Outlook e-mail account in
addition to valid/ normal main and this was done randomly
such that for every five normal mails, a Spam e-mail was
sent to test the effectiveness of the program in text analysis
and filtering out Spam. The program was able to detect and
filter out 94 of the Spam e-mails sent; initially, it did not
recognize some mail as Spa but eventually, as the machine
learning algorithm got better, it was able to detect and filter
out Spam mails at a much faster rate. The team then had a
sprint review and a sprint retrospect, before having the final
sprint retrospect where the whole project was discussed
assistant to team
leader
Closure Sprint retrospect
The team had a final meeting where the project performance
was recorded and documented; what was done well,
whether the objectives were met, how the scope was
managed, and what things were not done well or went
wrong. This took two days during which the team
documented lessons learned and what would be used in
future projects to improve outcomes. The team leader and
other team members helped write the program
documentation, as well as define the maintenance and
Developer,
assistant to team
leader Developer,
assistant to team
leader

improvement plan and the project was officially closed
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser

Personal Reflection
undertaking this project has been immensely beneficial to me, not just in helping improve my
technical skills in software development and the use of the scrum agile, but also in developing and
enhancing my soft skills. I was a team member involved in coding and testing, and also assisted the
team leader in manging and running group activities, such as helping arrange meetings and handling
project documentation as well as recording meeting proceedings. Performing my roles involved
interacting with team members a lot and this greatly enhanced my skills in conflict resolution,
interpersonal interaction, and communication skills. This reflection documents my personal
experiences in undertaking my role as a developer and assistant to the team leader, interaction with
my team members, and how I was able to perform technical tasks in developing the program and
lessons I have learned.
In the beginning, working with my team mates was a little challenging, especially during the
initiation phase where the team met to discuss the program development and set objectives; it is
normal for anxiety and lack of familiarity running a project to cause friction in the initial stages of a
project (Bender, 2010a; Bender, 2010b) . At first, I thought the lecturer would provide all these
details and felt what had been set in the instructions paper was adequate; however, it turned out I
was wrong. While I like to remain silent of not too involved during group discussions, I have the
tendency to strongly defend my position on any issue. In the initial stages, I did not disappoint,
wondering why we were setting ‘new objectives’ when the instruction material seemed adequate.
The important thing was to find a way to move forward, to make progress, and get closer to
achieving the set project objectives (Alexander, 2017).
This was an eye opener for me, in those three days, I changed my attitude and perspectives a lot; I
would see my friends raise a point and even before they could finish, another one would shout them
down, and they all just laughed about it. Not for me, but eventually, I learned to accept that group
dynamics are different from individual perspectives and personal opinions. Being a team member
and assisting the project team leader was exciting even though I knew it would be challenging in
some instances, but challenges is what makes learning more exciting. I learned that I could not do
everything by myself, and should instead seek help and assistance from other team members if I ran
into problems. I am a person that naturally likes doing things by herself and this was never going to
be possible while working in a team in developing a program. The team leader and other group
members regularly sought my opinion or help and it made believe that everyone needs help,
sometimes when we are stuck, it is easy to seek help rather than try and solve everything by oneself.
As the project progressed and I learned to improve some of my soft skills as well as technical skills,
it occurred to me that people would get late, tired, and even want to give up whenever things were
not working as expected. The team leader would ask me to help in refining the sprint backlog and
undertaking this project has been immensely beneficial to me, not just in helping improve my
technical skills in software development and the use of the scrum agile, but also in developing and
enhancing my soft skills. I was a team member involved in coding and testing, and also assisted the
team leader in manging and running group activities, such as helping arrange meetings and handling
project documentation as well as recording meeting proceedings. Performing my roles involved
interacting with team members a lot and this greatly enhanced my skills in conflict resolution,
interpersonal interaction, and communication skills. This reflection documents my personal
experiences in undertaking my role as a developer and assistant to the team leader, interaction with
my team members, and how I was able to perform technical tasks in developing the program and
lessons I have learned.
In the beginning, working with my team mates was a little challenging, especially during the
initiation phase where the team met to discuss the program development and set objectives; it is
normal for anxiety and lack of familiarity running a project to cause friction in the initial stages of a
project (Bender, 2010a; Bender, 2010b) . At first, I thought the lecturer would provide all these
details and felt what had been set in the instructions paper was adequate; however, it turned out I
was wrong. While I like to remain silent of not too involved during group discussions, I have the
tendency to strongly defend my position on any issue. In the initial stages, I did not disappoint,
wondering why we were setting ‘new objectives’ when the instruction material seemed adequate.
The important thing was to find a way to move forward, to make progress, and get closer to
achieving the set project objectives (Alexander, 2017).
This was an eye opener for me, in those three days, I changed my attitude and perspectives a lot; I
would see my friends raise a point and even before they could finish, another one would shout them
down, and they all just laughed about it. Not for me, but eventually, I learned to accept that group
dynamics are different from individual perspectives and personal opinions. Being a team member
and assisting the project team leader was exciting even though I knew it would be challenging in
some instances, but challenges is what makes learning more exciting. I learned that I could not do
everything by myself, and should instead seek help and assistance from other team members if I ran
into problems. I am a person that naturally likes doing things by herself and this was never going to
be possible while working in a team in developing a program. The team leader and other group
members regularly sought my opinion or help and it made believe that everyone needs help,
sometimes when we are stuck, it is easy to seek help rather than try and solve everything by oneself.
As the project progressed and I learned to improve some of my soft skills as well as technical skills,
it occurred to me that people would get late, tired, and even want to give up whenever things were
not working as expected. The team leader would ask me to help in refining the sprint backlog and

when I asked why, the response was that I seemed to have boundless energy, a can do-never-give-up
spirit, and exceptionally organizational skills. This was a puzzle to me because I never imagined
that I was a well-organized person, even though I always possessed a can-do spirit; I am naturally a
very determined person. I would arrive at the meeting point earlier than everyone else, and was
always the last to leave, going over details of the discussions and documenting everything in an
organized way. I am one person that believes todays work has to be finished today, postponement
sets you back further from reaching your destination. Gradually, other team members would arrive
early and stay longer, discussing issues and helping with me with documenting the research
findings. I felt exhilarated that there was at least something that I could positively contribute to the
group and others learned from me.
After the third sprint, the team tested how the program was able to learn (machine learning) and its
performance. While the program was able to ‘learn’ and detect Spam mails, there was sharp division
on the performance of the algorithm and the parameters that were used for its training. This placed
the team in a tight spot; we had developed the program iteratively and believed all hitches had been
solved and debugged and the performance of the machine learning component threatened to take us
back. I was aware that groups/ teams always have conflicts and disagreements this was turning into
an open conflict and a solution and having a common ground seemed less likely. I realized that
while conflicts are inevitable in projects (Ohlendorf, 2011), the most important thing is accepting
the existence of the conflict and having everyone willing to find a solution according to Guan
(2009). The team reviewed the situation and all along, I felt we should adopt a win-win situation
where everyone would feel accommodated and satisfied with the outcome. I exhorted all group
members to face problems head on and in an open manner (SCRUM Study, 2017), a position that
the team leader also supported and eventually, all members agreed that this was the best way to
solve the problem. All ideas would be tried to see which worked best, and all members were in
agreement; eventually we were able to find common ground and use all the proposed methods of
training the machine learning component and proceed with the project.
The idea of conflicts is never comfortable for me, and I believe for most people, however, I learned
that conflicts are not necessarily bad; in fact they can help generate new ideas that were hitherto
covered as alluded to by Pitagorsky (2019); Project Times (2013). there were other instances of
conflicts and they came thick and fast usually after the sprint review where there would be
differences on whether the performance was not good and certain improvements were needed. My
analysis of the conflicts we had made me realize that individual egos played a bigger role in fanning
conflict than the presence of the conflicts. This is a common cause of project conflicts (Koops et al.,
2017). Having been assistant to the team leader, I came to the realization that leadership skills and
the soft skills that come with them such as good negotiation skills and the ability to build
spirit, and exceptionally organizational skills. This was a puzzle to me because I never imagined
that I was a well-organized person, even though I always possessed a can-do spirit; I am naturally a
very determined person. I would arrive at the meeting point earlier than everyone else, and was
always the last to leave, going over details of the discussions and documenting everything in an
organized way. I am one person that believes todays work has to be finished today, postponement
sets you back further from reaching your destination. Gradually, other team members would arrive
early and stay longer, discussing issues and helping with me with documenting the research
findings. I felt exhilarated that there was at least something that I could positively contribute to the
group and others learned from me.
After the third sprint, the team tested how the program was able to learn (machine learning) and its
performance. While the program was able to ‘learn’ and detect Spam mails, there was sharp division
on the performance of the algorithm and the parameters that were used for its training. This placed
the team in a tight spot; we had developed the program iteratively and believed all hitches had been
solved and debugged and the performance of the machine learning component threatened to take us
back. I was aware that groups/ teams always have conflicts and disagreements this was turning into
an open conflict and a solution and having a common ground seemed less likely. I realized that
while conflicts are inevitable in projects (Ohlendorf, 2011), the most important thing is accepting
the existence of the conflict and having everyone willing to find a solution according to Guan
(2009). The team reviewed the situation and all along, I felt we should adopt a win-win situation
where everyone would feel accommodated and satisfied with the outcome. I exhorted all group
members to face problems head on and in an open manner (SCRUM Study, 2017), a position that
the team leader also supported and eventually, all members agreed that this was the best way to
solve the problem. All ideas would be tried to see which worked best, and all members were in
agreement; eventually we were able to find common ground and use all the proposed methods of
training the machine learning component and proceed with the project.
The idea of conflicts is never comfortable for me, and I believe for most people, however, I learned
that conflicts are not necessarily bad; in fact they can help generate new ideas that were hitherto
covered as alluded to by Pitagorsky (2019); Project Times (2013). there were other instances of
conflicts and they came thick and fast usually after the sprint review where there would be
differences on whether the performance was not good and certain improvements were needed. My
analysis of the conflicts we had made me realize that individual egos played a bigger role in fanning
conflict than the presence of the conflicts. This is a common cause of project conflicts (Koops et al.,
2017). Having been assistant to the team leader, I came to the realization that leadership skills and
the soft skills that come with them such as good negotiation skills and the ability to build

consensus . Good leadership skills make people more effective, especially in project situations
where conflicts are likely to occur (Saladis and Eaves, 2011). Another lesson I have learned is the
practical application of the agile scrum project management methodology; learning it in class makes
it look way too simple, yet its application requires commitment to following all its demands,
including an understanding of the scrum ceremonies and their importance; they are critical to the
success of a project using scrum agile (Huston, 2018).
The team was able to successfully develop a text processing program with machine learning
abilities as shown in the screen shots below; (the team used F# as a development language). The
program is executable. Declarative programming was an interesting concept I learned in this
project; it is a marked departure form the imperative/ OOP (object oriented programming) in which
focus is placed on the creation of statements that result in program state changes by creating
algorithms that instruct the computer on what to do. It is related closely to how computer hardware
works, making use of loops and conditional statements. In undertaking a programming project using
declarative programming, I have come to appreciate the concept and how it works. Declarative
programming places a focus on creating software logic without describing the flow of the logic and
involves creating expressions rather than creating evaluative functions and statements. It has little or
no need for using loops and I realized the same value is returned for the same argument. I have
learned the rationale behind declarative programming and its increasing popularity; it tells a
program what needs to be done, rather than how it should be done and this was very relevant in
developing a program that detects and filters out Spam, incorporating machine learning (Novák,
2018; Pereiro, 2019).
While the program achieved success in identifying and filtering Spam e-mails when tested with MS
Outlook e-mail, the team believes the program can still be improved. The maintenance will include
improvements to the machine learning algorithm which we believe has immense potential for
further improvements. Software has to be maintained and this also involves making significant
improvements on its performance and functioning (Chen, 2015). In future, I would like to change
how I interact with groups and be more positive about taking leadership of situations. The most
difficult part was in solving everyday problems and challenges and multi-tasking, given I was
assisting the team leader and performing some roles similar to what a scrum master would perform,
in addition to coding. Sometimes I would get frustrated but I believe I have really improved my soft
skills in communication and interpersonal interactions. Learning how to apply the discrete
mathematics approaches in declarative programming and being able to learn and practically follow
the agile project management methodology while improving my leadership, conflict resolution,
organizational, and to an extent leadership skills are major highlights of this project; the future can
only be bright for me.
where conflicts are likely to occur (Saladis and Eaves, 2011). Another lesson I have learned is the
practical application of the agile scrum project management methodology; learning it in class makes
it look way too simple, yet its application requires commitment to following all its demands,
including an understanding of the scrum ceremonies and their importance; they are critical to the
success of a project using scrum agile (Huston, 2018).
The team was able to successfully develop a text processing program with machine learning
abilities as shown in the screen shots below; (the team used F# as a development language). The
program is executable. Declarative programming was an interesting concept I learned in this
project; it is a marked departure form the imperative/ OOP (object oriented programming) in which
focus is placed on the creation of statements that result in program state changes by creating
algorithms that instruct the computer on what to do. It is related closely to how computer hardware
works, making use of loops and conditional statements. In undertaking a programming project using
declarative programming, I have come to appreciate the concept and how it works. Declarative
programming places a focus on creating software logic without describing the flow of the logic and
involves creating expressions rather than creating evaluative functions and statements. It has little or
no need for using loops and I realized the same value is returned for the same argument. I have
learned the rationale behind declarative programming and its increasing popularity; it tells a
program what needs to be done, rather than how it should be done and this was very relevant in
developing a program that detects and filters out Spam, incorporating machine learning (Novák,
2018; Pereiro, 2019).
While the program achieved success in identifying and filtering Spam e-mails when tested with MS
Outlook e-mail, the team believes the program can still be improved. The maintenance will include
improvements to the machine learning algorithm which we believe has immense potential for
further improvements. Software has to be maintained and this also involves making significant
improvements on its performance and functioning (Chen, 2015). In future, I would like to change
how I interact with groups and be more positive about taking leadership of situations. The most
difficult part was in solving everyday problems and challenges and multi-tasking, given I was
assisting the team leader and performing some roles similar to what a scrum master would perform,
in addition to coding. Sometimes I would get frustrated but I believe I have really improved my soft
skills in communication and interpersonal interactions. Learning how to apply the discrete
mathematics approaches in declarative programming and being able to learn and practically follow
the agile project management methodology while improving my leadership, conflict resolution,
organizational, and to an extent leadership skills are major highlights of this project; the future can
only be bright for me.
Secure Best Marks with AI Grader
Need help grading? Try our AI Grader for instant feedback on your assignments.

References
Alexander, M. (2017). Project management: 7 steps to on-time, on-budget, goal-based delivery.
[online] CIO. Available at: https://www.cio.com/article/2427972/article.html [Accessed 7 Jul.
2019].
Bender, M. (2010). A manager's guide to project management. 1st ed. Upper Saddle River, N.J.: FT
Press.
Bender, M. (2010). The goals of projects and project management. 1st ed. Upper Saddle River, N.J.:
Pearson Education Pub. as FTPress Delivers.
Chen, L. (2015). Continuous Delivery: Huge Benefits, but Challenges Too. IEEE Software, 32(2),
pp.50-54.
Guan, D. (2009). Conflicts in the project environment. [online] Pmi.org. Available at:
https://www.pmi.org/learning/library/project-environment-eleven-project-conflicts-7348 [Accessed
6 Jul. 2019].
Huston a, A. (2018a). Run A Sprint Retrospective That Knocks Your Team’s Socks Off (Here's How!)
- The Digital Project Manager. [online] The Digital Project Manager. Available at:
https://thedigitalprojectmanager.com/how-run-sprint-retrospective/ [Accessed 7 Jul. 2019].
Huston, A. (2018b). Learn The Scrum Ceremonies In This Stunningly Simple Guide - The Digital
Project Manager. [online] The Digital Project Manager. Available at:
https://thedigitalprojectmanager.com/scrum-ceremonies-made-simple/ [Accessed 7 Jul. 2019].
Jain, N. (2017). The 7 soft skills of successful Scrum Masters.. [online] Linkedin.com. Available at:
https://www.linkedin.com/pulse/7-soft-skills-successful-scrum-masters-neha-jain [Accessed 7 Jul.
2019].
Koops, L., Bosch-Rekveldt, M., Bakker, H. and Hertogh, M. (2017). Exploring the influence of
external actors on the cooperation in public–private project organizations for constructing
infrastructure. International Journal of Project Management, 35(4), pp.618-632.
Novák, M. (2018). Imperative versus declarative code… what’s the difference?. Retrieved from
https://medium.com/front-end-weekly/imperative-versus-declarative-code-whats-the-difference-
adc7dd6c8380
Ohlendorf, A. (2011). Conflict Resolution in Project Management. [online] Umsl.edu. Available at:
https://www.umsl.edu/~sauterv/analysis/488_f01_papers/Ohlendorf.htm [Accessed 6 Jul. 2019].
Pereiro, F. (2019). Declarative Programming: Is It A Real Thing?. Retrieved from
https://www.toptal.com/software/declarative-programming
Pitagorsky, G. (2019). Conflict is Useful, Don't Avoid It. [online] Project Times. Available at:
https://www.projecttimes.com/george-pitagorsky/conflict-is-useful-don-t-avoid-it.html [Accessed 6
Jul. 2019].
Alexander, M. (2017). Project management: 7 steps to on-time, on-budget, goal-based delivery.
[online] CIO. Available at: https://www.cio.com/article/2427972/article.html [Accessed 7 Jul.
2019].
Bender, M. (2010). A manager's guide to project management. 1st ed. Upper Saddle River, N.J.: FT
Press.
Bender, M. (2010). The goals of projects and project management. 1st ed. Upper Saddle River, N.J.:
Pearson Education Pub. as FTPress Delivers.
Chen, L. (2015). Continuous Delivery: Huge Benefits, but Challenges Too. IEEE Software, 32(2),
pp.50-54.
Guan, D. (2009). Conflicts in the project environment. [online] Pmi.org. Available at:
https://www.pmi.org/learning/library/project-environment-eleven-project-conflicts-7348 [Accessed
6 Jul. 2019].
Huston a, A. (2018a). Run A Sprint Retrospective That Knocks Your Team’s Socks Off (Here's How!)
- The Digital Project Manager. [online] The Digital Project Manager. Available at:
https://thedigitalprojectmanager.com/how-run-sprint-retrospective/ [Accessed 7 Jul. 2019].
Huston, A. (2018b). Learn The Scrum Ceremonies In This Stunningly Simple Guide - The Digital
Project Manager. [online] The Digital Project Manager. Available at:
https://thedigitalprojectmanager.com/scrum-ceremonies-made-simple/ [Accessed 7 Jul. 2019].
Jain, N. (2017). The 7 soft skills of successful Scrum Masters.. [online] Linkedin.com. Available at:
https://www.linkedin.com/pulse/7-soft-skills-successful-scrum-masters-neha-jain [Accessed 7 Jul.
2019].
Koops, L., Bosch-Rekveldt, M., Bakker, H. and Hertogh, M. (2017). Exploring the influence of
external actors on the cooperation in public–private project organizations for constructing
infrastructure. International Journal of Project Management, 35(4), pp.618-632.
Novák, M. (2018). Imperative versus declarative code… what’s the difference?. Retrieved from
https://medium.com/front-end-weekly/imperative-versus-declarative-code-whats-the-difference-
adc7dd6c8380
Ohlendorf, A. (2011). Conflict Resolution in Project Management. [online] Umsl.edu. Available at:
https://www.umsl.edu/~sauterv/analysis/488_f01_papers/Ohlendorf.htm [Accessed 6 Jul. 2019].
Pereiro, F. (2019). Declarative Programming: Is It A Real Thing?. Retrieved from
https://www.toptal.com/software/declarative-programming
Pitagorsky, G. (2019). Conflict is Useful, Don't Avoid It. [online] Project Times. Available at:
https://www.projecttimes.com/george-pitagorsky/conflict-is-useful-don-t-avoid-it.html [Accessed 6
Jul. 2019].

Prechelt, L., Schmeisky, H. and Zieris, F. (2016). Quality experience. Proceedings of the 38th
International Conference on Software Engineering - ICSE '16.
Project Manage (2013). Why Conflict Can Be a Good Thing | ProjectManage.com. [online]
Projectmanage.com. Available at: https://projectmanage.com/why-conflict-can-be-a-good-thing/
[Accessed 6 Jul. 2019].
Project Insight (2019). 5 basic Phases of Project Management. [online] Projectinsight.net. Available
at: https://www.projectinsight.net/project-management-basics/basic-project-management-phases
[Accessed 7 Jul. 2019].
Saeeda, H., Arif, F., Mehmood Minhas, N. and Humayun, M. (2015). Agile Scalability for Large
Scale Projects: Lessons Learned. Journal of Software, 10(7), pp.893-903.
Saladis, F. and Eaves, T. (2011). Leadership Techniques for the Ego-Driven Project Environment.
[online] Pmi.org. Available at: https://www.pmi.org/learning/library/leadership-techniques-ego-
driven-project-environment-6256 [Accessed 6 Jul. 2019].
SCRUM Study (2017). Various Conflict Management Techniques in SCRUM Process |
SCRUMstudy Blog. [online] Blog.scrumstudy.com. Available at:
http://blog.scrumstudy.com/various-conflict-management-techniques-in-scrum-process/ [Accessed
6 Jul. 2019].
Snijders, P., Wuttke, T., Zandhuis, A. and Newton, S. (2013). PMBOK Guide. 1st ed. Zaltbommel:
Van Haren Publishing.
Villanova University (2019). Five Phases of the Project Management Lifecycle. [online]
Villanovau.com. Available at: https://www.villanovau.com/resources/project-management/5-phases-
project-management-lifecycle/ [Accessed 7 Jul. 2019].
Vijayasarathy, L. and Butler, C. (2016). Choice of Software Development Methodologies: Do
Organizational, Project, and Team Characteristics Matter?. IEEE Software, 33(5), pp.86-94.
Warsta, J. (2016). Review on Agile Software Development. International Journal of Modern Trends
in Engineering & Research, 3(9), pp.150-158.
International Conference on Software Engineering - ICSE '16.
Project Manage (2013). Why Conflict Can Be a Good Thing | ProjectManage.com. [online]
Projectmanage.com. Available at: https://projectmanage.com/why-conflict-can-be-a-good-thing/
[Accessed 6 Jul. 2019].
Project Insight (2019). 5 basic Phases of Project Management. [online] Projectinsight.net. Available
at: https://www.projectinsight.net/project-management-basics/basic-project-management-phases
[Accessed 7 Jul. 2019].
Saeeda, H., Arif, F., Mehmood Minhas, N. and Humayun, M. (2015). Agile Scalability for Large
Scale Projects: Lessons Learned. Journal of Software, 10(7), pp.893-903.
Saladis, F. and Eaves, T. (2011). Leadership Techniques for the Ego-Driven Project Environment.
[online] Pmi.org. Available at: https://www.pmi.org/learning/library/leadership-techniques-ego-
driven-project-environment-6256 [Accessed 6 Jul. 2019].
SCRUM Study (2017). Various Conflict Management Techniques in SCRUM Process |
SCRUMstudy Blog. [online] Blog.scrumstudy.com. Available at:
http://blog.scrumstudy.com/various-conflict-management-techniques-in-scrum-process/ [Accessed
6 Jul. 2019].
Snijders, P., Wuttke, T., Zandhuis, A. and Newton, S. (2013). PMBOK Guide. 1st ed. Zaltbommel:
Van Haren Publishing.
Villanova University (2019). Five Phases of the Project Management Lifecycle. [online]
Villanovau.com. Available at: https://www.villanovau.com/resources/project-management/5-phases-
project-management-lifecycle/ [Accessed 7 Jul. 2019].
Vijayasarathy, L. and Butler, C. (2016). Choice of Software Development Methodologies: Do
Organizational, Project, and Team Characteristics Matter?. IEEE Software, 33(5), pp.86-94.
Warsta, J. (2016). Review on Agile Software Development. International Journal of Modern Trends
in Engineering & Research, 3(9), pp.150-158.
1 out of 12
Related Documents

Your All-in-One AI-Powered Toolkit for Academic Success.
+13062052269
info@desklib.com
Available 24*7 on WhatsApp / Email
Unlock your academic potential
© 2024 | Zucol Services PVT LTD | All rights reserved.