Skip to content
This repository was archived by the owner on Dec 28, 2022. It is now read-only.

temvvlena/aads-class-pub

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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@bitbucket.org:yasinovskyy/aads-class-prep.git
  • Get updates.
git pull origin main
  • Create and activate Python 3.8 virtual environment
sudo apt-get install python3.8-venv
python3.8 -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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 48.4%
  • CSS 16.9%
  • Python 14.3%
  • HTML 12.3%
  • SCSS 8.0%
  • Shell 0.1%