Recursion (computer science)

Recursion (computer science)

Recursion is a method of solving computational problems where the solution depends on solutions to smaller instances of the same problem. It is used in many computer programming languages and is a central idea of computer science. Recursive functions can be used to solve infinite sets of objects with a finite statement, and are as powerful as imperative languages. However, they can cause the call stack to become large and inefficient.

10 courses cover this concept

CSE 351 The HW/SW Interface

University of Washington

Autumn 2022

This course develops students' understanding of software functioning at different levels of abstraction. Focus areas include C, assembly, and low-level data representation. It also introduces concepts of operating systems and differences between Java and C. It serves as a starting point for those interested in hardware or high-level abstractions.

No concepts data

+ 26 more concepts

CS 10: The Beauty and Joy of Computing

UC Berkeley

Summer 2022

A gentle, thorough introduction to computer science, starting with block-based language Snap! and transitioning to Python. The course covers fundamental programming concepts and encourages application in various fields. Level: Beginner friendly.

No concepts data

+ 21 more concepts

CS 61A: Structure and Interpretation of Computer Programs

UC Berkeley

Fall 2022

A course that emphasizes software abstraction, equipping students with the skills to manage program complexity. Students will primarily use Python, with additional exposure to Scheme and SQL.

No concepts data

+ 32 more concepts

CS 106B Programming Abstractions

Stanford University

Winter 2023

This course helps transition from coding to problem-solving using computers. The course explores techniques, tools, and models for problem-solving across disciplines using C++. Prior programming experience is assumed.

No concepts data

+ 33 more concepts

CS 61B: Data Structures

UC Berkeley

Fall 2022

CS 61B focuses on software efficiency from design and runtime perspectives. It covers object-oriented programming with Java, teaching data structures and various programming concepts. The course promotes hands-on learning with optional assignments.

No concepts data

+ 55 more concepts

CSCI 0112 - Computing Foundations: Program Organization

Brown University

Fall 2022

CSCI 0112 progresses from CSCI 0111, focusing on structuring programs for solving isolated subproblems. It delves into various algorithms, implementations from abstract descriptions, data organization methods, and program efficiency. Ethical considerations in software development are underscored. Topics include data structures, OOP, web APIs, machine learning, and more.

No concepts data

+ 25 more concepts

CICS 110: Foundations of Programming

The University of Massachusetts Amherst

Spring 2023

This course introduces computer programming and problem-solving. Students learn using a modern language, covering variables, data types, branching, functions, classes, and methods. Emphasis is on real-world problem translation, computational understanding, and debugging.

No concepts data

+ 30 more concepts

CS 88: Computational Structures in Data Science

UC Berkeley

Fall 2022

This course provides an introduction to computer science with an emphasis on functional programming, data abstraction, object-oriented programming, and program complexity. The course teaches foundational programming concepts primarily in Python.

No concepts data

+ 24 more concepts

CSE 143 Computer Programming II

University of Washington

Summer 2022

This course is a continuation of CSE 142, focusing on manipulating data, implementing data structures, and learning about algorithms in Java. It delves into abstract data types, recursion, inheritance, and more.

No concepts data

+ 34 more concepts

CSCI 0150: Introduction to Object-Oriented Programming and Computer Science

Brown University

Fall 2022

CS0150 introduces Computer Science via object-oriented design and programming using Java and JavaFX for creating interactive programs with GUIs. Concepts like data structures, algorithms, and computational efficiency are explored. Practical exercises include engaging programming assignments like Doodle Jump and Tetris. The course is designed for all, requiring no prior knowledge.

No concepts data

+ 19 more concepts