UNDERSTANDING THE FUNDAMENTALS OF SOFTWARE PROGRAMMING