Featured Post

Why this blog? What's it about? What's the format?

FORMAT For Fall 2021, the focus is mainly on Python, C++, and Digital Hardware There are videos here from other sources / creators There are...

Right click image below, then "open link in new tab"

Right click image below, then "open link in new tab"
Right click image above, then "open link in new tab"

Search This Blog

Thursday, September 30, 2021

Eat, Sleep, Code / Learn to Code, Repeat !

Image credit: R. Sandos. From the link:




















This is my life right now! 

Eat, Sleep, Code / Learn to Code, Repeat ! 

My ambition is to start several multi-million Apps, projects, ventures and companies. I already have a registered corporation that is still a baby. When you apply technology to business, medicine, retail, law, governance, supply chain, logistics, politics, and so on, the confluence creates magic ! 

Cheers, 

Jerry

Monday, September 27, 2021

What is a Programming Language? History, Basics, Intro etc. from a few sources...

INTRODUCTION

Check out this awesome video from Study.com at this link:

From the link of Codecademy:

“Put simply, programming is giving a set of instructions to a computer to execute. If you’ve ever cooked using a recipe before, you can think of yourself as the computer and the recipe’s author as a programmer. The recipe author provides you with a set of instructions which you read and then follow. The more complex the instructions, the more complex the result!”

Programming languages are the tools we use to write instructions for computers to follow. 

Computers “think” in binary — strings of 1s and 0s. Programming languages allow us to translate the 1s and 0s into something that humans can understand and write. A programming language is made up of a series of symbols that serves as a bridge that allow humans to translate our thoughts into instructions computers can understand.

Low-Level vs. High-Level Programming Languages

Programming languages fall into two different classifications - Low-level and High-level.

Low-level programming languages are closer to machine code, or binary. Therefore, they’re more difficult for humans to read (although they’re still easier to understand than 1s and 0s). The benefit of low-level languages is that they’re fast and offer precise control over how the computer will function.

High-level programming languages are closer to how humans communicate. High-level languages use words (like object, order, run, class, request, etc.) that are closer to the words we use in our everyday lives. This means they’re easier to program in than low-level programming languages, although they do take more time to translate into machine code for the computer.

As computers have become more powerful, the difference in runtime between low-level and high-level programming languages is often only milliseconds. As a result, high-level languages do the trick in most scenarios.

Most popular programming languages

There are tons of programming languages out there that allow you to do all sorts of things, from building virtual reality experiences to creating video games and more. There’s even a programming language that consists entirely of emojis!

In this section, we’ll break down some of the most popular programming languages — and what they’re used for. GitHub’s PYPL Index ranks programming languages according to how often tutorials are searched on Google. 

The most popular programming languages include the following:

Python: Python is a versatile, general-purpose programming language. It can be used in a variety of fields from data science and machine learning to web development and is a great first language to learn.

Java: Another language that’s great when you’re starting out, Java can be used for many things, including mobile applications, software development, and large systems development. AP Computer Science is currently taught in Java.

JavaScript: JavaScript is a front-end and back-end friendly language that enables web applications, game development, and mobile applications.

C#: C#, Microsoft’s popular programming language, can be used for a wide variety of applications, including game development, enterprise software, video games, mobile apps, and more.

C++: C++ is one of the most powerful programming languages and is used in a wide range of industries, including VR, software and game development, robotics, and scientific computing.

PHP: PHP is a widely-used server-side language. It’s a great choice if you’re interested in building dynamic web applications and works well with databases and HTML.

R: R is a statistical programming language that’s popular among data scientists. It’s used for answering questions with data analysis and creating data visualizations..

Swift: Swift is Apple’s programming language and is a must if you plan to develop applications for iOS and MacOS.

Kotlin: Kotlin is an open-source programming language developed by JetBrains. It’s popular for web development, Android development, and more.

From the link:

A programming language is a formal language comprising a set of strings that produce various kinds of machine code output. Programming languages are one kind of computer language, and are used in computer programming to implement algorithms.

Most programming languages consist of instructions for computers. There are programmable machines that use a set of specific instructions, rather than general programming languages. 

Thousands of different programming languages have been created, and more are being created every year. 

Many programming languages are written in an imperative form (i.e., as a sequence of operations to perform) while other languages use the declarative form (i.e. the desired result is specified, not how to achieve it).

The description of a programming language is usually split into the two components of syntax (form) and semantics (meaning). 

Some languages are defined by a specification document (for example, the C programming language is specified by an ISO Standard) while other languages (such as Perl) have a dominant implementation that is treated as a reference. Some languages have both, with the basic language defined by a standard and extensions taken from the dominant implementation being common.

Programming language theory is a subfield of computer science that deals with the design, implementation, analysis, characterization, and classification of programming languages.

HISTORY:

From the link:

Ever since the invention of Charles Babbage’s difference engine in 1822, computers have required a means of instructing them to perform a specific task. 

This means of instructing computers is known as a programming language

Computer languages were first composed of a series of steps to wire a particular program; these morphed into a series of steps keyed into the computer and then executed; later these languages acquired advanced features such as logical branching and object orientation. 

The computer languages of the last fifty years have come in two stages:
  • The first major languages and 
  • The second major languages, which are in use today.
In the beginning, Charles Babbage’s difference engine could only be made to execute tasks by changing the gears which executed the calculations. Thus, the earliest form of a computer language was physical motion. Eventually, physical motion was replaced by electrical signals when the US Government built the ENIAC in 1942. It followed many of the same principles of Babbage’s engine and hence, could only be “programmed” by presetting switches and rewiring the entire system for each new “program” or calculation. This process proved to be very tedious.

In 1945, John Von Neumann was working at the Institute for Advanced Study. He developed two important concepts that directly affected the path of computer programming languages. 

(1) The first was known as “shared-program technique” (www.softlord.com). This technique stated that the actual computer hardware should be simple and not need to be hand-wired for each program. Instead, complex instructions should be used to control the simple hardware, allowing it to be reprogrammed much faster.

(2) The second concept was also extremely important to the development of programming languages. Von Neumann called it “conditional control transfer” (www.softlord.com). This idea gave rise to the notion of subroutines, or small blocks of code that could be jumped to in any order, instead of a single set of chronologically ordered steps for the computer to take. The second part of the idea stated that computer code should be able to branch based on logical statements such as IF (expression) THEN, and looped such as with a FOR statement. “Conditional control transfer” gave rise to the idea of “libraries,” which are blocks of code that can be reused over and over. 

Around this time, Konrad Zuse, a German, was inventing his own computing systems independently and developed many of the same concepts, both in his machines and in the Plankalkul programming language. Alas, his work did not become widely known until much later. For more information, see this website: http://www.epemag.com/zuse/, or the entries on Wikipedia: Konrad Zuse and Plankalkul.

In 1949, a few years after Von Neumann’s work, the language Short Code appeared (www.byte.com). It was the first computer language for electronic devices and it required the programmer to change its statements into 0’s and 1’s by hand. Still, it was the first step towards the complex languages of today

In 1951, Grace Hopper wrote the first compiler, A-0 (www.byte.com). 

A compiler is a program that turns the language’s statements into 0’s and 1’s for the computer to understand. This lead to faster programming, as the programmer no longer had to do the work by hand.

