Skip to content

An experimental classroom to learn/teach algorithms and data structures with Swift

License

Notifications You must be signed in to change notification settings

trigodetRobin/SwiftAlgorithmsClassroom

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

banner.jpg

Join the chat at https://gitter.im/gmertk/SwiftAlgorithmsClassroom

A classroom where you can learn/teach common algorithms and data structures with Swift. Inspired by this blog post Always Be Coding and this repository Hapijs University.

Every few days an assignment will be given by creating an issue. You will fork this repository and send a pull request as your solution to the issue. We will do peer-review by commenting others' solutions. We will learn and teach all together.

The topics are:

  • Sorting
    • Selection sort
    • Insertion sort
    • Shell sort
    • Mergesort
    • Quicksort
    • Heapsort, heaps and priority queues
  • Searching
    • Binary search
    • Binary search trees
    • Balanced search trees like red-black trees.
  • Graph Theory
    • Graph data structure alternatives
    • Stacks and queues
    • Depth-first search
    • Breadth-first search
    • Topological sort
    • Minimum spanning trees
    • Shortest paths, and hopefully more.

It is better if you are familiar with Swift, at least read the Swift book from Apple. The assignments will provide enough information to get you started, but mostly it will not repeat the info written in the algorithms books. You are encouraged to do the research on your own. The real benefit of this project comes from the peer-review of the solutions.

If you get stuck at some point, go and check others' solutions. But don't just copy it. After you've read the solution, simply look away, and see what you can recall from you've just read. Try to implement your own solution. Usually the first time you truly understand something is when you can actually do it yourself.

When writing your solutions, follow the RayWenderlich Swift Style Guide.

Contributing

Like the idea? You could really help with any of the following:

  • Suggest content, assignments, etc.
  • Write assignments, tutorials, examples, etc.
  • Help others by reviewing their solutions.
  • Fix any bugs you found.
  • Don't forget to be respectful all the time. Please read the Contributor Code of Conduct. You agree to abide its terms by participating in this project.

About

An experimental classroom to learn/teach algorithms and data structures with Swift

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%