Modeling a program is the process of coming up with a representation of a program that allows the reader to understand how it works. It's an important topic to understand, because it's applicable not just when trying to understand existing programs, but also when trying to design and create new programs.
When you're working on something and you realize you made a mistake, it's really nice to be able to undo those changes. While the undo button is sufficient for a single file, what happens if you are changing multiple files at once? This is where version control systems come in, to allow you to manage the entire history of a project.
Functions allow a programmer to reuse blocks of code throughout a program. Proper use of functions leads to code that is smaller and easier to understand.
Comments are how programmers can convey information to the reader of a piece of code. Proper use of comments is key, especially in larger projects, because good comments make it easier to understand code, which means it's easier to maintain too.
Loops enable programmers to direct the computer to perform some sequence of actions repeatedly. They are frequently employed when dealing with arrays, though they have other uses as well.
Conditional statements are what programmers use to cause the computer to perform different operations when certain conditions are met; as such, they are present in almost every useful program.
Data structures and variables are present in every single program. Through proper naming and use of them, they allow a programmer to convey information simultaneously to both the reader of the programmer and the computer.
Operators are key to performing work in a program, because without them, it would be impossible to manipulate data.
Primitive data types are those which cannot be broken down into smaller components. Read this to learn more about them.
Computers are like small children -- they do what you say, not what you mean. In this post, I begin to talk about what programmers have at their disposal when creating programs for the computer to execute.
This post has the topics I'll be writing about in the fundamental concepts series. As I write posts in the series, I will link them in.