In 1957, the first of the major languages appeared in the form of FORTRAN. Its name stands for FORmula TRANslating system. The language was designed at IBM for scientific computing. The components were very simple, and provided the programmer with low-level access to the computers innards. Today, this language would be considered restrictive as it only included IF, DO, and GOTO statements, but at the time, these commands were a big step forward. The basic types of data in use today got their start in FORTRAN, these included logical variables (TRUE or FALSE), and integer, real, and double-precision numbers.

Though FORTAN was good at handling numbers, it was not so good at handling input and output, which mattered most to business computing. 

Business computing started to take off in 1959, and because of this, COBOL was developed. It was designed from the ground up as the language for businessmen

Its only data types were numbers and strings of text. It also allowed for these to be grouped into arrays and records, so that data could be tracked and organized better. It is interesting to note that a COBOL program is built in a way similar to an essay, with four or five major sections that build into an elegant whole. COBOL statements also have a very English-like grammar, making it quite easy to learn. All of these features were designed to make it easier for the average business to learn and adopt it.

In 1958, John McCarthy of MIT created the LISt Processing (or LISP) language. It was designed for Artificial Intelligence (AI) research. Because it was designed for a specialized field, the original release of LISP had a unique syntax: essentially none. Programmers wrote code in parse trees, which are usually a compiler-generated intermediary between higher syntax (such as in C or Java) and lower-level code. Another obvious difference between this language (in original form) and other languages is that the basic and only type of data is the list; in the mid-1960’s, LISP acquired other data types. A LISP list is denoted by a sequence of items enclosed by parentheses. 

LISP programs themselves are written as a set of lists, so that LISP has the unique ability to modify itself, and hence grow on its own. The LISP syntax was known as “Cambridge Polish,” as it was very different from standard Boolean logic (Wexelblat, 177):

x V y - Cambridge Polish, what was used to describe the LISP program
OR(x,y) - parenthesized prefix notation, what was used in the LISP program
x OR y - standard Boolean logic

LISP remains in use today because its highly specialized and abstract nature.

The Algol language was created by a committee for scientific use in 1958. It’s major contribution is being the root of the tree that has led to such languages as Pascal, C, C++, and Java. It was also the first language with a formal grammar, known as Backus-Naar Form or BNF (McGraw-Hill Encyclopedia of Science and Technology, 454). Though Algol implemented some novel concepts, such as recursive calling of functions, the next version of the language, Algol 68, became bloated and difficult to use (www.byte.com). This lead to the adoption of smaller and more compact languages, such as Pascal.

Pascal was begun in 1968 by Niklaus Wirth. Its development was mainly out of necessity for a good teaching tool. In the beginning, the language designers had no hopes for it to enjoy widespread adoption. Instead, they concentrated on developing good tools for teaching such as a debugger and editing system and support for common early microprocessor machines which were in use in teaching institutions.

Pascal was designed in a very orderly approach, it combined many of the best features of the languages in use at the time, COBOL, FORTRAN, and ALGOL. 

While doing so, many of the irregularities and oddball statements of these languages were cleaned up, which helped it gain users (Bergin, 100-101). The combination of features, input/output and solid mathematical features, made it a highly successful language. Pascal also improved the “pointer” data type, a very powerful feature of any language that implements it. It also added a CASE statement, that allowed instructions to to branch like a tree in such a manner:

CASE expression OF
   possible-expression-value-1:
       statements to execute...
   possible-expression-value-2:
       statements to execute...
END

Pascal also helped the development of dynamic variables, which could be created while a program was being run, through the NEW and DISPOSE commands. However, Pascal did not implement dynamic arrays, or groups of variables, which proved to be needed and led to its downfall (Bergin, 101-102). Wirth later created a successor to Pascal, Modula-2, but by the time it appeared, C was gaining popularity and users at a rapid pace.

C Language was developed in 1972 by Dennis Ritchie while working at Bell Labs in New Jersey.

The transition in usage from the first major languages to the major languages of today occurred with the transition between Pascal and C

Its direct ancestors are B and BCPL, but its similarities to Pascal are quite obvious. All of the features of Pascal, including the new ones such as the CASE statement are available in C. C uses pointers extensively and was built to be fast and powerful at the expense of being hard to read. But because it fixed most of the mistakes Pascal had, it won over former-Pascal users quite rapidly.

Ritchie developed C for the new Unix system being created at the same time. Because of this, C and Unix go hand in hand. 

Unix gives C such advanced features as dynamic variables, multitasking, interrupt handling, forking, and strong, low-level, input-output. Because of this, C is very commonly used to program operating systems such as Unix, Windows, the MacOS, and Linux.

In the late 1970’s and early 1980’s, a new programing method was being developed. It was known as Object Oriented Programming, or OOP

Objects are pieces of data that can be packaged and manipulated by the programmer. 

Bjarne Stroustroup liked this method and developed extensions to C known as “C With Classes.” This set of extensions developed into the full-featured language C++, which was released in 1983.

C++ was designed to organize the raw power of C using OOP, but maintain the speed of C and be able to run on many different types of computers. 

C++ is most often used in simulations, such as games. C++ provides an elegant way to track and manipulate hundreds of instances of people in elevators, or armies filled with different types of soldiers. It is the language of choice in today’s AP Computer Science courses.

In the early 1990’s, interactive TV was the technology of the future. 

Sun Microsystems decided that interactive TV needed a special, portable (can run on many types of machines), language. This language eventually became Java. 

In 1994, the Java project team changed their focus to the web, which was becoming “the cool thing” after interactive TV failed. 

The next year, Netscape licensed Java for use in their internet browser, Navigator. 

At this point, Java became the language of the future and several companies announced applications which would be written in Java, none of which came into use.

Though Java has very lofty goals and is a text-book example of a good language, it may be the “language that wasn’t.” 

Java has serious optimization problems, meaning that programs written in it run very slowly. And Sun has hurt Java’s acceptance by engaging in political battles over it with Microsoft. But Java may wind up as the instructional language of tomorrow as it is truly object-oriented and implements advanced techniques such as true portability of code and garbage collection.

Visual Basic is often taught as a first programming language today as it is based on the BASIC language developed in 1964 by John Kemeny and Thomas Kurtz. 

BASIC is a very limited language and was designed for non-computer science people. Statements are chiefly run sequentially, but program control can change based on IF..THEN, and GOSUB statements which execute a certain block of code and then return to the original point in the program’s flow.

Microsoft has extended BASIC in its Visual Basic (VB) product

The heart of VB is the form, or blank window on which you drag and drop components such as menus, pictures, and slider bars. These items are known as “widgets.” Widgets have properties (such as its color) and events (such as clicks and double-clicks) and are central to building any user interface today in any language. VB is most often used today to create quick and simple interfaces to other Microsoft products such as Excel and Access without needing a lot of code, though it is possible to create full applications with it.

Perl has often been described as the “duct tape of the Internet,” because it is most often used as the engine for a web interface or in scripts that modify configuration files. It has very strong text matching functions which make it ideal for these tasks. Perl was developed by Larry Wall in 1987 because the Unix sed and awk tools (used for text manipulation) were no longer strong enough to support his needs. Depending on whom you ask, Perl stands for Practical Extraction and Reporting Language or Pathologically Eclectic Rubbish Lister.

Programming languages have been under development for years and will remain so for many years to come. 
  • They got their start with a list of steps to wire a computer to perform a task. 
  • These steps eventually found their way into software and began to acquire newer and better features. 
  • The first major languages were characterized by the simple fact that they were intended for one purpose and one purpose only, 
  • However, the languages of today are differentiated by the way they are programmed in, as they can be used for almost any purpose. 
