weaversa / cryptol-course

The purpose of the course is to teach students how to program in Cryptol, a domain specific language for cryptography.
BSD 3-Clause "New" or "Revised" License
25 stars 13 forks source link

Layer Cake #143

Closed WeeknightMVP closed 3 years ago

WeeknightMVP commented 4 years ago

Adding "breadcrumbs" to the main modules is helpful in ushering along course participants, but for some of the optional labs with multiple Cryptol modules (Cryptol and SAW Demos, Salsa20, etc.), it seems abrupt to go from enjoying a Caesar demo to rushing along to Salsa20, for example. The Transposition lab has the opposite problem, where participants have to go through all the different ciphers before getting to the Capstone lab. Perhaps there should be multiple layers of navigation: one to traverse multiple modules of a lab, and another to traverse the labs, perhaps with additional links to optional labs where applicable. Navigation is an interesting problem...

weaversa commented 4 years ago

I agree we should do this.

AssemblyZig commented 4 years ago

I played at integrating navigation links a few weeks back, using the markup link mechanism. The results were annoying at best: relative links were interpreted differently in straight browsing and in the GitHub interface.

Cheers, Zig

On Sat, Oct 3, 2020, 1:24 PM weaversa notifications@github.com wrote:

I agree we should do this.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/weaversa/cryptol-course/issues/143#issuecomment-703153226, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACRABROPWHXY7WS3R7LWR53SI527RANCNFSM4RVKETUQ .

weaversa commented 3 years ago

It's likely that I made some mistakes...feel free to reopen if you find something that needs fixing.

WeeknightMVP commented 3 years ago

A good start.

In general, the "layer cake" is a nested digraph comprising a layer of labs and a layer of components within each lab, with a recommended path over some components of multiple labs and a thorough path over all components within each lab. Presently, the recommended path comprises one component per lab (Salsa20 is the only critical lab with an extra component, Salsa20Props).

More specifically,

If we're up for some...exercise, we could depict thorough paths graphically within each multi-component lab and/or check the consistency of navigation in a CI script using metadata.

weaversa commented 3 years ago

Thanks for having another go @WeeknightMVP. If you make a PR I will help out.