I originally set out this month to practise stuff and not read things but it turns out I still did quite a bit of reading and arguably not enough doing stuff.
One of the early projects I set out to do was a game based on getting the user to solve different problems in Arithmetic. It randomly displays expressions and gives the user a finite time to answer , it also scores the user based on the speed at which he/she answers. My aim for this project was to practise what I had learned using wxPython. I also intended to add more features like colours, sounds, a leaderboard, username. All of this was to practise concepts I had learnt from Python Projects. I have a working version of this game and it is on github. I did learn and I must say I feel more confident building GUIs for applications. I don’t know it all yet but I am more familiar with the process. My code could have been better planned and made better use of encapsulation, functions etc. All of these things would improve in future programs. Another thing, working on this made me think of generalizing it to a quiz game. I also thought of if it was possible to generate word problems just like I generated random expressions in this book and also generate the program to evaluate them just like I did with the eval() in python. I was skimming through Artificial Intelligence: A Modern Approach and it turns out, there is a program STUDENT that could solve word problems.
History of Mathematics. – My notes on what I learnt
I picked up this book at the spur of the moment. I had had it for a while and I figured since it was one of the A very short introduction series, it should be worth it. I was kind of disappointed, No, the book wasn’t bad. It just wasn’t what I had expected and I have to say the author warned in the preface too. The focus wasn’t on discussing Math History but more on what the field of Mathematics History is about.
Chapter 1, Mathematics: myth and history, began with the story of Andrew Wiles and tackles the idea that Math is a solitary activity. He argues that while Andrew Wiles worked in isolation on Fermat’s problem, “… he was also embedded in a community that allowed him to do so and which, when required, came to his aid.”. The main point in this chapter is “Mathematics is fundamentally and necessarily a social activity at every level”.
Chapter 2,What is Mathematics and who is the Mathematician?. “The greek word mathemata simply meant – what has been learned” – (I didn’t know this!) . Mathematics as we know it today didn’t exist. Who is a mathematician? Historically, there has been no such thing just practioners of various branches of mathematics – Arithmetician, Geometer etc.
Chapter 3, How are Mathematical ideas disseminated? People disseminate mathematics. Mathematics is spread via contact, via trade and commerce.
Chapter 4, Learning Mathematics. How was Mathematics taught? Here the author talked about how schools was organized. There is also a quite a bit of how women have learnt mathematics.
Chapter 5, Mathematical Livelihoods. Here , the evolution of mathematics as a profession is discussed. Initially, Mathematicians had patrons that supported them but eventually it became a profession where the mathematician was paid to taught other people.
Chapter 6. Getting inside Mathematics . My favourite quote here was “..we allow or expect students to follow a clear-cut path that the first explorers could not even see. If students are given the opportunity t go back to the original discoveries, they are likely to find something very different : a process of trial and error, false starts , and dead-ends; half-formed ideas, half- worked out, left to be developed by someone else, better formed ideas refined over months or years…”
Introduction to Embedded Systems – LeeSeshia. – What I learnt.
In my quest to get into Embedded systems, I discovered this book – available for free from the UC Berkeley site or simply leeseshia.org . After, reading the preface and seeing the strong emphasis on design I decided to go through the book.
The book is divided into Modelling, Design and Analysis – with chapters under each of these. Chapter 1 was an introduction to the book. Chapter 2 discusses linear differential equations which are used to model the dynamics of systems with continuous inputs and outputs. Chapter 3 discusses discrete dynamics. Here state machines are the focus. Finite State machines and Extended State machines. Chapter 4 discusses Hybrid systems. These systems have discrete and continuous dynamics. It is a system with modal modes. Each mode has an associated dynamic behavior. The simplest kind is a timed automaton. This simply keeps track of time. Chapter 5 is about composition of systems. There are some compositions that are synchronous, which means that the two machines being composed react at the same time. There is the side-by-side composition where the machines involved dont communicate. The state of the combined system is simply a cartesian product of the constituent systems. There is the synchronous cascade composition, here one machine provides input to the other machine and that input in processed to provide a final output in the same reaction.
There is also the feedback composition, some/all of the outputs of a system are feedback as inputs to the same system. Not all feedback composition are well-formed. In particular, where there is no fixed point.
Chapter 6 is on Models of Computation, to be honest, I am yet to fully get the gist of this chapter.
Chapter 7 is on the processor. Here , the details of the processors are discussed. Details like pipelining and concurrency with a particular emphasis on how these features make it hard to predict the running time of programs, which is very important in Embedded systems
Chapter 8 is on the Memory. – The memory hierarchy and its influence on program running times is discussed.
Chapter 9 is on the Input and Output. – How do peripherals talk to the processor? This is done via different protocols. There are serial interfaces and parallel ones.
Chapter 10 is on Multi-tasking.
Chapter 11 is on Scheduling
Chapter 12 is on Invariant and Temporal logic
Chapter 13 is on Equivalence and Refinement
Chapter 14 is on Reachability Analysis and Model Checking
Chapter 15 is on Quantitative Analysis
iSad.. It would seem that after chapter 9, nothing else, really stuck in my head. Sigh. I would have to re-read critically again and be able to say something concrete on them. I have decided to attempt all the exercises. I wish I could have a way of verifying my answers too.
Functional Programming in Python
I just finished this book and my impression was that it was great though there were some parts I found hard, no, unfamiliar. Functional programming is a programming style that avoids mutation of structures. Functional programming makes use of pure functions and list processing.
First thing is as much as possible encapsulate functionality; put code that does a particular thing in a function. Use list comprehension as much as possible. Use recursion when you can and other things like that
Where Good Ideas come from – Steve Johnson.
I didnt plan to read this book this month but I did and It was marvelous! You can find some of my highlights and notes here, I warn that it is very long but it is worth it. You should read yourself.
All in all, this month was good. I wasn’t always at my best. There were times I watching binge watching movies but man must rest too. :). Btw did I say I pulled Eli Bendersky’s site?(err, I just want to be able to read offline). In a sense, I am shadowing him, getting mentored indirectly.
This month, I also skimmed through some books. Like Annoted Turing. WxPython in Action, Think C++, Principles and Practice of Programming using C++.