And perhaps the languages of tomorrow will be more natural with the invention of quantum and biological computers.

More at the Wikipedia link for the History of Programming Languages

BASICS

From the link:

A computer is a device that can accept human instruction, processes it, and responds to it or a computer is a computational device that is used to process the data under the control of a computer program. Program is a sequence of instruction along with data.

The basic components of a computer are:
  • Input unit
  • Central Processing Unit(CPU)
  • Output unit
The CPU is further divided into three parts:
  • Memory unit
  • Control unit
  • Arithmetic Logic unit
CPU is called the brain of our computer because it accepts data, provides temporary memory space to it until it is stored(saved) on the hard disk, performs logical operations on it and hence processes (here also means converts) data into information. 

A computer consists of hardware and software. 
  • Software is a set of programs that performs multiple tasks together. 
  • An operating system is also software (system software) that helps humans to interact with the computer system
A program is a set of instructions given to a computer to perform a specific operation. or computer is a computational device that is used to process the data under the control of a computer program. While executing the program, raw data is processed into the desired output format. 

These computer programs are written in a programming language which are high-level languages. 

High level languages are nearly human languages that are more complex than the computer understandable language which are called machine language, or low level language. So after knowing the basics, we are ready to create a very simple and basic program. 

Just like we humans have different languages to communicate with each other, likewise, we have different languages like C, C++, C#, Java, python, etc to communicate with the computers. 

The computer only understands binary language (the language of 0’s and 1’s) also called machine-understandable language or low-level language but the programs we are going to write are in a high-level language which is almost similar to human language.

The piece of code given below performs a basic task of printing “hello world! I am learning programming” on the console screen. We must know that keyboard, scanner, mouse, microphone, etc are various examples of input devices, and monitor(console screen), printer, speaker, etc are examples of output devices.
 
