Try Free Samples of Our Self-Paced Courses!

NCLab provides self-paced practice-based college-level courses in the areas of computer programming, data analytics / data science, computer-aided design, geometry, and math. The free sample courses below are “appetizers” which are not as thorough as the corresponding full courses, but they will allow you to experience the NCLab signature practice-based training method. Each of the sample courses should take at most two hours of your time.

Computer Programming

If you are new to computer programming, then you absolutely should take Intro to Computer Programming first. This will be the most important course of your entire computer programming career. It will teach you how to think correctly and how to be successful in using computer programming to solve problems. These skills will help you, no matter which programming language you will end up using in the future. The Visual Intro to Python course is an introduction to Python with elements of geometry, robotics, and 3D printing. Finally, Python Programming is a rigorous introduction to Python aimed at future professional Python Programmers.

Data Analytics and Data Science

Learning SQL (Structured Query Language) is where every aspiring Data Analyst needs to start. SQL is used to extract data from, and modify data in, relational database management systems (RDBMS). It is a declarative programming language that is much easier to learn than Python, C/C++, Java, or other procedural programming languages. One can learn SQL without any prior programming experience. The Predictive Data Analytics course teaches basic concepts of statistics which are used in data analytics, and how to use Python and its powerful free libraries to clean, visualize, and analyze data. Finally, Linear Algebra is a foundational course for Data Science. This course is suitable for complete beginners. It begins with elementary vector and matrix operations and covers all concepts of Linear Algebra including the most advanced topics such as Least-Squares problems and Singular-Value Decomposition (SVD).

Computer-Aided Design

Computer-Aided Design (CAD) is an essential skillset required in engineering, architecture, robotics, and many other areas. NCLab’s Intro to Computer-Aided Design course teaches Constructive Solid Geometry (CSG), otherwise also known as Solid Modeling. Through hands-on practice with a simple and elegant Python-based scripting CAD, students learn how to create and manipulate planar and 3D objects, and how to combine them to build complex 3D models. These models can be exported as STL files and 3D printed. Students develop strong spatial reasoning skills (ability to “think in 3D”) which make them much more successful when working with professional CAD software such as Solidworks or AutoCAD later on.


This is a collection of advanced challenges for Karel the Robot, designed for those of you who already took our Introduction to Computer Programming course, and who would like to stay in touch with Karel. These are not the easiest problems, but there is zero doubt in our mind that you will be able to solve all of them!