Foundations of Programming: Fundamentals

with Simon Allardice
please wait ...
Foundations of Programming: Fundamentals
Video duration: 0s 4h 47m Beginner


This course provides the core knowledge to begin programming in any language. Simon Allardice uses JavaScript to explore the core syntax of a programming language, and shows how to write and execute your first application and understand what's going on under the hood. The course covers creating small programs to explore conditions, loops, variables, and expressions; working with different kinds of data and seeing how they affect memory; writing modular code; and how to debug, all using different approaches to constructing software applications.

Finally, the course compares how code is written in several different languages, the libraries and frameworks that have grown around them, and the reasons to choose each one.

Topics include:
  • Writing source code
  • Understanding compiled and interpreted languages
  • Requesting input
  • Working with numbers, characters, strings, and operators
  • Writing conditional code
  • Making the code modular
  • Writing loops
  • Finding patterns in strings
  • Working with arrays and collections
  • Adopting a programming style
  • Reading and writing to various locations
  • Debugging
  • Managing memory usage
  • Learning about other languages
Developer Web


Hi! I am Simon Allardice and welcome to the Foundations of Programming: Fundamentals course. What we are exploring here are the core ideas and skills you will always need when programming on any platform with any language. Now there are dozens of programming languages you could choose from and we will see many of them in this course, languages like JavaScript, C, Ruby and Python. We will see what these different languages are good at and why you might pick one over another, but I won't be trying to make you an expert on any one of them. Instead in this course we will go through what's common across all of these languages.

We will work with things like loops, conditions, variables, and memory; see how to control the structure and the flow of a program; and what you need to know about what that program is doing under the hood. And we are going to make sense of the buzzwords and jargon that you can't avoid when programming. These words might not mean anything to you right now, but they will. And we won't just talk ideas. We will get hands-on on and write programs in this course to prove these ideas and see why they are important. So that by the end of this course you would be comfortable with approaching any programming language.

Welcome to the Foundations of Programming: Fundamentals. Let's get started.

Find answers to the most frequently asked questions about Foundations of Programming: Fundamentals .

Expand all | Collapse all
please wait ...
Q: Using TextEdit with Mac OS 10.9 Mavericks? 
A: If you're using the built-in TextEdit program in Mavericks to write your first examples and your code doesn't seem to be working, here's one reason why: by default, "smart quotes" are now turned on in TextEdit Preferences.
This is where TextEdit will automatically change pairs of double quotes to "smart quotes" - where the opening and closing quote are different, like a 66 and 99.
While this is fine for human eyes, programming languages don't want this - when writing code, they need to be the plain, generic straight-up-and-down quotes.
So make sure that in TextEdit > Preferences, that "Smart quotes" are unchecked.
Important! Whenever you make a change to TextEdit preferences, make sure to then completely quit out of the program (Command-Q or using TextEdit > Quit TextEdit) and then re-open it, as changes won't take effect on documents you already have open.
However, we're not finished - just because you've changed the preferences, it does **not** change any *existing* smart quotes back to "regular" quotes - it just doesn't add new ones - so make sure to go through your files for any time you wrote quotes and TextEdit may have changed them to smart quotes - look in both the JavaScript, and your HTML too, and compare to the downloadable exercise files if necessary.
If that sounds like a bit of a chore, I recommend just downloading a code editor like Sublime Text ( or TextMate ( and using that instead of TextEdit - it's only a matter of time before you'd move away from TextEdit anyway - we only used it in the course because it was built-in and a quick way to get started, but it's now become more of a inconvenience than it was before.
please wait ...