main()
 {
 clrscr();
 printf(“hello world! I am learning to program");
 getch();
 } 

The main() is a standard function that you will always include in any program that you are going to create from now onwards. 

Note that the execution of the program starts from the main() function. The clrscr() function is used to see only the current output on the screen while the printf() function helps us to print the desired output on the screen. Also, getch() is a function that accepts any character input from the keyboard. In simple words, we need to press any key to continue(some people may say that getch() helps in holding the screen to see the output).

Between high-level language and machine language, there are assembly languages also called symbolic machine code. 

Assembly languages are particularly computer architecture specific. 

Utility program (Assembler) is used to convert assembly code into executable machine code. High Level Programming Language is portable but requires Interpretation or compiling to convert it into a machine language that is computer understood.

Characteristics of a programming Language:
  1. A programming language must be simple, easy to learn and use, have good readability, and be human recognizable
  2. Abstraction is a must-have Characteristics for a programming language in which the ability to define the complex structure and then its degree of usability comes
  3. A portable programming language is always preferred
  4. Programming language’s efficiency must be high so that it can be easily converted into a machine code and executed consumes little space in memory
  5. A programming language should be well structured and documented so that it is suitable for application development
  6. Necessary tools for the development, debugging, testing, maintenance of a program must be provided by a programming language
  7. A programming language should provide a single environment known as Integrated Development Environment(IDE)
  8. A programming language must be consistent in terms of syntax and semantics
Most Popular Programming Languages:
  • C
  • Python
  • C++
  • Java
  • SCALA
  • C#
  • R
  • Ruby
  • Go
  • Swift
  • JavaScript
There have been many programming languages. Some of them are listed below:
  • Python 
  • C++
  • C# 
  • Ruby
  • COBOL 
  • ADA 
  • Java
  • Fortran 
  • BASIC 
  • Altair BASIC
  • True BASIC 
  • Visual BASIC
  • GW BASIC
  • QBASIC 
  • PureBASIC 
  • PASCAL
  • Turbo Pascal 
  • GO 
  • ALGOL
  • LISP 
  • SCALA 
  • Swift
  • Rust 
  • Prolog 
  • Reia
  • Racket 
  • Scheme 
  • Shimula
  • Perl 
  • PHP 
  • Java Script
  • CoffeeScript 
  • VisualFoxPro 
  • Babel
  • Logo
  • Lua
  • Smalltalk
  • Matlab F F#
  • Dart 
  • Datalog 
  • dbase
  • Haskell 
  • dylan 
  • Julia
  • ksh 
  • metro 
  • Mumps
  • Nim 
  • OCaml 
  • pick
  • TCL 
  • CPL
  • Curry 
  • ActionScript 
  • Erlang
  • Clojure 
  • DarkBASCIC 
  • Assembly
Hierarchy of Computer language:
  • HIGH-LEVEL LANGUAGE --> 
  • ASSEMBLEY LANGUAGE --> 
  • MACHINE LANGUAGE --> 
  • COMPUTER HARDWARE

What is a programming language?

Binary

Sunday, September 26, 2021

History of Excel - Spreadsheets & Visicalc - Excel TV Topics

2 guys who invented the first-ever spreadsheet

A Brief History of Spreadsheets

Required Cybersecurity Skill: Understanding Basic Networking Concepts

VIMP ! Clean Code - Uncle Bob / Lesson 1

4. Assembly Language & Computer Architecture

Comparing C to machine language

What Is Assembly Language?

What is a kernel - Gary explains

How do computers read code?

Assembly Language and Machine Code

Is it worth learning assembly language today? | One Dev Question

Why People Use Python Even If It’s Slow

Good coding habits to start developing NOW

Introduction To Lists In Python (Python Tutorial #4)

So funny !!! Every Type of Programmer

Lotus 1-2-3 Release 4 MS-DOS: Unboxing & Demo

Friday, September 24, 2021

Object Oriented Programming - The Four Pillars of OOP

Learn Object Oriented Programming in 10 minutes (Java)

Practice Coding on ProgramIZ.com and Edabit.com

It helps to practice coding as much as possible. That is the best way to learn. 

I have used ProgramIZ.com already, as below. 



Another website that one I came across is Edabit.com as below. 



Learn Java in 14 Minutes (seriously)

Amazon Fulfillment Center Tour with AWS

Devices To Transfer Data To AWS - The undisputed leader in Cloud Computing

Google data center

What is a server?

Created a GitHub account ! Handle: @50mj

Am slowly trying to become a part of the Computer Science community! Just joined GitHub, and created an account with the handle "@50mj". Hope to get more familiar and make good progress soon! I am impressed by the initial feel and experience of the site. It is probably one of the best websites I have ever visited, in terms of visuals and graphics! I think you should try it too! 




System Design Course for Beginners

Internet-Computing-Core-Certification (IC3)

C++ About, Resources, Pros & Cons











Link to the C++ Foundation Website: www.ISOCPP.org

Information below is from this link and this link:

  • C++ (pronounced "see plus plus") is a computer programming language based on C. It was created for writing programs for many different purposes. In the 1990s, C++ became one of the most used programming languages in the world
  • The C++ programming language was developed by Bjarne Stroustrup at Bell Labs in the 1980s, and was originally named "C with classes". The language was planned as an improvement on the C programming language, adding features based on object-oriented programming. Step by step, a lot of advanced features were added to the language, like operator overloading, exception handling and templates
  • C++ runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX
  • C++ is a general-purpose programing language which means that it can be used to create different variety of applications
  • C++ is used for variety of application domains
C++ is a general-purpose programming language created by Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significantly over time, and modern C++ now has object-oriented, generic, and functional features in addition to facilities for low-level memory manipulation. It is almost always implemented as a compiled language, and many vendors provide C++ compilers, including the Free Software Foundation, LLVM, Microsoft, Intel, Oracle, and IBM, so it is available on many platforms.

C++ was designed with an orientation toward system programming and embedded, resource-constrained software and large systems, with performance, efficiency, and flexibility of use as its design highlights.

C++ has also been found useful in many other contexts, with key strengths being software infrastructure and resource-constrained applications, including desktop applications, video games, servers (e.g. e-commerce, web search, or databases), and performance-critical applications (e.g. telephone switches or space probes).

From the link:

C++ is arguably the most versatile language in common use. C++ allows for both high-performance code as well as expressive abstractions and design constructs. The language is not perfect but it does represent an excellent compromise between these potentially conflicting language capabilities. C++ combines "low-level" programming tailored to specific machine architectures with "high-level" programming, which can allow code to be completely abstracted from any particulars of the machine executing the program. Both approaches have pros and cons that we'll cover in this tutorial. If interested, Wikibooks also has material on this subject.


Why should you learn C++?

The C++ language originally derives from the imperative language C. The defining feature which distinguishes C++ from C is support for Object-Oriented Programming (OOP). This makes C++ a multi-paradigm programming language. An example that can help to demonstrate what OOP means:

If you were writing a program to track the statistics of a racing cyclist, you might make different parts of the program for their age, years of racing, wins, falls, what teams they've raced with and so on. In real life, though, that's not how we think. Instead, we would think of the cyclist as a whole, and the different statistics as being part of him. We could also apply that general "model" of a cyclist, maybe with a few modifications, to any cyclist, and have a complete representation of them. This is the essence of object-oriented programming, and as you understand it more fully, it will allow you to create powerful, yet easily-understood programs. Instead of relying on data that is scattered throughout a program, you can create a block of code that defines everything you need, and then reuse that throughout the program.

EXAMPLE: Think of a motor car. You unlock it with the key and get in. Then, you turn the ignition, put the car in reverse, release the brake, and press the accelerator. As you drive, you use the steering wheel, the brake, and the accelerator (and maybe the clutch). You don't know or need to know all the specifics of the car to make it work. You just use what you need, and it's simple, too. Object-oriented programming is like that. You can make powerful code, but it's all hidden, and you can interact and reuse that code using simple controls.

Other languages, such as Java, Python, Smalltalk and C#, allow the programmer to write code in this object-orientated way. The key difference between C++ and these languages is that C++ is designed to be compiled into efficient low-level code which can run directly on the processor of a computer. This ability means that C++ differs in many ways from these other languages, and lacks many of the advanced facilities you might be familiar with if you already know one of them.
Pros and Cons of C++

PROS:

  • Is extremely popular, and therefore lots of support is available
  • Has a large base of freely available code for download, while also supporting direct integration with ASM and C
  • Is very powerful, and can be used to create just about any program, including low-level system programs
  • There is a compiler for C++ on every major operating system. C++ programs that are purposely written for portability will work on many major operating systems with little change in code
  • C++ is a language which is compiled (transformed from human readable code to low-level machine code), so it can often run faster than languages such as Java, Python, and C#, as it does not depend on an interpreter or a "run-time environment" which must be loaded beforehand
  • Has a long-established usage base that likely guarantees support for the language will continue for quite some time
  • Many languages are based off of C/C++, such as Java, so knowledge in C++ will make it easier to understand these languages
  • Has a relatively small associated C++ Standard Library as compared to languages such as Java's Standard Platform SDK or C#'s .NET Framework, permitting greater versatility and reducing the system footprint of resulting compilations
  • Has been standardized by the International Standards Association as ISO/IEC 14882 with significant versions of the standard released in 1998, 2003 and 2011
  • Has a significant number of open source libraries available, including the Boost which are freely and widely available

CONS:

  • It is not very safe by itself, as it lacks automatic boundary checks, invalid pointer checks, etc., allows for invisible side-effects (causing non-deterministic behavior) and allows implicit type casting. Many security issues and memory leaks are a direct result of this, unless an extra effort is made to prevent them
  • By default, there is no built-in memory management, even if smart pointers introduced from C++11 allow automatic resource managment
  • Its OOP system is rather archaic, requiring explicit virtualization of methods among other things usually reserved for older languages
  • Lacks the ability to define completely custom operators. (Not to be confused with the ability to define custom implementations for a hard-wired set of operators, which C++ has.)
  • Does not offer full algebraic data types
  • Functions are not first-class types. (Although pointers allow for workarounds.)
  • Has a somewhat more difficult learning curve than some other languages. For instance, C++'s most powerful features, such as templates, have a very complex syntax
  • Is very picky how code is formatted (but not quite as picky as FORTRAN, RPG or Haskell). For example, if you forget to add a semicolon, the program won't compile.
  • GUI, Networking aren't standardized, requiring the use of non-standard, third-party libraries (though many such libraries, both free and commercial, are available, as is the possibility to use C libraries), Boost being one of the preferred. The lack of a standard, however, may hamper learnability and interoperability or at least require some extended investigation

AWS Basics for Beginners - Full Course

Introduction to AWS Services

What is AWS? Explained by AWS

AWS In 10 Minutes | AWS Tutorial For Beginners | AWS Training Video | AW...

AWS In 5 Minutes | What Is AWS? | AWS Tutorial For Beginners | AWS Training

Interesting Case Study of a Talented CS professional | Why I work so hard (despite having a ‘good’ job)

MOOC = Massive Open Online Course(s)

Read more about MOOC at this link



How to self study using MOOCS (Udemy, Coursera, and other online courses) | self study online

How to Become a Mobile Developer in 2021

Networking basics (2020) | What is a switch, router, gateway, subnet, gateway, firewall & DMZ

12. Network Security - MIT Open Courseware

CISCO: What is Network Security?

 

 From this page link. Do check the page out for valuable content !  

Free CCNA | Network Fundamentals - Day 1 | 200-301 | Cisco Training

Network Security Tutorial | Introduction to Network Security | Network Security Tools

How to Get Into Cybersecurity with No Experience

Content Platforms Explained in 100 Seconds

Basics of Spyder IDE for Python Programmers

Full Introduction to Spyder - the best Python IDE for Data Science

Python Spyder IDE | How to Install and use Python Spyder IDE | Python Tu...

First steps with Spyder - Part 1: Getting Started

Sample Python Program on Spyder IDE. Made by me today !

Today, it has been just 1 month since I started the program, BS in CS in the US on 23 August, 2021. And it has been just 2 months since I decided to enroll into the program on 23 July, 2021 and started this blog. Below is a sample python program after just 1 month of starting the program ! This was written by me after referring to an example on the internet at this link


No, I am not yet able to write code on my own, from memory. Yes, I do have to look at examples and look up commands on the internet or from the text book. No, I am not perfect yet. 

HOWEVER, I am now able to get some work done! I am able to solve problems and create solutions using software now! Since I have the basic knowledge and basic tools now, I can build on that to achieve better and higher results! 

Right now, I am only doing Python and C++ as well as NI Multisim circuit drawings. However, I am happy that my work is relatively clean and bug free for now! 

Cheers,

Jerry



Introduction to the Spyder IDE for Python

Thursday, September 23, 2021

3 years of Computer Science in 8 minutes

(Learn C++ in Under 5 Minutes) E1: How to Output Text

Learn the basics of a C++ program in 5 minutes ! #1

Learn C++ In 10 Minutes

Learn python in 5 minutes

Python Refresher in 5 minutes

Software Development: About, Process, Activities

From the link:

"ABOUT:

  • Software development is the process of creating a computer software
  • It includes the software release life cycle of preparing a design, coding the program, and fixing the bugs. The final goal is software release of a product that serves the wishes of users
  • Software product is usually a result of research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities
PROCESS: 

A software development process (model, methodology) is a system that is used to structure, plan, and control the process of developing information systems. Each model is defferent, more or less structured and is considered to be suitable to only some kinds of projects.[3]
There are several stages of software development:
Analyzing the problem
  • Market research
  • Gathering requirements for the proposed software
  • Devising a plan or design for the software
  • Implementation (coding) of the software
  • Testing the software
  • Deployment
  • Maintenance and bug fixing
ACTIVITIES:
  • Understanding the need: There are different sources of ideas for software products like market research. The next step is market evaluation. It includes a check of cost and time assumptions, economic feasibility, fit with existing channels distribution, effects on existing product lines, required features, fit with the company's marketing objectives. This process is also connected with non-technical activities like human resources, risk management, intellectual property, budgeting, crisis management, etc.
  • Planning: An important task in creating a software program is understanding the requirements. The software engineers must accept the client's idea and adapt it to the working process.
  • Designing: After establishing the requirements, the engineers start creating a software design document. Design of the software means the high-level design of the main modules with a full picture of how the parts fit together. The language, operating system, and hardware components should be clear at this stage.
  • Implementation, testing and documenting. There are 3 next processes which are combined: (1) Implementation - programming the code for the project (2) Testing - looking for defects (3) Documenting - making documents of the inner design of software, API can be also included
  • Deployment and maintenance: The deployment includes installation, customization, testing, and possibly a longer period of evaluation. Software training and support are important because software is only effective if it is used rightly. Maintaining and improving software is the stage to cope with new faults or requirements, it usually takes a lot of time and effort"

Software Engineering: About, Steps, Tools

From the link:

"ABOUT:

Software engineering is a field of engineering, for designing and writing programs for computers or other electronic devices. A software engineer, or programmer, writes software and compiles the software to make instructions that the computer can follow.

Good quality software is easier to fix and add new features. Good documentation and good design are parts of good software. 

Software release life cycle includes: 
  • Getting the requirements
  • Planning
  • Writing
  • Documenting
  • Testing the software
  • Release
When it is released, it is given to other people to use, who are called the "end users". Good software should be user friendly, which means it is easy to use.

STEPS in creating software: Software engineering can broadly be split into the following steps:
  • Requirements say what the software should do.
  • Software design is usually done on paper. It says what the different parts of the software are, and how they talk to each other.
  • After the design phase is done, each component (part) of the software is coded. Code is what tells the computer exactly what to do at each step.
  • Testing is done to see if the components meet the requirements and that the system as a whole meet the requirements.
  • Part or all of this process can be repeated if software bugs are found or new requirements are needed
TOOLS used in creating software: Software engineers use many tools and practices in making software. Some of the most common are:
  • Flowcharts
  • UML diagram
  • Debugging tools
  • Compiler
  • Text editor, usually part of an IDE - Integrated Development Environment
  • Database"

Computer Science

From the link:

"Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application.

  • Computer Science is the study of algorithmic processes, computational machines and computation itself. As a discipline, computer science spans a range of topics from theoretical studies of algorithms, computation and information to the practical issues of implementing computational systems in hardware and software.
  • Its fields can be divided into: (1) Theoretical and (2) Practical disciplines. 
  • The theory of computation concerns abstract models of computation and general classes of problems that can be solved using them
  • Computer Graphics or Computational Geometry emphasize more specific applications
  • Algorithms and data structures have been called the heart of computer science
  • Programming language theory considers approaches to the description of computational processes, while computer programming involves the use of them to create complex systems
  • Computer architecture describes construction of computer components and computer-operated equipment
  • Artificial intelligence aims to synthesize goal-orientated processes such as problem-solving, decision-making, environmental adaptation, planning and learning found in humans and animals"

Programmer / Coder / Software Developer

From the link:

"A computer programmer is a person who makes computer programs using a programming language. Programmers are also called software developers, coders, or hackers. A programmer's main jobs are writing program source code, testing if it works, and debugging (fixing) the program if there are problems. Programmers often use software tools such as text editors and IDEs (Integrated Development Environments) to help them work. Computer programming is a profession that can be done from a computer anywhere in the world. This is called telecommuting - doing work on the Internet instead of in an office. Some programmers are famous because their software is used by many people. One example is Linus Torvalds, who created an important part of the Linux operating system. Programming can be done in many different languages and can look very different but do the same thing. An example of this is the Hello world program"

Computer Programming - Some terms

From the link:

"Programming: Computer programming is the process of telling a computer to do certain things by giving it instructions. These instructions are called programs. A person who writes instructions is a computer programmer. The instructions come in different languages; they are called programming languages. There are many programming languages. Sometimes, programmers use special software, such as integrated development environments (IDEs), which have many special parts, including a text editor, to help them to type and edit programs. 

Computers understand instructions directly if those instructions are written in machine code, special characters that can be processed by the computer but are difficult for humans to read. Writing these instructions directly in machine code takes a long time and is difficult, so instructions are written in a language easier for people to use, which the computer converts into "computer form" instructions (in other words, machine code) so the computer can follow them. The simplest of these is assembly language. Programs written in a language more like English are converted by a compiler. Some languages, called interpreted languages, use interpreters instead of assemblers or compilers.

Once a program has been compiled the instructions in it are written into a file that contains a series of numbers that the computer can understand. These machine-instructions will be loaded into the memory computer's so that the can run them when the executable is opened.

Variables: A variable is a piece of the program that can be changed. Variables can include information added by the user, or answers that are found as a result of a calculation.

Conditionals: Conditionals are parts of the program that work if something the program can check to see whether it is true. If that part is not true, then the program won't make it happen. A conditional is often done with an "If Statement". Some words used are: "if", "else", "else if", 

Comments: In the program, a comment is information that is meant to be read by people who are reading the program. Comments have a special symbol in front of them that tells the computer that they are comments and should not be read as code. Comments are used to explain how a certain part of a program works. This is helpful when multiple people are working on the same program, and if they need to work on a section where someone else was working on. If the programmer that was working on it first left behind comments for any other programmer that works on it later, it will help them know faster what is going on in the program.

Debugging: Computer programmers make mistakes when writing codes. The mistakes are called bugs and cause the program to follow the wrong instructions. Debugging is the process of finding and fixing the mistakes. To debug code is to find such mistakes. There are many debugging methods. Software such as text editors and IDEs have tools that can detect specific mistakes in the codes before the program is executed. Programmers can also use programs called debuggers. A debugger can run a program step by step and track how values of specific variables change when the program is running. Programmers can use a debugger to find where the mistake happened in the code

IDE (Integrated Development Environment): It is a computer program that makes it easier to write other computer programs. They are used by computer programmers to edit source code, and can be easier to use than other text editors for new programmers. They can have compilers so programmers don't have to open other programs to compile the source code. They also often have syntax highlighting. A feature of an IDE is to check the syntax, and libraries can be added to increase functionality. It also may have predictive coding that can finish lines with syntax such as brackets or semicolons and can suggest variables to be used. It also may have debuggers that can step through lines, take breaks and inspect variables. An IDE often comes with an interpreter and a compiler. Certain IDEs can allow multi-language which means that functions can be written in different languages"

Compiler

 From the link:

"A compiler is a computer program that translates computer code written in one programming language into another programming language. 

  • The first language is called the source language, and the code is called SOURCE CODE
  • The second language is called the target and can usually be understood by computers. In that case, the instructions become MACHINE CODE.

A compiler usually has 3 STEPS:

  1. It reads the text and makes notes about how the instructions go together. If the instructions don't make sense, it will try to tell the programmer
  2. Then it will use what it knows about the target language to make the instructions fit better
  3. It then writes down the instructions in the target language. If the source instructions are on different pages, it may have to compile several before it can write everything down"

About Programming Language (source: Wiki)

From the link:

"A programming language is a type of written language that tells computers what to do. 

Examples: Python, Ruby, Java, JavaScript, C, C++, and C#. 

HTML is a markup language, in a technical sense not a programming language, since a program can't be made with it, while it still does tell the computer, i.e. web browser, what information to display. Neither is CSS, these languages are used to make web pages, they can be used to make static web pages, while often one or more programming languages are used additionally to make a dynamic web page. Neither are notebook environments programming languages (while often used by programmers), such one of the more popular ones, Jupyter, that is made for many programming languages, such as Julia, Python, and R (most often users choose to use only one programming language with it, one of those three officially supported and the project named after, or some other language). 

Programming languages are used to write all computer programs and computer software. A programming language is like a set of instructions that the computer follows to do something.

A programmer writes text in the source code of a programming language to make programs. Usually, the programming language uses real words for some of the commands (e.g. "if... then... else...", "and", "or"), so that the language is easier for a human to understand. Like any normal language, many programming languages use punctuation. Many programs are then compiled, which means that the computer changes, or translates, the source code into another language (such as assembly language or machine language) that a computer can read, but which is much harder for a person to read"

Types of Programming Language:
  • High-level vs. Low-level
  • Declarative vs. Imperative programming
  • Functional vs. Procedural
  • Stack based
  • Object-Oriented
  • Flow-Oriented
  • Scientific-Computing
  • Document Creation

Saturday, September 18, 2021

Mechatronics Engineering Q&A | More than just Electro-Mechanical / Computer Engineering

What is Mechatronics Engineering?

What do Mechatronics Engineers do? | Can Mechatronics Engineers Build Robots?

Mechatronics - Industrial Electronics Technology

What is Mechatronics ? The Basics

What is Mechatronics? More than simply "Mechanics" + "Electronics"...

From the link:











"Many people treat mechatronics as a modern buzzword synonymous with Automation, Robotics and Electromechanical Engineering.

Mechatronics, also called Mechatronics Engineering, is an interdisciplinary branch of engineering that focuses on the integration of Mechanical, Electronic and Electrical Engineering systems. Also includes a combination of Robotics, Electronics, Computer Science, Telecommunications, Systems, Control, and Product Engineering.

French standard gives the following definition: Approach aiming at the synergistic integration of Mechanics, Electronics, Control theory, and Computer Science within Product Design and Manufacturing, in order to improve and/or optimize its functionality.

As technology advances over time, various subfields of engineering have succeeded in both adapting and multiplying. The intention of mechatronics is to produce a design solution that unifies each of these various subfields. Originally, the field of mechatronics was intended to be nothing more than a combination of mechanics and electronics, hence the name being a portmanteau of mechanics and electronics; however, as the complexity of technical systems continued to evolve, the definition had been broadened to include more technical areas."

From the link:

"Mechatronics is a multidisciplinary field that refers to the skill sets needed in the contemporary, advanced automated manufacturing industry. At the intersection of Mechanics, Electronics, and Computing, Mechatronics specialists create simpler, smarter systems. Mechatronics is an essential foundation for the expected growth in automation and manufacturing.

Mechatronics deals with Robotics, Control Systems, and Electro-Mechanical systems. If you like Mechanics, Robotics, or Production equipment, have a knack for creative problem solving, enjoy technical and engineering activities, Mechatronics could be for you.

Mechatronics specialists can perform across multiple disciplines and have a solid base from which to grow. Mechatronics specialists know both mechanical and electrical engineering fundamentals - they speak both languages - so a mechatronics specialist can work with both mechanical and engineering teams.

Mechatronics specialists work with massive industrial robots, smaller robots in pick-and-place operations, control systems for bottling or packaging of food and drink products, drones, designing control systems for rides in amusement parks, prototype development.

Some mechatronics specialists are employed in firms where it is necessary to design and maintain automatic equipment. This includes industries such as manufacturing, mining, aviation, robotics, defense, and transport. Other mechatronic specialists are employed by large manufacturing companies involved in high-volume production. Many new career opportunities are on the horizon due to technological advances". 

From the link:

"Mechatronics involves a combination of Mechanical and Electronic skills. It is becoming widely adopted in advanced manufacturing operations because it covers a wide array of specialties. Companies are very interested in hiring people who have the knowledge to keep their lines running at full capacity, with as little down-time as possible.

Mechatronics professionals work with Hydraulics, Pneumatics, Robotics, Automated Controls, Programmable Controllers, Process Control and Mechanical applications. They can also design, implement, manufacture, service and repair a wide array of equipment for their employers.

What does that mean in simple English, in layman's terms?

In manufacturing, time lost is money lost. If a part breaks down, the production stops and the company loses money. Every moment that a piece of equipment is down can mean big losses. It can be really expensive to replace a piece of machinery just because a few parts stop working.

Companies look to hire technicians who can identify and solve problems before they cause outages. In the worst case scenario, they need people who can quickly repair machinery if it goes down.

Companies prefer to hire technicians who have the skills to repair the whole system, ideally speaking - including robotics, electrical and mechanical systems.

Mechatronics technicians have the skills and the know-how to repair any of those systems.

Since they are knowledgeable in so many areas, the Mechatronics technician is in high demand in a large variety of industries - Aerospace, Robotics, Automotive Production, Manufacturing and even Business. As manufacturing continues to become even more advanced, the future of Mechatronics looks very bright"

James Harris Simons | Computers and Math | Smart Billionaire

Where is C++ being Used?

C++ Full Course For Beginners (Learn C++ in 10 hours)

C++ Programming Tutorial 1 - Intro to C++

C++ Basics For Beginners | Learn C++ Programming | C++ Tutorial For Beginners

Build C++ GUI Apps Fast! Your first C++ GUI app!

How to Really learn C++

C++ Tutorial 2021

Should you Learn C++ in 2019?

Object-oriented Programming in 7 minutes | Mosh

C++ Crash Course For Beginners

Learn C++ With Me #1 - How to Compile and Run C++ Code

Bjarne Stroustrup - The Essence of C++

Bjarne Stroustrup: Why I Created C++ | Big Think

C++ Tutorial for Beginners - Full Course

C++ Tutorial From Basic to Advance

5 Things I Wish I Knew Before Starting Programming

Python Beginner Project Tutorial #1 - Your First Python Project

Python for Beginners - Learn Python in 1 Hour

Learn Python - Full Course for Beginners [Tutorial]

Python Tutorial - Python for Beginners [Full Course]

How To Master Python

Python Tutorial for Beginners - Learn Python in 5 Hours [Full Course]

Python Tutorial for Absolute Beginners #1 - What Are Variables?

How To Think Like A Programmer

Python As Fast as Possible - Learn Python in ~75 Minutes

Python Beginner Tutorial 1 For Absolute Beginners - (Setting up Python)

Hardware Notes: For my self-learning and subject revision

  • Digital technology - is everywhere in our lives
  • It is important to have a good foundation in fundamentals of Digital Technology
  • It is important to know Programmable Logic
  • "Digital": The word is used because work happens by counting digits 
  • Digital Technology has progressed from: Vacuum-Tube --> Circuits --> Discrete Transistors --> complex ICs (Integrated Circuits)
  • Many integrated circuits contain millions of transistors
  • Many transistors are programmable
  • Electronic circuits: 2 categories: (1) Digital and (2) Analog
  • Still typing, while learning...

1. Algorithmic Thinking, Peak Finding

What's an algorithm? - David J. Malan

What is a Core i3, Core i5, or Core i7 as Fast As Possible

RAM Explained - Random Access Memory

How does a CPU (Central Processing Unit) work

How do hard drives work? - Kanawat Senanan

What does what in your computer? Computer parts Explained

Inside your computer - Bettina Bair

Engineering America: Gwynne Shotwell at TEDxChapmanU

Elon Musk: The Scientist Behind the CEO

Map of Computer Science

Assembly language vs. Machine Code

How do CPUs read machine code?

“Hello, world” from scratch

Exploring How Computers Work

Inductors Explained - The basics. How inductors work. Working principle

Capacitors Explained - The basics. How capacitors work. Working principle

Transistors - The Invention That Changed The World

The Math behind Cryptocurrencies | How does Bitcoin actually work?

Voltage Explained - What is Voltage? Basic electricity potential differ...

How does an Electric Motor work? (DC Motor)

Basic Electricity - Resistance and Ohm's law

Building my dream computer - Part 1

Why do Computers Use 1s and 0s? Binary and Transistors Explained.

How do Electric Transmission Lines Work?

How do SSDs Work? | How does your Smartphone store data? | Insanely Com...

How do Lithium-ion Batteries Work?

Ohms Law Explained - The basics circuit theory

Beginner's Guide to Soldering Electronics Part 1

Sand to Silicon to Chips : Chip Manufacturing - How are Microchips made?

What Is Inside a Microchip?

Must Watch! What are PCBs (Printed Circuit Boards)? | How do PCBs Work?

Basic Electronic components | How to and why to use electronics tutorial

Electronic Components - Names and Symbols

Quantum Physics for 7 Year Olds | Dominic Walliman | TEDxEastVan

All Physics Explained in 15 Minutes (ALL Worth Remembering)

Physics - Basic Introduction

Inside an iPhone Battery Factory - in China

Inside a Huge PCB (Printed Circuit Board) Factory - in China

Inside a Small Chinese Electronics Factory

How Electricity Works - Working principle

Intro to Electronic Components: Diodes

Intro to Electronic Components: Capacitors

Inductors Explained - The basics how inductors work working principle

Mechatronics Design, ME102B, Prof. Kazerooni, Spring 2014

What are the Classifications of Electronic Components | Passive & Active...

Resistor | Basic Electronics

Passive and Active Components | Basic Electronics

Basic Electronics | How & Why Electronics Components Tutorial | Step by step Electronics

Electronics Tutorial For Beginners

All Electronics Components basic information (in Hindi)

Basic Electronic Components, their Symbols and Connections

How To Test All Electronic Components with Multimeter | Resistor Capacitor Diode LED Transistor Fuse

BSCSUS.com | Vlog #19 | 4 weeks of classes up - brief update

Mini-Documentary "The Wandering Monk" about Dr SSM | Ex-TI (Texas Instruments, Texas), Brown-U grad, IIT grad, Founder, Indian VLSI chip design company

Electronic Components Guide

A simple guide to electronic components.

Tuesday, September 14, 2021

What is Unix operating system

UNIX Operating System

(From Wikipedia at the link)

"Unix (trademarked as UNIX) is a family of multitasking, multiuser computer operating systems "

This is just an initial post. More information coming soon...


Monday, September 13, 2021

Main topics in the book: Coding all-in-one for Dummies

(These topics are from Coding for Dummies)




















Getting started with coding
  • What is coding?
  • Programming for the web'
  • Becoming a programmer
Career building with coding
  • Exploring coding career paths
  • Exploring undergraduate and graduate degrees
  • Training on the job
  • Coding career myths
Basic web coding 
  • Exploring basic HTML
  • Getting more of HTML
  • Getting stylish with CSS
    Building floating page layouts
  • Using alternative positioning
Advanced web coding
  • Working faster with Twitter bootstrap
  • Adding in JavaScript
  • Understanding Callbacks and Closures
  • Embracing AJAX and JSON
  • jQuery
Creating web applications
  • Building your own App
  • Researching your first web application
  • Coding and debugging your first web application
Selecting data analysis tools
  • Wrapping your head around Python
  • Installing a Python distribution
  • Working with real data
Evaluating data
  • Conditioning data
  • Shaping data
  • Crash course for MatPlotLib
  • Visualizing data
  • Exploring Data Analysis
  • Exploring four simple and effective algorithms
Essentials of machine learning
  • How to machines learn?
  • Demystifying the Math behind Machine Learning
  • Descending the right curve
  • Validating Machine Learning
Applying machine learning
  • Starting with Simple learners
  • Leveraging similarity
  • Hitting complexity with Neural Networks
  • Resorting to ensembles of learners
  • Real world applications

Main and Subtopics in the Middle School Study Guide book

(These topics are from the CS & Coding book as below) 











Computing Systems

  • What is Computer Science?
  • What is a computer?
  • How do we interact with computers?

Data and Analysis

  • Storing information
  • Collecting and using information

Software Engineering

  • Designing computer systems
  • Testing
  • Documenting
  • Incorporating feedback
  • Collaborating

Algorithms and Programming

  • Using algorithms
  • Programming languages
  • Computational thinking

Universal Programming Principles

  • Variables
  • Conditional statements
  • Loops
  • Events
  • Procedures

Programming with Scratch

  • Start
  • Basic algorithms
  • Data and Operators
  • Control Blocks and Event Blocks
  • Reusing Scripts

Programming in Python

  • Start
  • Variables
  • Strings
  • Numbers as variables
  • Lists and Boolean expressions
  • For loops
  • While loops
  • Nested loops
  • Conditional statements
  • Functions

Web Development

  • What is the internet?
  • Cybersecurity
  • Creating a basic webpage
  • HTML text elements
  • Link elements
  • Styling with CSS
  • Styling individual elements with CSS

CS50 2020 - Lecture 0 - Scratch | Basics of CS


This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming.

Contents
  • Introduction
  • Representation
  • Binary
  • ASCII
  • Unicode
  • RGB
  • Algorithms
  • Finding David
  • Solving Problems Efficiently
  • Pseudocode
  • Scratch
  • Hello, World
  • Variables
  • Text to Speech
  • Sounds
  • Loops
  • Pen
  • Conditions
  • Variables
  • Animation
  • Sensing
  • Video Motion
  • Broadcasts
  • Translation
  • Custom Blocks
  • Gingerbread Tale
  • Oscartime
  • Raining Men

Introduction to Programming and Computer Science - Full Course

Sunday, September 12, 2021

Good Online Learning Websites for Computer Science in Sep. 2021

From the link and online search. 

Also check out this useful article "The 15 best free or affordable online computer science courses, including options from Harvard, MIT, and Stanford" at this link

The following are 11 good websites to learn about Computer Science and other topics:

  1. GitHub.com at link
  2. Udemy.com 
  3. KhanAcademy.org
  4. Coursera.org
  5. SkillShare.com
  6. Brilliant.Org
  7. Udacity.com
  8. Lynda.com
  9. MasterClass.com
  10. PluralSight.com
  11. Codecademy.com
  12. edX.org
  13. Alison.com
  14. LinkedIn Learning
  15. TeachYourselfCS.com
  16. ComputerScience.org
  17. OpenCulture.com
  18. ClassCentral.com
  19. FreeCodeCamp.org
  20. Harvard.edu - Online Computer Science Courses
  21. HackReactor.com
  22. FlatIronSchool.com
  23. CodingDojo.com
  24. AppAcademy.io
  25. My GreatLearning.com
  26. TeamTreeHouse.com
  27. Thinkful.com
  28. Practicum.Yandex.com
  29. FullStackAcademy.com
  30. DevCodeCamp.com
  31. GeneralAssemb.ly (Bit Maker)
  32. BrainStation.io
  33. TheDataIncubator.com
  34. Galvanize.com
  35. HolbertonSchool.com and Holberton.us
  36. SpringBoard.com
  37. North Western Bootcamps
  38. MIT xPro
  39. LambdaSchool.com
  40. DevMountain.com
  41. CS50 channel on YouTube at link
  42. MIT OpenCourseWare channel on YouTube at link
  43. TheNewBoston channel on YouTube at link and so on...
Oh, wow ! 

There are SO MANY courses available online ! Some are completely free. Some have a so called "free" trial period of 1 week or more, but you have to enter your credit card information! Some are just websites with courses, some have videos, and some are online boot camps. You can pay for some in installments, but can pay for some after you have been hired. Some have great reviews, and some don't. Yes, so many choices can cause confusion, but they can also be good because the competition will lead them to improve and offer more value !

Is Coding Bootcamp Worth It (2020)? (from a software engineer)

Coding Bootcamps Review 2021 | Easy? | Worth It?

American Unicorn StartUp Companies in 2021

List of American companies that are worth over a billion dollars, as of Sep. 2021, in no particular order, from the link

Remember, this a list of companies, not just Apps. Also remember that only some companies, and only American companies are listed here! 

  1. SpaceX - Aerospace
  2. Instacart - Retail 
  3. Epic Games - Video games
  4. Databricks - Software US
  5. Rivian - Automotive
  6. Chime - Financial services
  7. Fanatics - E-commerce
  8. GoPuff - E-commerce
  9. Plaid - Financial Technology
  10. Biosplice Therapeutics - Health
  11. Aurora - Self-driving cars 
  12. Figma - Software
  13. Gusto - Software
  14. Reddit - Internet media
  15. Ripple - Computer software
  16. ServiceTitan - Software
  17. Tanium - Technology
  18. Tempus - Health
  19. Toast - Point of sale
  20. Netskope - Computer security
  21. Brex - Finance
  22. Carta - Software
  23. Scale AI - Artificial intelligence
  24. Argo AI - Artificial intelligence
  25. Gong - Artificial intelligence
  26. Discord - Software
  27. WeWork - Commercial real estate
  28. Automation Anywhere - Robotic process automation
  29. DataRobot - Artificial intelligence
  30. Better.com - Financial services
  31. GitLab - Software
  32. Thrasio -
  33. Airtable - Collaborative software
  34. Vice Media - Mass media
  35. Samsara - Technology
  36. CloudKitchens - Ghost kitchen
  37. JUUL Labs - Electronic Cigarettes
  38. Anduril Industries - 
  39. Confluent -
  40. Magic Leap - Augmented Reality
  41. Zenefits - Human resource management
  42. Chainalysis - Blockchain
  43. Relativity Space - Aerospace
  44. Ginkgo Bioworks - Biotechnology
  45. Next Insurance - Insurance
  46. TripActions - Corporate Travel Management
  47. Niantic - Video games
  48. VAST Data - 
  49. Rubrik - Computer storage
  50. SentinelOne - 
  51. Automattic - Internet
  52. Lucid Software - Software
  53. Warby Parker - Retail
  54. Workrise - Workforce management
  55. Bird - Transportation
  56. Convoy - Trucking
  57. AmWINS Group -
  58. Mozido - E-commerce
  59. Houzz - Interior design
  60. KeepTruckin - Logistics
  61. Acorns - Financial technology
  62. Eightfold.ai - Artificial intelligence
  63. Nextdoor - Social network
  64. Udemy - 
  65. Avant - Consumer Finance
  66. Intarcia Therapeutics - Pharmaceutical
  67. ThoughtSpot - Analytics
  68. Prosper Marketplace - Financial Technology
  69. NantOmics - Biotechnology
  70. Quora - Social Network
  71. Zocdoc - Healthcare
  72. dutchie - Cannabis
  73. PAX Labs - Cannabis
  74. Thumbtack 
  75. Workato - Technology
  76. Afiniti - Software development
  77. Seismic Software
  78. HeartFlow - 
  79. Duolingo - Education
  80. ID.me - Identity verification service
  81. Podium - Software
  82. M1 Finance - Financial technology
  83. Away - Retail
  84. NetDocuments - Software
  85. QOMPLX, Inc. - Computer Security
  86. Stash - Financial technology
  87. Symphony - Software
  88. G2 - Technology
  89. Knotel - 
  90. Applied Intuition - Software
  91. ezCater
  92. Rec Room Inc - Video games
  93. Alation - Software
  94. Fair - 
  95. FloQast - Software
  96. Glossier - 
  97. Intercom - Software
  98. Starburst Data - Technology
  99. Sysdig - Cybersecurity
  100. Outreach - Sales
  101. TuSimple - 
  102. Virta Health - Healthcare
  103. Wheels Up - Private aviation
  104. Instabase - Software
  105. Age of Learning, Inc. - Education
  106. AppDirect - 
  107. Arctic Wolf - Cybersecurity
  108. Bluecore - E-commerce
  109. Branch Metrics
  110. Calabrio - Software
  111. Frontline Education
  112. Grammarly - Software
  113. Grove Collaborative
  114. InVision - 
  115. Locus Robotics - Robotics
  116. Lookout Security
  117. Pantheon - WebOps
  118. Prometheus Group - 
  119. REEF Technology - Info. Tech. & Services
  120. Rent the Runway - E-commerce
  121. Rubicon Global - Waste management 
  122. Shape Security - 
  123. Sift - Digital Trust & Safety
  124. Sonder - 
  125. Splashtop - Software
  126. StockX - E-commerce
  127. Tekion - Software as a Service (SaaS)
  128. TransparentBusiness - Technology
  129. Tresata - 
  130. Turo - Car sharing
  131. Udacity - Education
  132. Vox Media - 
  133. VTS - 
  134. Stripe - Financial services
  135. Tipalti - Financial Technology
  136. BigID - Technology
  137. HoneyBook - Financial services