Fundimentals of programming notes