introduction to Clojure via ciphers

11 views
Skip to first unread message

Elena Machkasova

unread,
Apr 2, 2017, 1:00:44 PM4/2/17
to clojurebridge-curriculum, ClojureBridge Workshops
Greetings,

I just wanted to let you know that the ClojureBridge Boston group has developed and tried out a new whole-day introduction to Clojure using cryptography material: https://github.com/clojurebridge-boston/track2-ciphers

The target audience for this track is those who have experience with other  programming languages and would like to learn Clojure. It is completely self-sufficient, and introduces material from writing simple functions to hashmaps and most commonly used higher-order functions. It's a fairly "mature" approach, and those who have some, but not much, programming experience would benefit more from a gentler introduction, such as https://github.com/clojurebridge-boston/track2-functional

Of the three students who attempted it, one got through almost all of it and very much enjoyed the experience (and she only had two years of prior programming experience). The other two had a bit more of a struggle, one because of issues with Nightcode (a part of it was running NC on a very old system, but a part of it was parinfer issues which I would like to discuss later). Another student didn't have as much programming background and was moving slower, although she also seemed overall happy with her progress. 

There are still quite a few things that I would like to improve in this track:
  • I have some good feedback from a fellow mentor about how the writeup for Caesar cipher can be improved,
  • I have some ideas for introducing "reduce" earlier and more naturally,
  • There should be more detailed ideas for how to break the final cipher, including a reference to chi-square test. 
However, I will not be able to get to it until probably end of May, and in the meantime I would like to have this available to other ClojureBridge groups since it seems to be fun and engaging, while introducing a lot of Clojure functionality.

I would also greatly appreciate suggestions and PRs with improvements.

Enjoy the ciphers!

Elena

  





Yoko Harada

unread,
Apr 3, 2017, 7:55:55 PM4/3/17
to clojurebridg...@googlegroups.com, ClojureBridge Workshops
Elena,

That's awesome! I agree current main curriculum is focused on very beginners and may be short for already programmers.

We have https://github.com/ClojureBridge/workshop-projects repository. Nola and Millie created it when they organized a workshop at Clojure/conj. Maybe, two projects can be merged to that repo?

Cheers,
- Yoko

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsub...@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurebridge-curriculum.
For more options, visit https://groups.google.com/d/optout.

Elena Machkasova

unread,
Apr 3, 2017, 9:03:08 PM4/3/17
to clojurebridg...@googlegroups.com
Sounds good. Yes, this will be possible, but I also feel that it may be better to keep each project in its own repo, for easier management. 

I also would like to submit the Boston group turtles project, perhaps as a separate option, since it is quite different from the original one, and we've had good success with it. Some other groups might like it as well. 

I can get in touch with Nola and Millie and see what they prefer to do for managing various parts of the materials. 

Best wishes,
Elena

To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsubscr...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsub...@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurebridge-curriculum.
For more options, visit https://groups.google.com/d/optout.



--
Dr. Elena Machkasova
Associate Professor of Computer Science
Division of Science and Mathematics
University of Minnesota, Morris
Office: Sci 2325

Nola Stowe

unread,
Apr 3, 2017, 11:09:20 PM4/3/17
to clojurebridg...@googlegroups.com
We have a repo of workshop materials here:




--
Dr. Elena Machkasova
Associate Professor of Computer Science
Division of Science and Mathematics
University of Minnesota, Morris
Office: Sci 2325

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsub...@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurebridge-curriculum.
For more options, visit https://groups.google.com/d/optout.

Elena Machkasova

unread,
Apr 3, 2017, 11:13:33 PM4/3/17
to clojurebridg...@googlegroups.com
I'd be happy to add it there. The trouble is that since each project is originally its own repo, keeping them up to date in one repo with all changes ported from their original repos would be tricky. 

Elena





--

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsub...@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurebridge-curriculum.
For more options, visit https://groups.google.com/d/optout.



--

Nola Stowe

