sumanchapai / aads-class-pub

Advanced Algorithms and Data Structures class

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

README

What is this repository for

  • Advanced Algorithms and Data Structures class
  • Class notes
  • Code templates
  • Solutions

How do I get set up

Note: Windows users may have to use py -3 instead of python3 and \ instead of /.

  • Clone the repository.
git clone git@github.com:LutherCS/aads-class-pub.git
  • Get updates.
git pull origin main
  • Create and activate Python 3.9 virtual environment
sudo apt-get install python3.9-venv
python3.9 -m venv .venv
source .venv/bin/activate
  • Specify PYTHONPATH in .env
PYTHONPATH=.

Note that .env is excluded from version control and has to be added to each copy of the repository

  • Install pythonds3 to use textbook implementations of various data structures and algorithms.
python3 -m pip install -U pythonds3
  • Install linters pylint and mypy.
python3 -m pip install -U pylint mypy
  • Install formatter black.
python3 -m pip install -U black
  • Install testing framework pytest and pytest-timeout plugin.
python3 -m pip install -U pytest pytest-timeout
  • Install colorama that is used to highlight output.
python3 -m pip install -U colorama
  • Run a project
python3 src/projects/module/file.py
  • Test a project.
python3 -m pytest tests/projects/module/test_file.py
  • Check code coverage
python3 -m pytest --cov tests/
  • Generate the presentation
pandoc -s -i --slide-level=2 -t revealjs topic.md -o topic.html
  • Prepare the assignment

Note: module name (hello), file name (hello_main), and function name (greet_by_name) don't have to match.

  • Edit src/exercises/hello/description.md.
  • Edit src/exercises/hello/hello_main.py.
  • Edit tests/exercises/hello/test_hello.py.

Topics

References

Text Editors and IDEs

Popular development environments include the following:

Tools and Utilities

Python Basics

Exception Handling

Object-Oriented Programming

Algorithm Analysis

Basic Data Structures

Recursion

Searching Algorithms

Sorting Algorithms

Trees

Graphs

About

Advanced Algorithms and Data Structures class


Languages

Language:Python 100.0%Language:Shell 0.0%