Introduction to Coding and Programming Languages, CS101 – Study Notes
offline

Source: CS101 Introduction to Coding Concepts and Programming Languages

Tags: coding, programming languages, Python, Java, C++, JavaScript, Ruby, PHP, web development, software development, intro to CS, CS101, UCF

Difficulty: Beginner | Prerequisites: None


Big Picture

This is the starting line for the entire CS101 course. Before you write a single line of code, you need to understand what coding is and why different programming languages exist. Every topic you encounter later in the course (data structures, algorithms, software engineering) builds on the idea that you are writing instructions a computer can execute, and that the language you choose shapes how you express those instructions. If you are coming in cold, this is the right place to begin.


TL;DR

Coding is the process of writing instructions that a computer can understand and run. There are many programming languages, each with different strengths: Python is beginner-friendly, Java dominates enterprise software, C++ is used where performance matters, JavaScript powers the web, and Ruby and PHP are common in web development. Picking a language depends on what you want to build.


Key Terms

Coding

The process of creating instructions that computers can understand and execute. You write these instructions in a programming language, and the computer follows them to perform tasks.

Think of it as writing a very precise recipe that a machine follows exactly, with no room for interpretation.

Programming language

A formal language with its own syntax (rules for writing) and semantics (rules for meaning) that lets a human communicate instructions to a computer.

In simple terms, it is the specific "language" you use to talk to a computer, the same way English or French is a language you use to talk to people.

Syntax

The set of rules that defines how statements in a programming language must be structured. A syntax error means you broke a grammar rule the language enforces.

Think of it as the grammar of a programming language. Just as English has rules about word order, a programming language has rules about how you arrange your code.

High-level language

A programming language that abstracts away most hardware details, letting you write code that reads closer to human language. Python, Java, and JavaScript are all high-level languages.

In simple terms, a high-level language hides the complicated machine-level stuff so you can focus on solving problems rather than managing memory addresses.

Compiled language

A language where source code is translated entirely into machine code by a compiler before the program runs. C++ is a compiled language.

Think of it as translating an entire book into another language before handing it to the reader, rather than translating one sentence at a time.

Interpreted language

A language where code is executed line by line at runtime by an interpreter, rather than being compiled in advance. Python and Ruby are interpreted languages.

In simple terms, the computer reads and runs your code one instruction at a time, on the fly.


Core Content

What Coding Is and Why It Matters

  • Coding means writing programs: sets of instructions a computer executes to perform tasks.

  • It underpins nearly everything digital: websites, mobile apps, operating systems, data analysis pipelines, games, and embedded systems.

  • Learning to code is less about memorising syntax and more about learning to think in structured, logical steps.

Popular Programming Languages

Python – Versatile, Beginner-Friendly

  • Known for clean, readable syntax that looks close to plain English.

  • Used heavily in web development (Django, Flask), data analysis (pandas, NumPy), machine learning (TensorFlow, scikit-learn), and scripting.

  • Interpreted language, so you can run code immediately without a separate compile step.

  • Strong community and enormous library ecosystem, which means most common tasks already have a ready-made solution.

Java – Enterprise and Android

  • A statically typed, compiled-to-bytecode language that runs on the Java Virtual Machine (JVM).

  • Dominant in large-scale enterprise applications, backend services, and Android mobile development.

  • "Write once, run anywhere" philosophy: code compiled to bytecode can run on any platform with a JVM.

  • Verbose compared to Python, but the strictness catches many errors at compile time rather than at runtime.

C++ – Performance and Systems

  • An extension of the C language, adding object-oriented features.

  • Used for operating systems, game engines, embedded systems, and any context where fine-grained control over memory and hardware matters.

  • Compiled directly to machine code, which makes it fast but also means you manage memory yourself (no built-in garbage collection in standard use).

  • Steeper learning curve than Python or Java, but understanding C++ gives you a deeper grasp of how computers work under the surface.

JavaScript – The Language of the Web

  • Originally created to make web pages interactive in the browser (front-end).

  • Now also used on the server side through Node.js, making it possible to write an entire web application in one language.

  • Every modern web browser has a built-in JavaScript engine, so it runs everywhere the web runs.

  • Dynamically typed and event-driven, which suits the asynchronous nature of web interactions.

Ruby – Developer Happiness

  • Designed with developer productivity and readability in mind.

  • Best known for the Ruby on Rails framework, which made rapid web application development mainstream.

  • Interpreted, dynamically typed, and heavily object-oriented (everything in Ruby is an object).

  • Smaller ecosystem than Python or JavaScript, but valued for clean, expressive code.

