Skip to content

🌱For University Malaya (UM), Course Code WIA1002 (Data Structure). Include notes, questions, source code and explanation for Tutorials/ Labs (UM-WIA1002).

License

Notifications You must be signed in to change notification settings

fyiernzy/UM-WIA1002

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WIA1002 (Data Structure)

Welcome to the WIA1002 (Data Structure) Github repository, which contains a range of study materials for the course.

WIA1002 is offered by the Faculty of Computer Science and Information Technology (FCSIT) at the Universiti Malaya (UM) in Malaysia. In this repository, you will find notes, questions, source code, and explanations for the Tutorials and Labs (UM-WIX1002) that accompany the course.

To get started, feel free to browse through the materials and use them to supplement your learning. Hopefully that you find this repository to be helpful and informative. If you have any questions or suggestions, please do not hesitate to reach out to me.

last_update_shield license_shield

Couse Introduction

In this course, we will be exploring data structures and algorithms using the Java programming language.

Throughout the course, we will learn about fundamental data structures such as LinkedList, Stack, Queue, BinarySearchTree, and Graph, as well as popular algorithms like Bubble Sort, Insertion Sort, Selection Sort, and Merge sort. To enhance your understanding of these topics, you will also be required to implement basic versions of these data structures and algorithms.

This course is ideal for freshmen who are taking the WIA1002 course or WIA1002 learners who are looking to improve their programming skills. By the end of this course, you will have a solid understanding of data structures and algorithms, which will help you excel in your future programming endeavors.

Repository Introduction

This repository contains study materials for the WIA1002 course, including notes, questions, source code, and explanations for Tutorials/Labs (UM-WIX1002). It is worth noting that this repository contains two versions of the Lab: Version1 and Version2.

Version1 is the main Lab used throughout the course. It requires students to implement data structures and test them to ensure they function correctly. Version2 is an older version of the Lab, but it is more challenging and provides a deeper understanding of intriguing and typical algorithmic puzzles such as N Queen Problem, Maze Problem, and well-known algorithms including Quick Sort, Merge Sort, and Heap Sort. In addition, we will explore the shortest path algorithm in Graph, such as Bellman-Ford Algorithm, Dijkstra's Algorithm, and A* algorithm.

In a nutshell, Version1 is ideal for building a solid foundation of data structures, while Version2 is suitable for those who want to learn more about data structures and algorithms. Version2 is also a great choice for those who are interested in competitive programming.

Some directories in this repository may contain external JAR (Java Archive) files to provide full functionality of the code. You may download them and add them to the class path of your Integrated Development Environment (IDE). Please refer to the following documentation for more information:

Guidance

About README.md

Some of the directories in this repository contain README.md files, which provide detailed explanations of the questions and approaches, as well as comparisons between different approaches. These files can be used to gain a comprehensive understanding of the code and its functionality.

Forking the Repo

To make it easier to access the repository even without an internet connection, you can fork the entire repository. By forking, you can contribute to the repository by adding more functionality, simplifying the code, adding test units, and more. You can refer to the article Fork a Repo for more details on how to fork a repository.

Star the Repo

Don't forget to star this repository to receive the latest updates. The repository may be updated from time to time to make the code simpler, add comments, add README.md files, or even add self-written notes to help others understand the code better.

Contribution

Should you wish to contribute to this repository, feel free to create a pull request. To know more about pull request and how to do it, please refer to the following GitHub Documentations: