Computer programming for beginners: Understand how it works

No previous experience required! Learn the basic principles that will ease your further development as a programmer.
4.0 (10 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
1,090 students enrolled
Take This Course
  • Lectures 21
  • Length 4 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 5/2016 English

Course Description

This course helps you understand how computer programming works. Here, I will introduce you to the basic principles of programming. You will develop your logical thinking, while learning how to design algorithms.

Becoming a programmer(software developer) does not mean to just learn a programming language. Nope! It means to:

  1. Learn to think like a programmer,
  2. understand how programming works,
  3. learn any programming language,
  4. practice, practice, practice

This course will help you with points 1 and 2. The course does not cover any programming language or development environment. This course is meant to be taken before learning a specific programming language.

I designed this course for complete beginners, because I have seen too many students starting from point 3 and not understanding what they are doing. I recommend this course to all beginners at our live courses and if you are just starting with computer programming, I also recommend it to you!

I am very keen on examples. Every time when I explain something new, I supplement it with examples. Another key to understanding is exercise. I prepared questions, exercises or practice problems after each lesson.

By the end of this course you will understand:

  • How the computer represents and handles information
  • How to design an algorithm, using flowcharts
  • Data types, operators, Variables, Decisions, Loops, Arrays and matrices

After this course you will be ready to learn any programming language faster, with deeper understanding.

What are the requirements?

  • No special requirements for this course.

What am I going to get from this course?

  • Understand how programming works
  • Create algorithms, using flowcharts
  • Develop your "programming thinking"
  • Convert numbers from one numeral system to another
  • Understand how computers handle data and programs

Who is the target audience?

  • For students who want to learn programming, but have no previous knowledge
  • For students who want to understand how programming works
  • For you if you want to improve your logical thinking
  • Learn how to design algorithms, using flowcharts
  • the course is NOT FOR YOU if you already have good understanding of the above subjects

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: About this course and how to use it

You made the right decision!

Course scope and contents.

Course resources - video lessons, pdf presentations, graphics, exercises.

Section 2: Numeral Systems for Programmers

Recall what exponentiation is. Learn how positional numeral systems work. Introduction to binary and hex.


Answers to the exercises from the last lesson


Learn to convert numbers between any two numeral systems.

Learn why programmers need to know binary and hex.

Section 3: Computer Data

Learn about the basic data types and their characteristics.


Learn how the data is represented in the computer:

  • Binary
  • Signed numbers
  • Floating Point Numbers - IEEE-754
  • Complete/Incomplete bytes
  • Character codes - ASCII, Unicode, escape sequences
  • String - the null character
  • Boolean
Section 4: Human-Programming-Machine Language. How the hardware interacts with your code
  • What a software developer needs to know about the computer hardware?
  • Storage
  • Memory
  • CPU

Learn how a human-like language is executed by the computer. Learn about

  • Machine Language
  • Programming Language
  • Compilation
  • Interpretation
  • How is a program executed
Section 5: Saving and manipulating data
  • What is a variable?
  • Initialization
  • Type, Value, Size, Address
  • Naming a variable

  • Operators and Operands
  • Sign
  • Arithmetic
  • Assignment
  • Comparison

Answers and explanations for the questions and exercises from the "Math Operators" lesson.

Section 6: Algorithms and Flowcharts
  • What is an algorithm?
  • What is a flow chart?
  • How we use flow charts to describe algorithms?
  • The best practices when creating algorithms.

Logical NOT, AND, OR, XOR

  • What is a loop?
  • Pre-condition
  • Post-condition
  • Examples and exercises

A practical lesson on nested loops. Here we learn to organize loops in more complex algorithms.

Also you will understand how nesting affects the speed performance of a program.


Solutions to the exercises of the previous lesson.


Here, you will learn about the array data structure. In this lesson, you will understand how to create arrays and how to handle their elements, using the index.


Arrays with more than one dimension - how can you handle then and what are they useful for.


Solutions to the exercises of the last lesson.


Practical lesson on square matrices. This lesson emphasizes juggling with the indices.

Here you will see some interesting properties of the square matrices. This will allow you to implement some basic rules from games like chess and Tic-tac-toe.


Solutions of the exercises of the last lesson.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Miroslav Paunov, Engineer, Software developer, Lector

Hi, my name is Miroslav. I am from Bulgaria and I have been a professional programmer for more than 6 years. I have experience in C, C#, Java SE, Java EE, Android, PHP, SQL, HTML, CSS.

In these 6 years I have 3 crazy years of daily programming and evening teaching. I taught hundreds of students - students who enrolled to learn and developer teams for other companies.

Now I want to use my experience and knowledge to teach people all over the world. Thanks, Udemy!

Ready to start learning?
Take This Course