Skip to content

LutherCS/aads-class-pub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

What is this repository for

  • Advanced Algorithms and Data Structures class
  • Class notes
  • Code templates
  • Solutions (haha, no)

How do I get set up

Note: Windows users may have to use \ instead of /.

  • Clone the repository.
git clone [email protected]:LutherCS/aads-class-pub.git
  • Get updates.
git pull origin main
  • Create and activate Python virtual environment
sudo apt-get install python3.12-venv
python3.12 -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. Also, this step may not be necessary.

  • Install pythonds3 to use textbook implementations of various data structures and algorithms.
python3 -m pip install -U pythonds3
  • Optional: Install linters pylint and mypy.
python3 -m pip install -U pylint mypy
  • Optional: 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

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages