Personal Goal - Portfolio
Personal Goal - Portfolio
Assignment name:
Assignment id:
Student Name:
Student id:
University:
Author Notes:
My goal:
In the world of information technology, being able to solve problems requires using
critical thinking, logical reasoning, and creativity. I have chosen a certain area that I want to
enhancing my capacity to efficiently write algorithms. I will create a SMART goal to direct my
work on this task, discuss its significance to me, and lay out the measures I will take to attain it.
SMART Objective:
well-functioning and effective they are, I will be able to gauge their effectiveness.
Actionable - I will take an active role in algorithm design and look for chances to hone
my abilities.
Realistic - I will set aside a set amount of time each week to focus on creating algorithms
and solicit comments. This is due to the nature of the course and the time constraints.
Time-based - Every Thursday from 7:00 pm to 11:00 pm I will set aside two hours to
The ability to write algorithms is crucial for tackling IT issues because they enable the
division of difficult jobs into manageable chunks that computers can carry out. My capacity to
solve problems will be improved, and my total IT competency will increase, if I can develop
approach, which will hone my ability to assess issues and come up with effective
solutions.
Gain Real-World Experience: Writing algorithms and getting feedback will provide me
practical experience that will help me improve my designs, learn from my mistakes, and
algorithm design, I may encourage creative thinking and broaden my toolkit for problem-
solving.
Improve Collaboration: By asking for input from others who use my methods, I can learn
Action Plan:
I will set aside time each week to study algorithm design concepts, ideal practises, and
pertinent methods using course materials, books, and online resources. To build reliable
algorithms, this will ensure a strong basis. I will choose a unique IT issue every week and use an
algorithm to resolve it. These issues can be found in homework projects, online coding
challenges, or real-world situations. I will create algorithms to address the highlighted issues
using the knowledge I have gained. When designing, I will focus on designs that are clear,
effective, and maintainable. To get critical criticism on my algorithms' usability, readability, and
efficacy, I will ask a classmate or instructor to implement them. I will be able to find my
weaknesses with the help of their advice. To analyse the benefits and drawbacks of each
algorithm, I will think back on the comments I have received. To improve the algorithms'
functionality and comprehension, I will make the necessary changes. I will keep a documentation
journal for each method, outlining its goal, strategy, and any adjustments made in response to
comprehension and enhancing my problem-solving abilities, I will practise resolving code issues
Personal Goal: By developing a new algorithm every week that solves a different IT issue, I hope
algorithms is a key component of IT issue resolution. I may become more effective at creating
algorithms.
Evidence: I went over the concepts and methods covered in the course materials for algorithm
creation. To further my grasp of best practises, I also looked at online resources. I created an
algorithm to tackle a straightforward sorting problem using this information. The bubble sort
Discussion: When developing the algorithm, I focused on the stages' readability, making sure
that each directive was clear and logically related to the one before it. I also concentrated on
enhancing the algorithm's effectiveness by reducing pointless operations. I asked a peer to test
the method after it was finished and give input on its efficiency and readability.
Reflection: The groundwork for reaching my aim was successfully laid this week, in my opinion.
I followed the guidelines by actively researching algorithm design and developing an algorithm
to address a particular IT issue. As I grew more conscious of the significance of logical thought
and accuracy in algorithm design, I could see the influence of my work. Making sure that the
algorithm was simple enough for someone who was not familiar with the problem was one of the
challenges I ran into. Based on the input I received, I altered the algorithm to address this issue,
adding more precise explanations and streamlining challenging steps. Overall, Week 1 was a
to real-world situations.
Evidence: I continued studying algorithm design in Week 2 by tackling a trickier issue. I created
an algorithm that use binary search to find a specific element in a sorted array. I described the
steps of the algorithm and provided examples to show how it works. I also asked a student for
Discussion: Careful evaluation of the criteria of the problem and the most effective strategy was
necessary when developing the binary search algorithm. I divided the search space in half with
each iteration by using the divide and conquer strategy. The criticism I received was helpful,
pointing out places where the directions should be made clearer and recommending small
Reflection: To further my progress this week, I pushed myself to tackle a more complex
challenge and construct an algorithm. In accordance with my strategy, I set aside time
specifically for developing the algorithm and requested input from others. My work had a huge
impact because it helped me grasp how algorithm efficiency may have a big impact on how well
problems are solved. I struggled to find a balance between conciseness and clarity in my
I went back to Week 1's bubble sort algorithm and added improvements to cut down on pointless
swaps and comparisons. I tried the updated algorithm with various input sizes and reported the
Discussion: While revisiting the bubble sort algorithm, I put the "short bubble sort"—an
optimised version—into practise. The algorithm might end early if the list was already sorted by
including a flag to keep track of whether any swaps were made during a pass. The efficiency of
the process was increased while the number of iterations was decreased. By comparing the
execution time and the number of comparisons made between the original and optimised
Reflection: I have the chance to improve and optimise algorithms I have already devised. To
achieve this goal, I set aside time to review the bubble sort algorithm and put my newly acquired
knowledge into practise. I was able to comprehend the significance of assessing algorithms'
effectiveness and looking at ways to improve their performance thanks to the optimisation
exercise. It was difficult to strike a balance between optimisation and code readability, but after
several revisions and input from others, I succeeded. The iterative nature of problem-solving and
the significance of continual improvement were further underscored by this event. The third
week that solves a different IT issue. Because algorithm design is a key competency in IT issue
resolution, this goal is pertinent to me. My ability to write algorithms will improve, which will
materials offered and further research on big O notation and time complexity. I used this
information to examine the temporal complexity of the binary search algorithm I created in Week
2 to put it to use. The analysis was recorded, along with the final time complexity analysis and
of its temporal complexity. During the investigation, I pinpointed the crucial steps in the binary
search algorithm and determined how many comparisons were needed at each stage. Through
this procedure, I was able to ascertain that the algorithm's time complexity was logarithmic
(O(log n)). I thought about the value of this research in terms of assessing and contrasting
to assess an algorithm's effectiveness using the ideas of temporal complexity and big O notation.
I actively used the tools at my disposal and did my own research to stay true to my objective.
algorithmic efficiency and how it affects problem-solving performance. It was difficult for me to
fully understand the notion of logarithmic complexity, but through perseverance and additional
research, I was able to get over it. My progress in honing my algorithm-writing abilities
Evidence - I studied recursive algorithms in Week 5, which is a strong algorithm design strategy.
I read the assigned readings and further research on recursion. I created a recursive algorithm to
compute the factorial of an integer using my expertise. The algorithm's execution, including the
base case and the recursive step, was documented. To confirm the algorithm's accuracy, I also put
algorithms provide a graceful means of solving difficult problems. It was necessary to define the
recursive step, which divides the problem into smaller instances, and to identify the base case,
where the recursion terminates, to develop the factorial algorithm utilising recursion. I thought
about the effectiveness and potential drawbacks of recursive algorithms, including stack
Reflection - I learned more about how recursion can be used to make complicated problems
simpler by investigating and putting into practise a recursive way to compute the factorial. To
achieve my aim, I put time and effort into learning about recursion and used the ideas I learned to
create a useful algorithm. My efforts had an effect because I became more comfortable utilising
recursion as a technique for problem-solving. I had trouble correctly identifying the base case
and making sure that the recursive step converged to the base case. I was able to overcome this
difficulty by rigorous investigation and experimentation. Week 5 marked a big turning point in
calculations in recursive algorithms. I read the assigned readings and explored further readings
the algorithm's implementation. I put the algorithm to the test with varied input sizes to gauge
programming, which stores and reuses previously computed results. The overlapping
subproblems had to be found to create the dynamic programming solution for the Fibonacci
sequence, and intermediate results had to be stored using memoization. I considered dynamic
programming's benefits, such as increased time complexity and decreased computational cost, as
for the Fibonacci sequence. To achieve my goal, I used the available resources and looked for
further reading to broaden my understanding. My efforts had a noticeable effect because I was
able to create an algorithm that was enhanced in time complexity. Through research and testing, I
was able to overcome the obstacle I faced when trying to discover the overlapping subproblems
and create the memoization technique. My ability to write algorithms really improved in week
six.
and trade-offs, I want to strengthen my algorithm creation abilities. The reason this aim is
important to me is that sorting is a fundamental computer science function, and knowing the
Evidence - I thoroughly went through the resources offered and investigated extra information on
various sorting algorithms like bubble sort, insertion sort, selection sort, merge sort, and
quicksort. I put each algorithm's major traits, time complexity, and best- and worst-case scenarios
Discussion - From data organisation to search operation optimisation, sorting algorithms are
essential in a wide range of applications. Considering elements like time complexity and
stability, the comparison study helped me to pinpoint the benefits and drawbacks of each
approach. I considered how crucial it is to select the best sorting algorithm based on the unique
Reflection - I learned more about the effectiveness and trade-offs of sorting algorithms by doing
a comparison analysis. By spending time reading and evaluating the resources offered, I stayed
true to my objective. I obtained a thorough understanding of the various sorting algorithms and
how they are used, so the influence of my work was obvious. Understanding the specifics of
some algorithms' implementation presented a problem for me, but I was able to get over it with
issues, were the subject of Week 8's discussion. In addition to thoroughly studying the resources
offered, I also investigated further reading on graph traversal techniques like depth-first search
(DFS) and breadth-first search (BFS). I put BFS and DFS algorithms into practise and examined
how they performed on various graph types. In addition to providing visualisations of the
algorithm's use on sample graphs, I also provided documentation for the code implementation.
Discussion - When it comes to tackling issues involving networks and relationships, graph
algorithms are extremely effective tools. I was able to comprehend the fundamental ideas and
practical uses of BFS and DFS algorithms by implementing them. I thought about how BFS and
DFS are different from one another, considering elements like memory utilisation, temporal
Reflection - The focus of week eight was on investigating graph algorithms and their uses. I
gained a deeper comprehension of how BFS and DFS explore graphs and find linkages by
implementing them. I actively used the tools at my disposal to further my knowledge while
staying true to my objective. I received hands-on experience using graph algorithms and saw
their efficacy in resolving graph-related issues, so the impact of my work was clear. Visualising
the algorithm's operation on intricate graphs presented a hurdle to me, but I was able to
Evidence: I carried out my dynamic programming research again, this time concentrating on
more complex ideas and applications. I read the materials that were provided and more materials
on the knapsack issue, overlapping subproblems, and optimal substructure, among other subjects.
For the knapsack issue, I created a dynamic programming solution and laid down the code for
doing so. I also talked about the time and space complexity of the algorithm and gave a thorough
dynamic programming is best illustrated by the knapsack problem. The best substructure had to
be found, a defined solution for dynamic programming had to be developed and Using
memoization to reduce calculation duplication and recursive stages. I thought about how
Reflection - I continued to investigate dynamic programming by going more deeply into its
programming to address optimisation issues by creating a solution for the knapsack problem. I
actively used the tools at my disposal and looked for more information to further my education
while I pursued my objective. The results of my work were noticeable because I was able to
improve the time complexity and effectiveness of the knapsack problem's method.
Evidence - In Week 10, I concentrated on learning about greedy algorithms, which take a new
on several greedy algorithms, including the activity selection problem and the least spanning tree
problem, was thorough, and I also investigated extra resources. I applied a greedy approach to
the activity selection problem and provided a thorough explanation of the algorithm's steps and
time complexity.
Discussion: Greedy algorithms provide a straightforward but effective method for solving issues
by selecting locally optimal options at every stage to arrive at a perfect outcome overall. I was
able to grasp the fundamental ideas and benefits of this method by applying it to the activity
selection problem. I thought about how critical it was to recognise the greedy option and
Reflection: Week 10 was when I first started investigating the uses of greedy algorithms. I
obtained actual expertise utilising this method to address optimisation issues by using the activity
selection problem to build the greedy approach. I actively used the tools offered and did
additional study to further my understanding while staying true to my goal. I was able to
construct a greedy algorithm and arrive at an ideal solution to the activity selection problem,