Welcome to this repository, where you'll find a carefully selected range of books, predominantly collections of problems, in physics, mathematics, and computer science.
Problem-solving stands at the core of scientific and engineering expertise, serving as a testament to one's understanding of a subject. In choosing problem-solving materials, one must balance the risk of over-specialization against the breadth of knowledge. Focusing narrowly on a single area, like math Olympiad problems, can lead to overfitting — knowing all the tricks but struggling with novel problems. Conversely, spreading oneself too thin across multiple disciplines can lead to vast but shallow knowledge, hindering deep problem-solving skills. Therefore, a balanced mix of brainteasers, mathematics, computer science, and physics is ideal. This combination provides the necessary depth and breadth, as both physics and computer science are deeply rooted in mathematical principles and closely tied to the physical world. Mathematics enriches this blend with its inherent problem-based nature, while brainteasers and logical puzzles sharpen out-of-the-box thinking, creating a well-rounded problem solver.
Though not exhaustive, this list aims to provide a foundational set of problems to significantly enhance the reader's problem-solving abilities, both quantitatively and qualitatively.
Different styles of problem-solving are represented in these books. Some adopt the "American style" — a fewer number of problems explored in great depth — while others follow the "Russian style," featuring a large array of challenging problems with succinct solutions. Both approaches have their merits: American style books hone the art of problem-solving, and once proficiency is achieved, Russian style books offer an excellent platform to test one's knowledge.
The general category includes brainteasers, short math, and physics problems. These books typically require less advanced math but are nonetheless challenging, focusing on developing critical thinking rather than mere calculation.
Professor Povey's Perplexing Problems: Pre-University Physics and Maths Puzzles with Solutions by T. Povey
This book demonstrates that advanced math isn't a prerequisite for challenging problems; the difficulty lies in conceptual understanding.
Quantitative finance interviews often feature brainteasers and challenging math problems, including combinatorics, probability, recursion, dynamic programming, and advanced topics like calculus. This book provides a comprehensive collection of such questions.
Covering a wide range of topics in general physics, this book offers numerous (partially) solved problems in areas like kinematics, dynamics, electromagnetism, electric circuits, and thermodynamics. Prerequisites include a strong foundation in algebra, trigonometry, and a working knowledge of calculus and vectors.
Similar to Irodov's work but arguably easier mathematically and more challenging conceptually. It's particularly beneficial for those preparing for the International Physics Olympiad.
This compilation delves into classical mechanics, covering Lagrangian mechanics, Hamiltonian mechanics, oscillations, and motion in central potentials. It requires knowledge of calculus, differential equations, the calculus of variations, vector calculus, and linear algebra.
A challenging collection in electrodynamics, where the solutions are concise and require a deep understanding. Prerequisites include expertise in vector and tensor calculus, as well as special functions.
This comprehensive guide to quantum mechanics challenges the reader to abandon classical intuitions. It necessitates advanced calculus, as well as a solid grounding in classical mechanics and electromagnetism, to navigate the complexities of Hilbert space and linear operators.
Statistical mechanics, a challenging field for undergraduates, bridges physics and information theory. It requires knowledge of classical mechanics, electrodynamics, quantum physics, combinatorics, and asymptotics. R. Kubo's collection comprehensively covers this topic.
This concludes the physics section, with a note that more advanced topics like general relativity and quantum field theory, while not included here, are specialist areas requiring a deeper expertise.
The mathematics section will follow, starting with a collection of dice problems:
https://www.madandmoonly.com/doctormatt/mathematics/dice1.pdf
This is a nice set of problems covering most elementary concepts in probability, statistics and counting. Mathematical aparatus ranges from elementary algebra all the way to Markov chains so it is suitable for all levels.
Compilation of 1300 solved problems from mathematical olympiads with problem solving strategies.
Russian-style collection of problems in discrete mathematics. Due to selection of topics, this one could also fit under Computer Science.
A Collection of Problems on Complex Analysis (Dover Books on Mathematics) Revised ed. Edition by L. I. Volkovyskii, G. L. Lunts, I. G. Aramanovich
Russian-style book with problems in complex analysis.
https://arxiv.org/pdf/2206.13446.pdf
This is a nice collection in problems from advanced mathematics (applied to machine learning). It covers topics from linear algebra and multivariate calculus all the way to variational inference. The problems are not challenging but it is still a nice addition to the list.
https://www.tolaso.com.gr/documents/A%20collection%20of%20problems%20in%20Analysis.pdf
This is a bonus. This list contains rather challenging problems in mathematical analysis, there are no solutions but you can find them with a little bit of google-ing.
Comupter science problem solving is synonimous with programming. Learning how to code and solve these problems will hone ones abilities to think algorithmically as well as imporove one's mathematical knowledge, especially in areas of discrete mathematics.
Thankfully there is plethora of online resources for programming. The best one is still: http://usaco.org/index.php . There are number of problems, ranging from simple algorithms all the way to dynanic programming and advanced data structures.
Next step: solve some of those using Haskell :)