DEV Community

Siva Sankaran S
Siva Sankaran S

Posted on

How to Design Program - Learning Experience

Out of curiosity and desire for learning computer science deeply, I have started ossu curriculum. I am already 10+ years experienced software developer working in dotnet ecosystem. I have skipped the introduction courses and into the "Core Programming" which covers software design, programming paradigms and various important topics in programming.

Currently I am doing the second week of the course "Systematic Programming Design". This course has created a separate programming language for the sake of course itself. The main purpose of the language is to teach the students about programming. This course is based on the book "How to Design Program".

Among programming introduction books/courses HtDP and SICP are in a separate league. They insists on learning the basics, fundamentals of programming rather than the nitty gritty of programming languages or its tools. And addition to these they(both HtDP&SICP) emphasize on important but common/abstract topics like recursion. This is my opinion on going through few pages of SICP and HtDP books. To put it succinctly, they deals with more permanent and pervasive things of programming. This is amazing for someone who is in beginning stages of programming. I learned about typing, programing paradigms much later in my journey of programming and it's perfectly fine.

But HtDP took a diversion from the SICP on easing out the process of learning as per the opinions of authors. I agree HtDP is better than SICP to take it first.

So far spending 5 hours per week for 2 or 3 weeks, I have covered the BSL the language used in this book, a recipe on How to design function, a simple recipe on How to design simple data. To a seasoned programmer this might look like silly. But What I appreciate is this course teaches good habits of programming in the very early stages of programming learning journey. The habit is unit testing. Literally it teaches Test-driven development.

One more thing to tell is the BSL (which is a trimmed down version of Scheme, in turn it is a dialect of list) is the very easiest language to learn since it's keywords, programming constructs were very small. You have to use these to build complicated programming concepts like enumeration and so on. This is kind of playground for me and I looking for having fun :)

I will keep posted about my experiences in following days. Thanks

Top comments (0)