Lecture notes for Programming Abstractions for Computer science's students