Physical Computing Foundations