PHP – Server-Side Web

  • A server-side scripting language created specifically for web development.

  • Powers a large share of the web, including WordPress, which runs a significant percentage of all websites.

  • Embeds directly into HTML, which made it easy to adopt in the early days of the web.

  • Often criticised for inconsistent design choices, but modern PHP (version 8+) has addressed many historical quirks.

How to Think About Choosing a Language

  • The "best" language depends on what you are building, not on which language is most popular this year.

  • For a first language in CS101, Python or JavaScript are common starting points because feedback is immediate and the syntax is forgiving.

  • In a professional context, the choice is driven by the project domain: web front-end means JavaScript, Android means Java or Kotlin, data science means Python, systems programming means C or C++, and so on.

  • Learning one language well makes the second language much easier, because the underlying concepts (variables, loops, functions) transfer across languages.


Real-World Applications

  • Python scripts automate repetitive office tasks, pull data from APIs, and train the machine-learning models behind recommendation systems and voice assistants.

  • Java powers the backend of major banking and e-commerce platforms where reliability and scalability are non-negotiable.

  • C++ runs inside game engines like Unreal Engine and is the backbone of performance-critical software such as database engines and operating system kernels.

  • JavaScript makes every interactive element you use on a website work, from dropdown menus to real-time chat.


Common Misconceptions

  • "Python is slow, so it is not used for serious work." Python is slower than C++ in raw execution, but for most applications the bottleneck is not the language speed. Libraries like NumPy call optimised C code under the hood, and Python's productivity advantage often outweighs the speed difference.

  • "You need to learn C++ first to be a real programmer." There is no required starting language. Many successful developers never touch C++. Start with whatever language matches your goals.

  • "JavaScript is only for websites." With Node.js, Electron, and React Native, JavaScript is used for servers, desktop apps, and mobile apps as well.

  • "Learning more languages makes you a better programmer." Breadth helps, but depth matters more early on. Understanding one language thoroughly, including its idioms and tooling, builds transferable problem-solving skills faster than skimming five languages.


Why It Matters / Exam Flags

⚠️ Be able to match each language to its primary use case (e.g. C++ for systems/performance, JavaScript for web front-end). This is a common exam format.

⚠️ Know the difference between compiled and interpreted languages, and be able to classify each language covered in the course.

⚠️ Understand that syntax varies between languages but the core concepts (variables, functions, control flow) are shared.


Quick Self-Test

  1. True or false: Python is a compiled language.

  1. Fill in the blank: JavaScript was originally designed for ________ development.

  1. True or false: C++ includes built-in garbage collection by default.

  1. Fill in the blank: Java programs compile to bytecode that runs on the ________.

  1. True or false: PHP was created specifically for web development.

Answers: 1. False (interpreted). 2. Front-end web / browser-based. 3. False. 4. Java Virtual Machine (JVM). 5. True.


Practice Q&A

Q: Name three programming languages and state a primary use case for each.

A: Python, used for data analysis and AI; Java, used for enterprise applications and Android development; C++, used for operating systems and high-performance applications.

Q: What is the difference between a compiled language and an interpreted language?

A: A compiled language is translated entirely into machine code before it runs (e.g. C++). An interpreted language is executed line by line at runtime by an interpreter (e.g. Python).

Q: Why might a developer choose JavaScript over Python for a project?

A: If the project involves front-end web development or needs to run in a browser, JavaScript is the standard choice because every browser has a built-in JavaScript engine. Python does not run natively in browsers.

Q: What does "write once, run anywhere" mean in the context of Java?

A: Java code compiles to bytecode rather than platform-specific machine code. Any device with a Java Virtual Machine can run that bytecode, so the same compiled program works on Windows, macOS, Linux, and other platforms without recompilation.

Q: A student says "I should learn C++ first because it is the most powerful language." Is this good advice? Why or why not?

A: Not necessarily. C++ offers fine-grained control and performance, but its complexity makes it a difficult first language. A beginner-friendly language like Python lets you focus on core programming concepts without managing memory manually. The "best" first language depends on your goals, not on raw power.


Connections to Other Topics

  • The concept of syntax introduced here leads directly into the Programming Concepts notes, where you will see how variables, functions, and control flow work within a language's syntax rules.

  • Understanding compiled vs. interpreted languages connects to later topics on performance analysis and algorithm efficiency, because the execution model affects how you measure and optimise speed.

  • Choosing a language ties into software engineering and project planning: real-world teams pick languages based on ecosystem, team expertise, and deployment constraints, not just personal preference.


Related Terms / Search Tags

coding, programming, programming languages, Python, Java, C++, JavaScript, Ruby, PHP, high-level language, low-level language, compiled language, interpreted language, syntax, semantics, web development, data analysis, artificial intelligence, machine learning, Android development, enterprise software, game development, operating systems, Node.js, JVM, Java Virtual Machine, scripting language, CS101, intro to computer science, UCF, beginner programming