0% found this document useful (0 votes)
43 views13 pages

Personal Goal - Portfolio

The document outlines a student's personal goal to improve their algorithm writing skills over 4 weeks. Each week, the student will develop a new algorithm to solve a different IT issue. They establish SMART goals and create an action plan that involves researching concepts, developing algorithms, getting peer feedback, and documenting progress. In week 1, the student creates a bubble sort algorithm and receives feedback. In week 2, they create a binary search algorithm and again get feedback. In week 3, they optimize the bubble sort algorithm. In week 4, they analyze the time complexity of their binary search algorithm using Big O notation. The student reflects on lessons learned each week toward strengthening their algorithm skills.

Uploaded by

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

Personal Goal - Portfolio

The document outlines a student's personal goal to improve their algorithm writing skills over 4 weeks. Each week, the student will develop a new algorithm to solve a different IT issue. They establish SMART goals and create an action plan that involves researching concepts, developing algorithms, getting peer feedback, and documenting progress. In week 1, the student creates a bubble sort algorithm and receives feedback. In week 2, they create a binary search algorithm and again get feedback. In week 3, they optimize the bubble sort algorithm. In week 4, they analyze the time complexity of their binary search algorithm using Big O notation. The student reflects on lessons learned each week toward strengthening their algorithm skills.

Uploaded by

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

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

concentrate on this semester to improve my problem-solving skills. This component refers 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:

 Specific - I will develop my algorithmic writing skills by developing a brand-new

algorithm for a different IT issue every week.

 Measurable - By having someone use my algorithms and provide me feedback on how

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

write algorithms and gather comments.

Explanation and Relevance:

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

algorithms more effectively. By focusing on this aspect, I aim to:


 Improve Logical Thinking: Writing algorithms necessitates a methodical and disciplined

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

become a better problem-solver.

 Encourage Creativity: By exploring various approaches to IT challenges through

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

to better express my ideas and advance my collaboration abilities in a team environment.

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

criticism, to track my development and further my understanding. To strengthening my

comprehension and enhancing my problem-solving abilities, I will practise resolving code issues

utilising tried-and-true procedures from various fields.

Week 1: Establishing the Goal

Personal Goal: By developing a new algorithm every week that solves a different IT issue, I hope

to strengthen my algorithmic writing skills. This objective is important to me because creating

algorithms is a key component of IT issue resolution. I may become more effective at creating

logical and structured answers to challenging situations by improving my ability to write

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

method was employed by the algorithm.

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

successful beginning to achieving my objective because it enabled me to apply conceptual ideas

to real-world situations.

Week 2: Algorithm Refinement

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

feedback, who used the algorithm and offered insightful comments.

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

changes to boost productivity.

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

algorithm's instructions, and the criticism I received helped me improve. My problem-solving


skills have improved because to the iterative process of getting input and modifying my

algorithms. Overall, Week 2 was an important step towards my goal.

Week 3: Algorithm Optimization

Evidence: I concentrated on algorithm optimisation to raise their effectiveness and performance.

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

results to evaluate its efficacy.

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

versions, I carefully examined the impact of the optimisation.

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 of my path towards accomplishing my goal saw a major advancement.

Week 4 - Algorithm Complexity Analysis


Personal Goal: I want to become a better algorithm writer by writing a new algorithm every

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

help me create logical, well-organized solutions to challenging issues more quickly.

Evidence: I concentrated on examining the complexity of algorithms in Week 4. I read the

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

the step-by-step breakdown.

Discussion: Determining an algorithm's effectiveness and scalability requires an understanding

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

various algorithms for resolving comparable situations.

Reflection - I focused on developing my knowledge of algorithm complexity analysis. I was able

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.

The results of my efforts were noticeable as I deepened my understanding of the significance of

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

continued in the fourth week.


Week 5: Recursive Algorithms

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

it to the test with a variety of inputs.

Discussion - By partitioning larger, self-similar problems into smaller, subproblems, recursive

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

overflow when dealing with big input sizes.

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

my quest to become a better algorithm writer.

Week 6: Dynamic programming


Evidence - In Week 6, I studied dynamic programming, a method for reducing unnecessary

calculations in recursive algorithms. I read the assigned readings and explored further readings

on dynamic programming. I created a dynamic programming approach to determine the

Fibonacci sequence using my knowledge. The overlapping subproblems and usage of

memoization to store previously calculated solutions were highlighted in my documentation of

the algorithm's implementation. I put the algorithm to the test with varied input sizes to gauge

how effective it was.

Discussion - Recursive algorithms can be made more efficient by employing dynamic

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

well as its applicability to a variety of issues.

Reflection - My investigation of dynamic programming, a method that boosts the effectiveness

of recursive algorithms, took place in Week 6. I improved my comprehension of how

memoization can prevent repeated computations by creating a dynamic programming solution

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.

Week 7: Sorting Algorithms


Personal Goal - By researching various sorting algorithms and comprehending their effectiveness

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

various sorting algorithms will help me be a better problem solver.

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

into a comparison study sheet.

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

requirements and limits of an issue.

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

thorough study and research.

Week 8: Graph Algorithms


Evidence - Graph algorithms, which are crucial for resolving network and relationship-related

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

complexity, and the order in which nodes are explored.

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

overcome it through experimentation and the use of visual aids.

Week 9: Dynamic programming II

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

description of how it works.

Discussion: By segmenting optimisation issues into overlapping subproblems, dynamic

programming offers a potent method for resolving optimisation issues. An application of

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

dynamic programming works well to solve challenging optimisation challenges.

Reflection - I continued to investigate dynamic programming by going more deeply into its

sophisticated ideas and uses. I improved my comprehension of how to use dynamic

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.

Weekly 10: Greedy Algorithms

Evidence - In Week 10, I concentrated on learning about greedy algorithms, which take a new

approach to problem-solving by making locally optimum decisions at every stage. My research

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

demonstrate that it was the best one for a particular issue.

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,

demonstrating the influence of my effort.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy