Fiveable

🧵Programming Languages and Techniques I Unit 1 Review

QR code for Programming Languages and Techniques I practice questions

1.2 Programming Languages and Paradigms

1.2 Programming Languages and Paradigms

Written by the Fiveable Content Team • Last updated August 2025
Written by the Fiveable Content Team • Last updated August 2025
🧵Programming Languages and Techniques I
Unit & Topic Study Guides

Programming languages come in various forms, from high-level to low-level. High-level languages like Python abstract hardware details, making coding easier and more portable. Low-level languages like Assembly offer direct hardware control but require more expertise.

Different programming paradigms shape how we approach problem-solving in code. Procedural programming organizes code into sequential steps, while object-oriented programming encapsulates data and behavior into objects. Functional programming treats computation as mathematical functions, avoiding mutable state.

Programming Language Fundamentals

High-level vs low-level languages

  • High-level programming languages abstract hardware details enabling easier code writing and reading
  • Portability across platforms facilitates development of cross-platform applications (Python, Java, JavaScript)
  • Low-level programming languages provide direct hardware control for performance-critical systems
  • Assembly and machine code offer precise control but require more expertise to use effectively
  • Web development, data analysis, and scientific computing leverage high-level languages for rapid development
  • Operating systems, device drivers, and embedded systems rely on low-level languages for optimal performance
High-level vs low-level languages, CS101 - (Other) Programming languages

Comparison of programming paradigms

  • Procedural programming organizes code into sequential procedures emphasizing step-by-step execution
  • Variables, loops, and functions form the building blocks of procedural languages (C, FORTRAN)
  • Object-oriented programming encapsulates data and behavior into objects promoting modularity and reusability
  • Classes, inheritance, and polymorphism enable complex software architectures in OOP (Java, C++, Python)
  • Functional programming treats computation as mathematical functions avoiding mutable state
  • Higher-order functions and recursion facilitate concise and expressive code in functional languages (Haskell, Lisp, Scala)
  • State management differs: procedural and OOP use mutable state, functional programming avoids it
  • Code organization varies: OOP groups by objects, procedural by functions, functional by data transformations
  • Execution flow: procedural follows sequential steps, OOP uses message passing, functional evaluates expressions
High-level vs low-level languages, Top Programming Languages Used In The IoT Market - Electronics-Lab.com

Programming Languages and Their Applications

  • C++ combines compiled execution, static typing, and support for OOP and generic programming
  • System development, game engines, and resource-intensive applications benefit from C++'s performance
  • Java's "write once, run anywhere" philosophy enables cross-platform development through bytecode compilation
  • Enterprise software and Android apps leverage Java's robust OOP features and extensive libraries
  • Python's readability and multi-paradigm support make it versatile for web, data, and AI applications
  • JavaScript powers front-end web interactivity and extends to server-side programming with Node.js

Strengths of languages for tasks

  • Compiled languages (C++, Java) offer faster execution and early error detection
  • Complex, large-scale applications benefit from the performance of compiled languages
  • Interpreted languages (Python, JavaScript) enable rapid development and cross-platform compatibility
  • Prototyping and scripting tasks are well-suited for interpreted languages' flexibility
  • OOP excels in modeling real-world entities and developing graphical user interfaces
  • Functional programming shines in parallel processing and mathematical computations
  • Procedural paradigm suits straightforward, linear problem-solving tasks
  • OOP can introduce unnecessary complexity in simple programs
  • Functional programming may be less intuitive for modeling stateful problems
  • Procedural approaches can become unwieldy in large, complex systems
Pep mascot
Upgrade your Fiveable account to print any study guide

Download study guides as beautiful PDFs See example

Print or share PDFs with your students

Always prints our latest, updated content

Mark up and annotate as you study

Click below to go to billing portal → update your plan → choose Yearly → and select "Fiveable Share Plan". Only pay the difference

Plan is open to all students, teachers, parents, etc
Pep mascot
Upgrade your Fiveable account to export vocabulary

Download study guides as beautiful PDFs See example

Print or share PDFs with your students

Always prints our latest, updated content

Mark up and annotate as you study

Plan is open to all students, teachers, parents, etc
report an error
description

screenshots help us find and fix the issue faster (optional)

add screenshot

2,589 studying →