An introductory programming fundamentals course