Genetic algorithms are search algorithms inspired by biological evolution that use techniques like mutation, crossover, and selection to evolve solutions to problems. They represent potential solutions as individuals in a population and evolve the population over multiple generations using genetic operators to improve the overall quality of solutions. Genetic programming is a type of genetic algorithm that evolves computer programs to solve problems by genetically breeding populations of computer programs.