Skip to content

Ejemplos de uso de la libreria DISCLib para ISIS1225 Uniandes

License

Notifications You must be signed in to change notification settings

ISIS1225DEVS/ISIS1225-Examples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DISCLib Cookbook

Contributors Forks Stargazers Issues License

This repository contains code examples of the different ADTs in the DISCLib library for the course Data Structures (#EDA) and Algorithms at Universidad de los Andes in Bogotá D.C. Colombia. This code is part of the academic resources of the course and its intent is to give the students ideas and notions about how to use the library in their laboratories and projects.

This repository is part of the data structure and algorithms (#EDA) teaching framework at Universidad de los Andes. The repository was developed by faculty professors and staff in the Department of Systems and Computer Engineer (#DISC) and uses the Non-Object-Oriented Python library DISCLib.

DISClib · Report Bug · Request Feature

Table of Contents (up to date)

  1. DISCLib Cookbook
    1. About The Project
      1. Structure
      2. 🚧 Data sources 🚧
    2. Usage
    3. Contact and support
    4. Contributing
    5. License
    6. Authors and acknowledgment

About The Project

This repository is the Cookbook for the data structures and algorithms (#EDA) course at uniandes, it contains examples and code samples for the use of the different ADTs in the DISCLib library.

IMPORTANT This is a work in progress and is part of a teaching framework for undergraduate college students at Universidad de los Andes. This project Is NOT intended as a full-functional source code project.

🚧 🚧 🚧 🚧 🚧 THIS PROJECT IS UNDER CONSTRUCTION!!! 🚧 🚧 🚧 🚧 🚧

Beware of the 🚧 emoji as it marks the sections still under construction in the repository.

Back to top

Structure

This repository has the following structure:

  1. DISClib Root folder with the official course library. For more on its implementation visit the DISClib Repository.

  2. Examples Folder with the Python scripts. In here the students can check code examples for the different ADTs in the DISCLib API.

    1. M1 Folder with the Python scripts for the first module of the course consisting of examples for the ADT List with Array List, Linked List, Queue, Stack, and the sorting algorithms.
      1. Read CSV File Python script with an example of how to read a CSV file and store the data in a list.
      2. List use Python script with an example of how to use the List ADT (array and single linked).
      3. Sortings Python script with an example of how to use the sorting algorithms in the DISCLib library.
      4. Queue use Python script with an example of how to use the ADT Queue with ADT List.
      5. Stack use Python script with an example of how to use the ADT Stack with ADT List.
    2. 🚧 M2 🚧 Folder with the Python scripts for the second module of the course consisting of examples for the ADT Map with the collision resolution techniques Separate Chaining and Linear Probing, and an example using both Hash Tables and Lists.
      1. 🚧 Map use 🚧 Python script with an example of how to use the ADT Map with Linear Probing and Separate Chaining.
      2. 🚧 Hash Tables + Lists 🚧 Python script with an example of how to use the Hash Tables of the ADT Map with the ADT List.
    3. 🚧 M3 🚧 Folder with the Python scripts for the third module of the course consisting of examples for the ADT Ordered Map (OMap) with the Binary Search Tree (BST) and Red-Black Tree (RBT) implementations, and an example usingh Binary Trees, Lists, and Hash Tables.
      1. 🚧 OMap use 🚧 Python script with an example of how to use the ADT OMap with the BST and RBT implementations.
      2. 🚧 Tree Search 🚧 Python script with an example of how to make search in the Binary Search Tree (BST) and Red-Black Tree (RBT) implementations.
      3. 🚧 OMaps + ADTs 🚧 Python script with an example of how to use the BST and RBT implementations in the ADT OMap with the ADT List and ADT Map's Hash Table.
      4. 🚧 MinPQ use 🚧 Python script with an example of how to use the ADT MinPQ of the DISClib library.
    4. 🚧 M4 🚧 Folder with the Python scripts for the fourth module of the course consisting of examples for the ADT Graph with the adjacency list, several graph algorithms such as Dijkstra, Bellman-Ford, and Kruskal, and an example using Graphs, Lists, and Hash Tables.
  3. 🚧 Data 🚧 Folder with CSV data files to load into the different Python scripts.

    1. Samples Folder with CSV data files to load into the different Python scripts. In here the students read directly each file's data to understand its use in the example scripts.
      1. Pokemon CSV file with a sample of the Pokemon data set.
  4. 🚧 Docs 🚧 Folder with relevant documents and the CSV data profiles for the different ADT examples.

    1. Data Profiles PDF file with the data profiles for the different ADT examples.

Back to top

🚧 Data sources 🚧

We use the following datasets in the examples of this repository:

  1. The first and second modules use the Pokemon from Kaggle. A data's copy is in the Data/Samples folder.

Usage

To use this repository, you need to follow the recomendations below:

  • Fork the repository to your own GitHub account.
  • Clone the repository to your local machine.
  • Open the repository in your favorite IDE (We prefer VS Code).
  • Run the Python scripts in the Examples folder. Each course module has its own folder with the corresponding examples. For detailed information on each example script, check the Structure section.
  • For detailed information about the datasets check the Data and Docs folders.
  • For detailed information and documentation of the different ADTs, visit the DISClib Repository.

Back to top

Contact and support

For further information and contact, use the following links:

If you require further information, please contact us via this email

Back to top

Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this project better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

Don't forget to give the project a star! Thanks again!

  1. Fork the Project.
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature).
  3. Commit your Changes (git commit -m 'Add some AmazingFeature').
  4. Push to the Branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

Back to top

License

Copyright 2020, Departamento de sistemas y Computación, Universidad de Los Andes. Developed for the class "ISIS1225 - Estructuras de Datos y Algoritmos" or "ISIS1225 - Data Structure and Algorithms" in english.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more information go to GNU ORG.

Back to top

Authors and acknowledgment

  • Dario Correal is the original author and main developer of the library.
  • Santiago Arteaga is a contributor and the repository administrator.
  • Luis Florez is a contributor and developed examples and tutorials for the library.
  • Daniel Ángel is a contributor and developed examples and tutorials for the library.
  • Jesus Dávila is a contributor and developed examples and tutorials for the library.
  • Melissa Castañeda is a contributor and developed examples and tutorials for the library.

Back to top

About

Ejemplos de uso de la libreria DISCLib para ISIS1225 Uniandes

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages