I'm Loh Hao Wei (B122510451)
Web Developer
Hi, I’m from Negeri Sembilan. I studied Metallurgy Engineering at UniMAP and I'm now continuing my studies Computer Engineering at Universiti Teknikal Malaysia Melaka (UTeM). I like learning by doing, so I enjoy things like programming, machining, and drawing. I aim to create efficient, reliable, and scalable software that combines logic and creativity. In my free time, I play games, take photos, and play ping pong.
Solving
What I Do To Sharpen My Programming Skills
My programming skills improve through regular practice. I use logic and I follow programming rules when I write code. I learn such as C++ using learning materials from GeeksforGeeks, and this helps me understand the basic rules and structure of the language. I include daily coding challenges in my routine, and this helps me improve my thinking. This practice makes it easier for me to see patterns in code. It also helps me find and fix errors.
Some video games include puzzles that use code. I use platforms such as Codédex and Codewars, and they give problems that require real coding solutions. I play these games, and this builds my attention to detail. This process is similar to real debugging in programming. I look for mistakes, and I fix them in the correct order. I also try to use fewer lines of code to save resources.
Personal projects also support my learning so I try to build an app or a website to improve my skills. I do search for answers and test new ideas when problems often appear during development. Beside that, coding communities also play a role. I use GitHub such as C++ topic community to view real projects.
Geeks for Geeks
Github Community
Personal Reflection
Technical and Personal Growth
I learned the basic concepts of data structures and algorithms such as Big-O notation, arrays, stacks, queues, and sorting. I also learned how to use C++ better. Personally, I became more confident in problem solving and working with others.
Group Project Challenges
The main challenge was understanding the problem at the beginning and managing different ideas from team members. We discussed together, shared tasks, and helped each other. Good communication helped us complete the project successfully.
Learning Experience
Discussions with friends during class and on Padlet helped me understand topics more clearly. When we shared ideas and asked questions, learning became easier and more interesting. Group work also helped me learn from others.
Contributions
By sharing my thoughts and helping in discussions, I understood the topics better. Explaining ideas to my friends also helped them understand. This made learning more active for everyone.
Learning Journey
During class, I listened to the lecturer, discussed with friends, and took part in activities. The class environment was supportive and comfortable. This helped me stay focused and motivated to learn.
Learning Experience With Lecturer
Dr. Fajar explained complex topics in a clear and simple way. His guidance helped me understand difficult concepts. He also encouraged discussion and student participation.
Benefit in Future Courses
The skills learned in this course will help me in future programming subjects. Understanding data structures and algorithms is important for my career. It also improved my teamwork and communication skills.
Mid Term Reflection
After mid term, this course helped me build a strong foundation in C++ and allowed me to understand a lot of key concepts of data structures and algorithms. Dr Fajar's guidance made complex topics easier to understand. I still not very good at coding. I think I should do a lot of exercise with my friends to discuss about it with the topic don't so good at it such as class and queue. Last, I also use the Padlet platform for some notes to throughtout the course.
Conclusion
At the end of the course, this course has helped me build a strong foundation in C++ and allowed me to understand a lot of key concepts of data structures and algorithms. The group project was challenging at first, but we completed it successfully with great teamwork and communication. Working with my friends and engaging in class discussions was a fun and exciting experience and overall was a great learning experience. Dr. Fajar's guidance made complex topics easier to understand. Overall, this experience has strengthened both my technical and teamwork skills, which will benefit me in future studies and my career. I am truly grateful to have Dr. Fajar delivered this subject and was grateful to my peers for helping me throughout the course by engaging and sharing in the Padlet. Thank you all! 😶🌫️
Notes
Introduction to Data Structures and Algorithm Analysis
An algorithm is your step-by-step plan or instruction manual and data structure is how you organize your tools and materials to make following that plan efficient.
Array
An array is a collection of elements stored at contiguous memory locations. It's one of the most basic and widely used data structures in computer science.
Abstract Data Type (ADT)
An ADT is a model for a data structure that defines what operations are performed but not how they're implemented.
Stack
A Last-In-First-Out (LIFO) linear data structure where elements are added and removed from the top.
Queue
A queue is a data structure that follows the First In, First Out (FIFO) principle. Elements are added at the Rear.
Sorting Algorithms
A sorting algorithm is a set of instructions in computer science that organizes elements of a list or array into a specific sequence, such as numerical or lexicographical (alphabetical) order.
Searching Algorithms
A searching algorithm is a step-by-step procedure used to find a specific item or value within a collection of data. These algorithms are fundamental in computer science, used in applications from databases and web search engines to artificial intelligence and GPS navigation systems.
Linked List
A linked list is a fundamental data structure where data elements (nodes) are linked sequentially, not necessarily in contiguous memory, with each node holding its data and a pointer (link) to the next node, allowing for efficient dynamic resizing, insertions, and deletions compared to static arrays.
Tree
A tree is a hierarchical data structure consisting of nodes connected by edges. It is used to represent hierarchical relationships between elements.