Discrete Best books to study during summer related to programming?

AI Thread Summary
A programmer with ten years of freelance experience is dedicating four months to studying mathematics to enhance their algorithm skills. They plan to study eight hours daily, focusing on several key texts, including "How to Prove It," "Spivak Calculus," and a book on probability/combinatorics, while also considering "Introduction to Algorithms." Forum members suggest narrowing the focus to just two books to ensure deeper understanding, recommending "How to Prove It" and discrete math as foundational topics. They emphasize the importance of comprehension over speed and caution against overloading with too many resources. Suggestions also include online courses, particularly from Princeton, and resources that emphasize practical applications of mathematics in computer science, such as numerical methods and algorithms related to linear algebra. Overall, the discussion highlights the balance between ambition and realistic study goals in mathematics for programming.
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 definately 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
Views
3K
Replies
4
Views
3K
Replies
1
Views
1K
Replies
17
Views
6K
Replies
3
Views
2K
Replies
20
Views
6K
Replies
7
Views
5K
Replies
4
Views
7K
Replies
18
Views
3K
Back
Top