Best books to study during summer related to programming?

Click For Summary
SUMMARY

The discussion centers on effective summer study strategies for programming and mathematics, specifically targeting algorithm development. Key recommendations include reading "How to Prove It: A Structured Approach" and "Spivak Calculus," while also considering "Introduction to Algorithms" and a probability/combinatorics book. Participants emphasize the importance of understanding over speed and suggest focusing on discrete mathematics as foundational. Additionally, resources like the Princeton Coursera course on algorithms and the book "Constructive Combinatorics" are highlighted as valuable tools for enhancing mathematical and programming skills.

PREREQUISITES
  • Basic programming knowledge in object-oriented, functional, and procedural paradigms
  • Familiarity with algorithms and data structures
  • Understanding of mathematical concepts relevant to programming, such as calculus and discrete math
  • Experience with programming libraries and frameworks
NEXT STEPS
  • Study "How to Prove It: A Structured Approach" for foundational proof techniques
  • Explore "Spivak Calculus" to deepen calculus knowledge
  • Investigate discrete mathematics to strengthen algorithmic thinking
  • Enroll in the Princeton Coursera course on algorithms for structured learning
USEFUL FOR

Individuals aiming to enhance their programming skills through mathematics, including computer science students, software developers, and anyone interested in algorithm design and theoretical computer science.

x86
Gold Member
Messages
256
Reaction score
18
I've been programming for 10 years and have done many free lance projects. I know basic mathematics (what an engineering student would know) but I want to move into more theoretical fields for a hobby. I am devoting 4 months of my summer this year to studying mathematics. I will be studying for 8 hours a day on average.

My goal is to become better at programming algorithms, and the only thing that stands in my way is mathematics. (I already know how to program in general, i.e. object oriented, functional, procedural, basic algorithms & data structures, knowledge of many libraries and frameworks and other necessary topics like multithreading, debugging, etc etc)

My plan for the summer is as follows. I would like suggestions from members here on how I can best use my short time.

-Read How to prove it: a structured approach <--- 100%
-Read spivak calculus <-- will probably skip some of late chapters, after integration finishes
-Read a book on probability/combinatorics <--- 100%
-Read Introduction to Algorithms <-- probably won't have time to finish 100% of this book

Any advice for me, recommendations, tips, alternatives?
 
Physics news on Phys.org
Your summer sounds to ambitious. I would limit to two books. How to prove it and spivak.
 
I'm studying electrical engineering and I'm a bit more of a math person than a programming person, but I think a book on lambda calculus might interest you if you're looking for pure math stuff more on the side of CS. I've been teaching myself the last 2 months, and while it hasn't necessarily taught me anything about programming techniques directly it certainly has given me some really interesting new ways to think about computers and programs and I have noticed my fluency with programming improve a fair amount as a result.

Princeton does a two-part open online course series about algorithms on Coursera a few times a year, they may have a summer session: https://www.coursera.org/course/algs4partI

I would put off learning combinatorics and learn some discrete math first.
 
MidgetDwarf said:
Your summer sounds to ambitious. I would limit to two books. How to prove it and spivak.

True. I planned on reading those two books first. But I know with a larger load I'd be pressured to work harder/longer and could quite possibly finish 3-4 books if I can keep at it for 8~ hours a day.

jack476 said:
I'm studying electrical engineering and I'm a bit more of a math person than a programming person, but I think a book on lambda calculus might interest you if you're looking for pure math stuff more on the side of CS. I've been teaching myself the last 2 months, and while it hasn't necessarily taught me anything about programming techniques directly it certainly has given me some really interesting new ways to think about computers and programs and I have noticed my fluency with programming improve a fair amount as a result.

Princeton does a two-part open online course series about algorithms on Coursera a few times a year, they may have a summer session: https://www.coursera.org/course/algs4partI

I would put off learning combinatorics and learn some discrete math first.

Interesting. I've dabbled with Haskell, apparently it's pure lambda calculus. But I think that learning more discrete math would be more useful for me than lambda calculus- but i'll definitely add it to my TODO list.

Thanks
 
Just make sure that understanding is key. I usto rush through books but I noticed spending a bit more time on just 2 books helped my understanding a lot more.

You could also just study yow to prove it and tackle Rudin. at least that is what my physics friend did.

Have you taken a discrete math course?
 
MidgetDwarf said:
Just make sure that understanding is key. I usto rush through books but I noticed spending a bit more time on just 2 books helped my understanding a lot more.

You could also just study yow to prove it and tackle Rudin. at least that is what my physics friend did.

Have you taken a discrete math course?

Nope. Never taken any discrete math before.
 
How to prove it and discrete math would be the better investment imo. Discrete math has a lot of applications in cs. However, discrete math can be frustrating.
 
x86 said:
My goal is to become better at programming algorithms, and the only thing that stands in my way is mathematics.

What kind of algorithms do you want to program?

I've looked through the textbook on algorithms that students at the local university use. It emphasizes things like sorting and hashing. It doesn't go much into algorithms related to calculus. For algorithms related to calculus, you would need a book on "numerical methods".

The algorithms related to calculus are a different field than the algorithms related to linear algebra. For algorithms related to linear algebra look at books like "Matrix Computations" by Golub and Van Loan.
-Read How to prove it: a structured approach <--- 100%
-Read spivak calculus <-- will probably skip some of late chapters, after integration finishes
I've often seen those books recommended but I don't know if they emphasize algorithms.

-Read a book on probability/combinatorics <--- 100%

Try to find a probability book that emphasizes simulations.

The book "Constructive Combinatorics" by Stanton and White https://www.amazon.com/dp/B000PC10BG/?tag=pfamazon01-20 is short and emphasizes algorithms

-Read Introduction to Algorithms <-- probably won't have time to finish 100% of this book

In 4 months, you probably won't have time to cover a quarter of the material you listed.

Programming can be a valuable aid to learning mathematics, but if the goal is to learn the mathematics, don't get distracted by irrelevant perfectionism in coding - such as improving the appearance of a graph, making a interface look fancy. Just use programs to understand the math.
 
  • #10
Stephen Tashi said:
What kind of algorithms do you want to program?

I've looked through the textbook on algorithms that students at the local university use. It emphasizes things like sorting and hashing. It doesn't go much into algorithms related to calculus. For algorithms related to calculus, you would need a book on "numerical methods".

The algorithms related to calculus are a different field than the algorithms related to linear algebra. For algorithms related to linear algebra look at books like "Matrix Computations" by Golub and Van Loan.
I've often seen those books recommended but I don't know if they emphasize algorithms.
Try to find a probability book that emphasizes simulations.

The book "Constructive Combinatorics" by Stanton and White https://www.amazon.com/dp/B000PC10BG/?tag=pfamazon01-20 is short and emphasizes algorithms
In 4 months, you probably won't have time to cover a quarter of the material you listed.

Programming can be a valuable aid to learning mathematics, but if the goal is to learn the mathematics, don't get distracted by irrelevant perfectionism in coding - such as improving the appearance of a graph, making a interface look fancy. Just use programs to understand the math.

Thanks, I'll check the book out if I'm able to work according to schedule. I don't see why I won't be able to cover at least 5 books in the summer, most of my semesters are 4 months long and have me learning 5-7 books in this time
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
4
Views
3K
  • · Replies 17 ·
Replies
17
Views
10K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 20 ·
Replies
20
Views
7K
  • · Replies 7 ·
Replies
7
Views
5K
  • · Replies 4 ·
Replies
4
Views
8K
  • · Replies 18 ·
Replies
18
Views
3K