Computer Science Tutorials

Here contain all the technical computer science tutorials. These are technical how-to articles that focus on teaching you a specific skill or how to solve a specific problem. Programming languages from python to C++. Useful for self study or classroom strategy. Learn something new about comp sci today!


Why ChatGPT Is Not Reliable

I'll start with the simple fact: ChatGPT is not a reliable answerer of questions.To try to explain why from scratch would be a heavy lift, but fortunately,…

P vs. NP and what is a Turing Machine (TM)?

P or NP This article deals with the complexity of calculations and in particular the meaning of ##P\stackrel{?}{\neq}NP## Before we explain what P and…
cpu programming

Parallel Programming on a CPU with AVX-512

This article is the second of a two-part series that presents two distinctly different approaches to parallel programming. In the two articles, I use different…
programming gpu

Parallel Programming on an NVIDIA GPU

This article is the first of a two-part series that presents two distinctly different approaches to parallel programming. In the two articles, I use different…
setup raspberry pi cluster

How to Setup a Raspberry Pi Cluster

INTRODUCTION As a long-time computer programmer and almost as long a High-Performance Computer (HPC) user, I really didn't know anything about how these…
python sympy module

Python’s Sympy Module and the Cayley-Hamilton Theorem

Two of my favorite areas of study are linear algebra and computer programming. In this article I combine these areas by using Python to confirm that a…
android ringtone

Create an Android Ringtone Picker Using the Ringtonemanager Class

In this article, I will show you how to create a ringtone picker using the RingtoneManager class in Android. You will be able to get the list of tones,…
artificial intelligence

The Rise of AI in STEM – Part 2

We asked our PF Advisors “How do you see the rise in A.I. affecting STEM in the lab, classroom, industry and or in everyday society?”. We got so many…
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…
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 Programming subtotals

AVX-512 Programming: Extracting Column Subtotals from a Table

In this Insights article I'll present an example that shows how Intel® AVX-512 instructions can be used to read a whole row of data in a single operation,…
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,…
unity orbital mechanics

Learn Orbital Mechanics in Unity Game Engine for Augmented Reality

In this Insight, I’ll go over implementing basic orbital mechanics simulations in the Unity game engine as well as an approach to scaling the simulation…

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…

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…

Simple Python Debugging with Pdb: Part 2

This Insight article is the continuation of the first article, Simple Python Debugging with Pdb: Part 1.In this article, let's look at another important…

Learn Simple Python Debugging with Pdb

I'm pretty new to Python, so I was looking around for some debugging tools. At first, I dismissed Pdb (Python debugger) as being too primitive, but after…