Programming Articles


c++ guide for beginners

Guide to C++ Programming For Beginners

Contents 1. Getting a C++ Compiler and Compiling Your First Program 2. Simple Datatypes and Declarations 3. Operators and Expressions 4. Input and…
bloatware android phones

Clearing Misconceptions and Some Tips on Debloating Android Phones

What is bloatware? When you unbox your new phone, it comes with Android that is pre-installed by the manufacturer. This is termed “stock firmware”.…
recursion in programming

Recursion in Programming and When to Use or Not to Use It

Recursion is actually quite simple. It's a subroutine calling itself. It's surprising but some problems that look quite hard can be trivial using recursion…
AVX-512 conclusion

AVX-512 Assembly Programming: Opmask Registers for Conditional Arithmetic Conclusion

In the first part of this article (AVX-512 Assembly Programing - Opmask Registers for Conditional Arithmetic), we looked at how opmask registers can be…
AVX-512 registers

AVX-512 Assembly Programming: Opmask Registers for Conditional Arithmetic

This is the second installment in a continuing series of articles on Intel AVX-512 assembly programming. The first installment is An Intro to AVX-512 Assembly…
AVX-512 Assembly Programming

An Intro to AVX-512 Assembly Programming

History In 1998, the Intel Corporation released processors that supported SIMD (single instruction, multiple data) instructions, enabling processors to…
Data Structures Programming

Intro to Data Structures for Programming

Introduction In the first part of this series, I talked about some fundamental notions in the world of algorithms. Beyond the definition of an algorithm,…

Intro to Algorithms for Programming

Many threads here at PF include some questions about how to learn to program. This is asked by Physics students who want to learn programming in order…

The Joy of Processing

In the early days of the personal computer revolution, computers were small, simple, and easy to operate. It was always great fun to write BASIC games…

An Introduction to Computer Languages

In this Insights Guide, the focus is entirely on types of languages, how they relate to what computers actually do, and how they are used by people. It…

Reflections on Technology Product Quality

On Hardware Quality It is impossible to test quality into a product. Quality must be designed into the product.The hardware designer is always…

Why Your Software is Never Perfect

We occasionally have students ask for help on software, "My software is perfect, but it doesn't work!" Your software is never perfect. My own software…

Why Can’t My Computer Do Simple Arithmetic?

The first computer I owned was an Apple IIe computer, with a CPU that ran at slightly over 1 Megahertz (MHz), and with 64 Kilobytes (KB) of RAM, together…