unread,
Apr 4, 2017, 5:04:32 AM4/4/17
to clojurebridg...@googlegroups.com
We talked about this before when we set it up. Git is very good at large repos (Linux!). Having one place makes it easy to keep the projects up to date and to find what material you want to use.




To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curr...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curr...@googlegroups.com.
--
Dr. Elena Machkasova
Associate Professor of Computer Science
Division of Science and Mathematics
University of Minnesota, Morris
Office: Sci 2325

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curr...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curr...@googlegroups.com.



--
Dr. Elena Machkasova
Associate Professor of Computer Science
Division of Science and Mathematics
University of Minnesota, Morris
Office: Sci 2325

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curr...@googlegroups.com.

Elena Machkasova

unread,
Apr 4, 2017, 8:45:09 AM4/4/17
to clojurebridg...@googlegroups.com
I like the idea of one place (although perhaps a link to the originating repo for each project would be good, too). 
Would you like me to submit a PR, or do you want to copy the project on your own? I don't think I will be making changes to either ciphers or new turtles any time soon - I would love to revisit/edit both projects, but I am completely swamped for the next couple of months. 

Elena 

To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsub...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsub...@googlegroups.com.
--
Dr. Elena Machkasova
Associate Professor of Computer Science
Division of Science and Mathematics
University of Minnesota, Morris
Office: Sci 2325

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsub...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsub...@googlegroups.com.



--
Dr. Elena Machkasova
Associate Professor of Computer Science
Division of Science and Mathematics
University of Minnesota, Morris
Office: Sci 2325

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsub...@googlegroups.com.
--

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsub...@googlegroups.com.

David Chambers

unread,
Apr 4, 2017, 8:50:11 AM4/4/17
to clojurebridg...@googlegroups.com
I believe it's possible to merge one Git project into another while retaining the full commit history. If this is desirable, I'm happy to see whether I can figure out how to do it. :)

To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsubscr...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsubscr...@googlegroups.com.
--
Dr. Elena Machkasova
Associate Professor of Computer Science
Division of Science and Mathematics
University of Minnesota, Morris
Office: Sci 2325

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsubscr...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsubscr...@googlegroups.com.



--
Dr. Elena Machkasova
Associate Professor of Computer Science
Division of Science and Mathematics
University of Minnesota, Morris
Office: Sci 2325

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsubscr...@googlegroups.com.
--

--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsubscr...@googlegroups.com.



--
Dr. Elena Machkasova
Associate Professor of Computer Science
Division of Science and Mathematics
University of Minnesota, Morris
Office: Sci 2325

Elena Machkasova

unread,
Apr 4, 2017, 8:54:35 AM4/4/17
to clojurebridg...@googlegroups.com
That would be fantastic, thank you! Would it also be possible then to push future changes? 

David Chambers

unread,
Apr 4, 2017, 9:18:06 AM4/4/17
to clojurebridg...@googlegroups.com
I think it would be best for future changes to be made in one place only. If you'd like future changes to happen in the track2-ciphers repository, I suggest not duplicating the material in the workshop-projects repository as this could lead to confusion. We could, though, link to the track2-ciphers repository from workshop-projects.

If, on the other hand, you would like to make future changes in the workshop-projects repository, it would be good to update the readme of track2-ciphers to link to the new location.

It's up to you to decide where future development will occur, Elena. Let me know how you'd like to proceed. :)

Yoko Harada

unread,
Apr 4, 2017, 10:29:08 AM4/4/17
to clojurebridg...@googlegroups.com
Elena,

We will add you to the repo so that you can maintain your materials without any frustration.

- Yoko

Elena Machkasova

unread,
Apr 4, 2017, 11:23:35 AM4/4/17
to clojurebridg...@googlegroups.com
Sounds good, thanks! I still prefer to keep a master copy in clojurebridgeboston repo (this way it's easier to maintain work-in-progress), but I will be happy to be updating the curriculum repo after every major update. 

I do hope others use it: I think it's a fun set of exercises that helps develop functional thinking in a way that suits the problem. 

Elena
Reply all
Reply to author
Forward
0 new messages