Programming Basics
The Programming Basics website was created by Dr. Ming-Yee Iu.
The website is designed with these principles in mind:
- There are a lot of barriers that confuse beginner programmers and discourages them from starting lessons. These barriers should be reduced as much as possible
- There should be no software to install, and the interface should be consistent regardless of what type of computer people are using
- The user interface should be as simple as possible so that people don't become discouraged by the complexity
- Some people might not have computers of their own and will use out-dated locked-down computers that are available in schools and libraries. The website should still be usable in these cases
- The website teaches a current mainstream programming language using a traditional set of programming lessons without a particular application area in mind. This allows the lessons to be broadly useful and less likely to become out-dated over time
- Exercises are an important part of learning to program. These exercises should not involve a lot of typing yet be complicated enough to force people to really learn the material
- The exercises should make use of modern user interface elements like windows, graphics, and dialog boxes while avoiding older interface elements that people may currently be unfamiliar with like consoles
- The exercises may use modern interface elements but the exercises should focus on teaching concepts and not on trying to impress the learner
- The lessons are intended mostly for people trying to teach themselves programming though they can be used in other settings as well
- Since the lessons are designed for self-learners, every programming detail must be carefully explained since a teacher might not be available to explain any missing details
- Modern programming libraries are so general that often they are hard for beginner programmers to use. The website should simplify these libraries as much as possible, but not to the point where they don't serve an educational purpose or where they are no use as a real-world library
- Programming concepts are good for everyone in the world to learn, so the website should be designed for international use
- Although there may be flashier and more innovative programming websites, boring websites with well-designed lessons are always useful and are often difficult to find because programmers like building flashier websites designed around novel pedagogical methods