Foreword
Hi! I'm Thomas.
I am writing A Bit of OCaml with the hope to address the two following issues:
A Bit of OCaml is not the following:
It is totally possible to learn about all of the material covered in A Bit of OCaml by simply Googling each of the topics, but I know that it's difficult to even know the vastness of what I don't know about Computer Science. So I hope A Bit of OCaml helps people both learn a bit more about what's out there and develop some additional breadth that they can draw from when they go exploring themselves.
As for the exact structure of A Bit of OCaml, you can find a more detailed breakdown using the side nav bar or the index. But briefly, A Bit of OCaml is split into 5 parts:
I am writing A Bit of OCaml with the hope to address the two following issues:
- I was an undergraduate Teaching Fellow for CS51: Abstraction & Design, the second semester Introduction to Computer Science course at Harvard. It is a great course that has a lot to offer, but it has very little web presence. A Bit of OCaml hopes to adapt the structure of the course for the general public and for the internet.
- As I've attempted to study CS, I've found that the online material that I've found is usually aimed at one of two audiences: complete beginners or proficient programmers. Which for "early programmers" like me is a bit disheartening. A Bit of OCaml aims to provide some content and structure for early programmers who already know one or two languages and want to explore some other areas of Computer Science.
A Bit of OCaml is not the following:
- A specific resource on any one topic. For any topic that you can think of, there is someone smarter and better at it than me that has already written about it.
Instead, A Bit of OCaml hopes to provide more of a structure for all of those topics. In addition, I'll provide a general introduction for each topic. Finally, I'll provide a wealth of links to more in-depth resources (written by those smarter people) on each topic, be it recursion or first class functions or anything else. - A replacement for CS51. CS51, like most good courses, provides not just material, but it also provides comprehensive practice in the forms of problem sets, feedback from awesome staff, answers to difficult questions, and a room full of amazing classmates. It is difficult to replicate any of that online, so I'll just try and focus on the first part, the material.
It is totally possible to learn about all of the material covered in A Bit of OCaml by simply Googling each of the topics, but I know that it's difficult to even know the vastness of what I don't know about Computer Science. So I hope A Bit of OCaml helps people both learn a bit more about what's out there and develop some additional breadth that they can draw from when they go exploring themselves.
As for the exact structure of A Bit of OCaml, you can find a more detailed breakdown using the side nav bar or the index. But briefly, A Bit of OCaml is split into 5 parts:
- An Introduction to Everything. (Introduction to A Bit of OCaml, Why Functional Programming/OCaml, Setting Up Your Programming Environment, What is Functional Programming, etc.)
- Learning Basic OCaml
- Functional Programming and Computer Science Concepts
- Engineering and Design Principles
- Object Oriented Programming