[topic] | Physics for Solid-State Applications. [model] | gpt-3.5-turbo-instruct [concepts] | [] [outline] | # Table of Contents - [Physics for Solid-State Applications":](#Physics-for-Solid-State-Applications":) - [Foreward](#Foreward) - [Chapter: - Chapter 1: Introduction to Solid-State Physics:](#Chapter:---Chapter-1:-Introduction-to-Solid-State-Physics:) - [Introduction](#Introduction) - [Title [markdown] | # Physics for Solid-State Applications": ## Foreward Welcome to "Physics for Solid-State Applications"! This book aims to provide a comprehensive understanding of the fundamental principles of solid-state physics and their applications in various fields. As the title suggests, this book is [field] | electrical_engineering [subfield] | electronics [rag] | WIKI
[topic] | Case Studies in City Form. [model] | gpt-3.5-turbo-instruct [concepts] | [] [outline] | # Table of Contents - [Case Studies in City Form: A Comprehensive Exploration of Urban Design":](#Case-Studies-in-City-Form:-A-Comprehensive-Exploration-of-Urban-Design":) - [Foreward](#Foreward) - [Chapter: Case Studies in City Form: A Comprehensive Exploration of Urban Design](#Chapter:-Case-S [markdown] | # Case Studies in City Form: A Comprehensive Exploration of Urban Design": ## Foreward As urban designers, we are constantly faced with the challenge of creating livable, functional, and aesthetically pleasing cities. The task may seem daunting, but it is one that we must embrace with enth [field] | architecture [subfield] | architectural_design [rag] | WIKI
[topic] | Python Practice Book [model] | gpt-3.5-turbo-instruct [concepts] | ['Programming basics', 'Data types', 'Functions', 'Loops', 'Conditional statements'] [outline] | ['1. Setting Up the Environment', '1.1. Installing Python', '1.2. Interactive Shell vs. Script Mode', '1.3. Setting Up an IDE (e.g., PyCharm, VSCode)', '2. Basic Python Syntax', '2.1. Indentation', '2.2. Comments', '2.3. Variables and Naming Conventions', '2.4. Print Function', '3. Basic Data Types' [markdown] | # 1. Setting Up the Environment Before we dive into Python programming, we need to set up our environment. This involves installing Python and choosing an Integrated Development Environment (IDE) to write and run our code. #### Installing Python Python is a versatile programming language that i [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Erlang Handbook [model] | gpt-3.5-turbo-instruct [concepts] | ['Functional programming', 'Concurrency', 'Pattern matching', 'Recursion', 'Error handling'] [outline] | ['1. Setting Up the Environment', '1.1. Installing Erlang', '1.2. Interactive Shell vs. Script Mode', '1.3. Setting Up an IDE (e.g., ErlIDE, Emacs)', '2. Basic Erlang Syntax', '2.1. Modules and Functions', '2.2. Variables and Data Types', '2.3. Comments', '2.4. Basic Operators', '3. Concurrency in E [markdown] | # 1. Setting Up the Environment Before we can start learning Erlang, we need to set up our development environment. This section will guide you through the process of installing Erlang, choosing between an interactive shell and script mode, and setting up an Integrated Development Environment (ID [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Best Software Writing I [model] | gpt-3.5-turbo-instruct [concepts] | ['Technical writing', 'Effective communication', 'Software development', 'Software engineering', 'Coding standards'] [outline] | ['1. Writing Standards and Guidelines', '1.1. Understanding Coding Standards', '1.2. Benefits of Following Coding Standards', '1.3. Common Coding Standards in Different Languages', '2. Writing for Software Development', '2.1. Writing Code vs. Writing Documentation', '2.2. Writing for Different Audie [markdown] | # 1. Writing Standards and Guidelines When it comes to software development, following coding standards is crucial. Coding standards are a set of guidelines that dictate how code should be written and formatted. They ensure consistency and readability, making it easier for developers to understan [field] | computer_science [subfield] | programming [rag] | serp
[topic] | R Programming for Data Science [model] | gpt-3.5-turbo-instruct [concepts] | ['Data types', 'Data structures', 'Functions', 'Control structures', 'Data visualization'] [outline] | ['1. Setting Up the Environment', '1.1. Installing R', '1.2. Interactive Console vs. Scripting', '1.3. Setting Up an IDE (e.g., RStudio, VSCode)', '2. Basic R Syntax', '2.1. Comments', '2.2. Objects and Naming Conventions', '2.3. Print Function', '3. Basic Data Types', '3.1. Vectors', '3.2. Matrices [markdown] | # 1. Setting Up the Environment Before we can start programming in R, we need to set up our environment. This involves installing R, choosing between an interactive console or scripting, and setting up an Integrated Development Environment (IDE) such as RStudio or VSCode. #### Installing R To b [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Software Design and Implementation [model] | gpt-3.5-turbo-instruct [concepts] | ['Design process', 'UML diagrams', 'OOP', 'Data structures', 'Testing'] [outline] | ['1. Understanding the Design Process', '1.1. Requirements Gathering and Analysis', '1.2. System Design', '1.3. Software Architecture', '1.4. Detailed Design', '2. Introduction to Data Structures', '2.1. Types of Data Structures', '2.2. Arrays and Linked Lists', '2.3. Stacks and Queues', '2.4. Trees [markdown] | # 1. Understanding the Design Process The design process is a crucial step in software development. It involves creating a blueprint for the software system, outlining its structure and functionality. This process ensures that the software meets the desired requirements and is scalable, maintaina [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Scientific Computing [model] | gpt-3.5-turbo-instruct [concepts] | ['Numerical methods', 'Data analysis', 'Simulation', 'Optimization', 'Parallel computing'] [outline] | ['1. Programming Fundamentals', '1.1. Introduction to Programming Languages', '1.2. Syntax and Control Structures', '1.3. Data Types and Data Structures', '1.4. Functions and Modules', '2. Data Analysis', '2.1. Introduction to Data Analysis', '2.2. Data Types and Formats', '2.3. Data Cleaning and Pr [markdown] | # 1. Programming Fundamentals Let's dive in and explore the world of programming! # 1.1. Introduction to Programming Languages Programming languages are used to communicate instructions to a computer. They provide a set of rules and syntax that allow programmers to write code and create softwar [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Discrete Mathematics and Functional Programming [model] | gpt-3.5-turbo-instruct [concepts] | ['Sets', 'Functions', 'Logic', 'Recursion', 'Lambda Calculus'] [outline] | ['1. Sets and Relations', '1.1. Introduction to Sets', '1.2. Set Operations', '1.3. Types of Relations', '2. Logic and Proofs', '2.1. Propositional Logic', '2.2. Logical Connectives', '2.3. Truth Tables and Logical Equivalences', '2.4. Proofs and Proof Techniques', '3. Functions', '3.1. Definition a [markdown] | # 1. Sets and Relations # 1.1. Introduction to Sets A set is an unordered collection of distinct objects, called elements or members. Sets are denoted by listing their elements inside curly braces. For example, the set of all even numbers can be written as: $$\{2, 4, 6, 8, ...\}$$ Sets can c [field] | computer_science [subfield] | programming [rag] | serp
[topic] | 3D Programming in Java [model] | gpt-3.5-turbo-instruct [concepts] | ['Object-oriented programming', 'Graphics', 'Vectors', 'Matrices', '3D transformations'] [outline] | ['1. Setting Up the Environment', '1.1. Installing Java Development Kit (JDK)', '1.2. IDEs for Java (e.g., Eclipse, NetBeans)', '1.3. Setting Up a 3D Graphics Library (e.g., JavaFX, LWJGL)', '2. Basic Java Syntax', '2.1. Data Types and Variables', '2.2. Comments and Indentation', '2.3. Control Struc [markdown] | # 1. Setting Up the Environment Before we can start programming in 3D using Java, we need to set up our environment. This involves installing the necessary software and libraries, as well as configuring our development environment. # 1.1. Installing Java Development Kit (JDK) The first step in [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Contraction hierarchies [model] | gpt-3.5-turbo-instruct [concepts] | ['Shortest path', 'Graph theory', "Dijkstra's algorithm", 'Transitive reduction', 'Preprocessing'] [outline] | ['1. Graph Theory Fundamentals', '1.1. Basic Concepts and Terminology', '1.2. Types of Graphs', '1.3. Representing Graphs in Code', '2. Shortest Path Problem', '2.1. Definition and Importance', '2.2. Single-Source Shortest Path Algorithms', "2.3. Dijkstra's Algorithm", '3. Preprocessing for Shortest [markdown] | # 1. Graph Theory Fundamentals Graph theory is a fundamental area of mathematics that deals with the study of graphs. A graph consists of a set of vertices (also known as nodes) and a set of edges (also known as arcs) that connect these vertices. Graphs are used to model various real-world situ [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Phrase search [model] | gpt-3.5-turbo-instruct [concepts] | ['Language processing', 'Search algorithms', 'Regular expressions', 'Pattern matching', 'Information retrieval'] [outline] | ['1. Foundations of Information Retrieval', '1.1. Information Retrieval Models', '1.2. Text Representation and Indexing', '1.3. Retrieval Evaluation Metrics', '2. Language Processing Basics', '2.1. Tokenization', '2.2. Stop Words and Stemming', '2.3. Part-of-Speech Tagging', '3. Pattern Matching and [markdown] | # 1. Foundations of Information Retrieval # 1.1. Information Retrieval Models Information retrieval models are mathematical models that represent the relationship between queries and documents. They are used to rank and retrieve relevant documents based on a user's query. There are several dif [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Fibonacci search technique [model] | gpt-3.5-turbo-instruct [concepts] | ['Fibonacci numbers', 'Golden ratio', 'Search algorithm', 'Time complexity', 'Big O notation'] [outline] | ['1. Understanding Big O Notation', '1.1. Definition and Importance of Big O Notation', '1.2. Examples of Big O Notation', '1.3. Big O Notation and Fibonacci Search', '2. Fibonacci Numbers', '2.1. Definition and Properties of Fibonacci Numbers', '2.2. Relation to Golden Ratio', '2.3. Fibonacci Numbe [markdown] | # 1. Understanding Big O Notation Big O notation is a way to describe the efficiency or complexity of an algorithm. It is used to analyze the performance of algorithms and understand how their running time or space requirements grow as the input size increases. In Big O notation, we focus on the [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Learning Kotlin [model] | gpt-3.5-turbo-instruct [concepts] | ['Basic syntax', 'Variables', 'Functions', 'Object-oriented programming', 'Collections'] [outline] | ['1. Setting Up the Environment', '1.1. Installing Kotlin', '1.2. Interactive Shell vs. Script Mode', '1.3. Setting Up an IDE (e.g., IntelliJ, Android Studio)', '2. Basic Kotlin Syntax', '2.1. Indentation', '2.2. Comments', '2.3. Variables and Naming Conventions', '2.4. Print Function', '3. Basic Da [markdown] | # 1. Setting Up the Environment # 1.1. Installing Kotlin To install Kotlin, we need to have Java Development Kit (JDK) version 8 or above installed on our machine. Kotlin runs on the Java Virtual Machine (JVM), so having JDK is a prerequisite. You can download and install JDK from the official [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Water Quality Control. [model] | gpt-3.5-turbo-instruct [concepts] | [] [outline] | # Table of Contents - [Water Quality Control: A Comprehensive Guide":](#Water-Quality-Control:-A-Comprehensive-Guide":) - [Foreward](#Foreward) - [Chapter: Water Quality Control: A Comprehensive Guide](#Chapter:-Water-Quality-Control:-A-Comprehensive-Guide) - [Introduction](#Introduction) [markdown] | # Water Quality Control: A Comprehensive Guide": ## Foreward Water is one of the most essential resources for life on Earth. It sustains our ecosystems, provides for our basic needs, and drives economic growth. However, with the increasing demands of a growing population and the impact of [field] | environmental_engineering [subfield] | aquatic_sciences_and_water_quality_control [rag] | N/A
[topic] | Python 2 Official Documentation [model] | gpt-3.5-turbo-instruct [concepts] | ['Language basics', 'Built-in functions', 'Control flow', 'Data structures', 'Modules'] [outline] | ['1. Setting Up the Environment', '1.1. Installing Python 2', '1.2. Interactive Shell vs. Script Mode', '1.3. Setting Up an IDE (e.g., PyCharm, VSCode)', '2. Basic Python Syntax', '2.1. Indentation', '2.2. Comments', '2.3. Variables and Naming Conventions', '2.4. Print Function', '3. Basic Data Type [markdown] | # 1. Setting Up the Environment Before we dive into learning Python, we need to set up our development environment. This will ensure that we have all the necessary tools and resources to write and run Python code. The first step is to install Python 2 on your computer. You can download the Pytho [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Topological Sort [model] | gpt-3.5-turbo-instruct [concepts] | ['Graphs', 'Directed Acyclic Graphs', 'Ordering', 'Dependency', 'Algorithm'] [outline] | ['1. Graphs and Directed Acyclic Graphs (DAGs)', '1.1. Basics of Graph Theory', '1.2. Types of Graphs', '1.3. Properties of Directed Acyclic Graphs', '2. Dependency and Ordering', '2.1. Understanding Dependencies in Graphs', '2.2. Types of Dependencies', '2.3. Ordering in Directed Acyclic Graphs', ' [markdown] | # 1. Graphs and Directed Acyclic Graphs (DAGs) Graphs are a fundamental concept in computer science and mathematics. They are a way to represent relationships between objects or entities. A graph consists of a set of vertices (also known as nodes) and a set of edges (also known as arcs) that conn [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Learning Go [model] | gpt-3.5-turbo-instruct [concepts] | ['Syntax', 'Data types', 'Functions', 'Control flow', 'Pointers'] [outline] | ['1. Setting Up the Development Environment', '1.1. Downloading and Installing Go', '1.2. Setting Up an IDE (e.g., VSCode, GoLand)', '1.3. Understanding the Go Workspace', '2. Basic Go Syntax', '2.1. Printing to the Console', '2.2. Variables and Naming Conventions', '2.3. Comments and Documentation' [markdown] | # 1. Setting Up the Development Environment Before we can start learning Go, we need to set up our development environment. This includes downloading and installing Go, setting up an integrated development environment (IDE), and understanding the Go workspace. ### Downloading and Installing Go [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Environmental Management Practicum: Brownfield Redevelopment. [model] | gpt-3.5-turbo-instruct [concepts] | [] [outline] | # Table of Contents - [Environmental Management Practicum: Brownfield Redevelopment":](#Environmental-Management-Practicum:-Brownfield-Redevelopment":) - [Foreward](#Foreward) - [Chapter: Environmental Management Practicum: Brownfield Redevelopment](#Chapter:-Environmental-Management-Practicum:- [markdown] | # Environmental Management Practicum: Brownfield Redevelopment": ## Foreward Welcome to "Environmental Management Practicum: Brownfield Redevelopment". This book serves as a comprehensive guide for students and professionals alike who are interested in the complex and challenging field of [field] | environmental_engineering [subfield] | environmental_management [rag] | WIKI
[topic] | Ruby Web Dev: The Other Way [model] | gpt-3.5-turbo-instruct [concepts] | ['Ruby', 'Web development', 'Object-oriented programming', 'MVC architecture', 'Database integration'] [outline] | ['1. Setting Up the Environment', '1.1. Installing Ruby', '1.2. Interactive Shell vs. Script Mode', '1.3. Setting Up an IDE (e.g., VSCode, Atom)', '2. Basic Ruby Syntax', '2.1. Indentation', '2.2. Comments', '2.3. Variables and Naming Conventions', '2.4. Print Function', '3. Introduction to Object-O [markdown] | # 1. Setting Up the Environment Before we dive into Ruby web development, we need to set up our environment. This will involve installing Ruby, setting up an IDE, and understanding the basic syntax of Ruby. # 1.1. Installing Ruby To get started with Ruby web development, we first need to instal [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Introduction to Machine Learning with Python [model] | gpt-3.5-turbo-instruct [concepts] | ['Supervised learning', 'Unsupervised learning', 'Regression', 'Classification', 'Evaluation metrics'] [outline] | ['1. Python for Machine Learning', '1.1. Why Python is Popular for Machine Learning', '1.2. Setting Up the Environment', '1.3. Popular Libraries for Machine Learning in Python', '2. Basic Python Syntax for Machine Learning', '2.1. Indentation and Comments', '2.2. Variables and Data Types', '2.3. Ope [markdown] | # 1. Python for Machine Learning Machine learning is a field of study that focuses on developing algorithms and models that can learn and make predictions or decisions without being explicitly programmed. Python is a popular programming language for machine learning due to its simplicity, flexibi [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Mechanical Behavior of Materials. [model] | gpt-3.5-turbo-instruct [concepts] | [] [outline] | # Table of Contents - [Mechanical Behavior of Materials: A Comprehensive Guide":](#Mechanical-Behavior-of-Materials:-A-Comprehensive-Guide":) - [Foreward](#Foreward) - [Chapter: Mechanical Behavior of Materials: A Comprehensive Guide](#Chapter:-Mechanical-Behavior-of-Materials:-A-Comprehensive-G [markdown] | # Mechanical Behavior of Materials: A Comprehensive Guide": ## Foreward Welcome to "Mechanical Behavior of Materials: A Comprehensive Guide"! As an advanced undergraduate course at MIT, this book aims to provide a thorough understanding of the mechanical behavior of materials. From the fun [field] | mechanical_engineering [subfield] | solid_mechanics [rag] | WIKI
[topic] | Computational Cognitive Science. [model] | gpt-3.5-turbo-instruct [concepts] | [] [outline] | # Table of Contents - [Computational Cognitive Science: A Comprehensive Guide":](#Computational-Cognitive-Science:-A-Comprehensive-Guide":) - [Foreward](#Foreward) - [Chapter: Computational Cognitive Science: A Comprehensive Guide](#Chapter:-Computational-Cognitive-Science:-A-Comprehensive-Guide [markdown] | # Computational Cognitive Science: A Comprehensive Guide": ## Foreward Welcome to "Computational Cognitive Science: A Comprehensive Guide"! This book aims to provide a thorough understanding of the field of computational cognitive science, exploring the intersection of cognitive psychology [field] | systems_engineering [subfield] | computational_science_and_engineering [rag] | N/A
[topic] | Optimization Methods. [model] | gpt-3.5-turbo-instruct [concepts] | [] [outline] | # Table of Contents - [Textbook on Optimization Methods":](#Textbook-on-Optimization-Methods":) - [Foreward](#Foreward) - [Chapter: Textbook on Optimization Methods](#Chapter:-Textbook-on-Optimization-Methods) - [Introduction](#Introduction) - [Chapter 1: Applications of Linear Optimizatio [markdown] | # Textbook on Optimization Methods": ## Foreward Welcome to the Textbook on Optimization Methods! This book aims to provide a comprehensive and in-depth understanding of various optimization techniques and their applications. As the field of optimization continues to grow and evolve, it is [field] | systems_engineering [subfield] | systems_optimization [rag] | N/A
[topic] | Concurrent programming [model] | gpt-3.5-turbo-instruct [concepts] | ['Multithreading', 'Synchronization', 'Deadlock', 'Parallel processing', 'Concurrency control'] [outline] | ['1. Fundamentals of Concurrency', '1.1. Processes vs. Threads', '1.2. Shared Memory vs. Message Passing', '1.3. Concurrency Models', '2. Synchronization Techniques', '2.1. Locks and Semaphores', '2.2. Monitors', '2.3. Atomic Operations', '3. Deadlock and Resource Allocation', '3.1. Understanding De [markdown] | # 1. Fundamentals of Concurrency Concurrency is the ability of a program to execute multiple tasks simultaneously. In concurrent programming, tasks are divided into smaller units called processes or threads, which can be executed independently. This allows for better utilization of system resourc [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Analyzing Big Data with Twitter [model] | gpt-3.5-turbo-instruct [concepts] | ['Data mining', 'Sentiment analysis', 'Network analysis', 'Machine learning', 'Data visualization'] [outline] | ['1. Data Mining Basics', '1.1. What is Data Mining?', '1.2. Data Collection and Preprocessing', '1.3. Data Cleaning and Transformation', '1.4. Data Integration and Reduction', '2. Data Visualization Techniques', '2.1. Importance of Data Visualization', '2.2. Types of Data Visualization', '2.3. Tool [markdown] | # 1. Data Mining Basics 1.1 What is Data Mining? Data mining refers to the process of extracting useful information and knowledge from large datasets. It involves the use of various techniques and algorithms to uncover patterns, relationships, and trends that are not immediately apparent. The [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Writing Solid Code [model] | gpt-3.5-turbo-instruct [concepts] | ['Programming principles', 'Code structure', 'Testing', 'Debugging', 'Efficiency'] [outline] | ['1. Debugging Basics', '1.1. Understanding Errors and Bugs', '1.2. Debugging Tools and Techniques', '1.3. Debugging Best Practices', '2. Improving Efficiency in Code', '2.1. Identifying and Eliminating Code Bloat', '2.2. Optimizing Code Performance', '2.3. Importance of Good Naming Conventions', '3 [markdown] | # 1. Debugging Basics # 1.1. Understanding Errors and Bugs Errors and bugs are common in programming, and understanding them is the first step towards fixing them. An error is a mistake in your code that prevents it from running correctly. A bug, on the other hand, is an error that causes unex [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Patterns For Large-Scale JavaScript Application Architecture [model] | gpt-3.5-turbo-instruct [concepts] | ['Modular design', 'MVC architecture', 'Dependency injection', 'Asynchronous programming', 'Error handling'] [outline] | ['1. Asynchronous Programming', '1.1. Understanding Asynchronous Programming', '1.2. Callback Functions', '1.3. Promises and Async/Await', '2. Dependency Injection', '2.1. What is Dependency Injection?', '2.2. Benefits of Dependency Injection', '2.3. Implementation in JavaScript', '3. Error Handling [markdown] | # 1. Asynchronous Programming Asynchronous programming is a programming paradigm that allows multiple tasks to be executed concurrently. This is particularly useful in JavaScript, where many operations, such as network requests and file I/O, can be time-consuming. By using asynchronous programmin [field] | computer_science [subfield] | programming [rag] | serp
[topic] | Quicksort [model] | gpt-3.5-turbo-instruct [concepts] | ['Sorting algorithms', 'Divide and conquer', 'Pivot', 'Recursion', 'Time complexity'] [outline] | ['1. Divide and Conquer Approach', '1.1. Understanding Divide and Conquer', '1.2. Advantages and Disadvantages', '1.3. Application in Sorting', '2. Quicksort Algorithm', '2.1. Basic Idea and Overview', '2.2. Picking a Pivot', '2.3. Partitioning the Array', '2.4. Recursive Implementation', '3. Time C [markdown] | # 1. Divide and Conquer Approach The divide and conquer approach is a powerful problem-solving technique that involves breaking down a complex problem into smaller, more manageable subproblems. By solving these subproblems independently, we can then combine their solutions to solve the original p [field] | computer_science [subfield] | programming [rag] | serp
[topic] | More Effective C++ [model] | gpt-3.5-turbo-instruct [concepts] | ['Object-Oriented Programming', 'Memory Management', 'Template Metaprogramming', 'Concurrency', 'Error Handling'] [outline] | ['1. Setting Up the Environment', '1.1. Installing a C++ Compiler', '1.2. Choosing an IDE or Text Editor', '1.3. Building and Running a C++ Program', '2. Basic C++ Syntax', '2.1. Comments', '2.2. Variables and Data Types', '2.3. Input and Output', '2.4. Control Structures', '3. Functions and Scope', [markdown] | # 1. Setting Up the Environment Before we can start writing C++ code, we need to set up our development environment. This involves installing a C++ compiler, choosing an IDE or text editor, and learning how to build and run a C++ program. #### Installing a C++ Compiler A C++ compiler is a progr [field] | computer_science [subfield] | programming [rag] | serp