History of computing hardware
All programming throughout history has been driven via computer hardware. An understanding of how hardware functions behind the scenes is helpful to know and keep mind of when programming. Computers have evolved from very primitive devices to manual calculating tools. The first programming was done through devices that read punch cards. The first general-purpose computer was overshadowed by the ENIAC. The ENIAC was programmed by connecting and unconnecting and flipping switches. It took a significant amount of effort to take a problem and map it onto the ENIAC. The program would need to first be figured out in paper and then gotten into the machine by manipulating its switches and cables. A period of verification and debugging was followed thereafter. The program would be able to be executed step-by-step. As archaic and old-fashioned as these concepts may be, a lot of them will be used in this course.
Programming has since evolved to levels of abstraction and layers on top of the hardware. Punched cards allowed programmers to communicate instructions to the computer. This was a large step of progression in leading to the programming we know today. Computer programming was a reality in the 70s with the use of punched cards.
Structured programming was aimed at improving the development time of a computer program. It is identified by its desire to use flow charts, which will be covered in this course.
Following structured programming came procedural programming. This was an effort to make reusable modules and functions of code called procedures.
Object-oriented programming was the next major step up and what is covered in Programming Concepts A, B, and C. This adds to the principles of structured and procedural programming. Object-oriented programming builds on the functionality and best practices of the languages that came before it. There are other ideologies of programming as well, such as functional programming.
Programming Concepts A, B and C emphasizes the importance of object-oriented thought and design approach.
Object-oriented programming was an idea that emerged in the late 50s and early 60s, but became more popular in the 70s with Smalltalk. It has taken hold more recently with the languages such as C++, and more recently with Java and C#.