Hacker News new | past | comments | ask | show | jobs | submit login
Algebra, Topology, Differential Calculus, and Optimization Theory for CS [pdf] (upenn.edu)
162 points by lainon on Dec 30, 2017 | hide | past | favorite | 33 comments

Don't know what to make of these notes. A bit of a kitchen sink. And too brief for learning the materials.

like many other PDFs like this what they really are the author's personal notes, which served the purpose of firming up the author's own understanding of the material.

I wonder where is topology used in comp sci other than computer vision (?) ?

Topological data analysis[0] is a new application of topology.

[0] https://en.wikipedia.org/wiki/Topological_data_analysis

It's part of a good foundation for measure theory which is part of a good foundation for probability which can be used in any type of computational role. Also, understanding a bit about manifolds, neighborhoods, and things like that are a big part of deep learning theory. I am only acquainted with undergrad topology, but I would say it has had more of an impact on my work and projects and future learning than quick sort ever has or <insert random CS degree topic here>.

Tangentially, it is a great topic to learn in general for those with a math interest and a bare minimum requirement for any higher math learning.

Does anyone know some good supplemental exercises to pair with this text?

You can check out the homeworks from the class these notes were intended for: http://www.cis.upenn.edu/~cis515/cis515-hw-mid-fin-16.html

CS shouldn't be in the title. If you learn everything in this set of notes you will have learned something close to a standard 3 year undergraduate math curriculum. So the only way it's related to CS is that undergraduate math is applicable to CS, as expected.

A lot of the math in the notes are not covered in the standard engineering mathematics curriculum. Chapter 1 is not. No one taught me about rings except in discrete (just briefly), and the next time I visited it would be in algorithm and cryptography class. I honestly cannot recall my exact curriculum, but a quick glance at the table of content, more than half unknown to me.

Now, different school, different teacher will have additional materials. That's possible. Most importantly, the author of this PDF created this for the CS students, so it CAN be in the title.

Schools usually have two or three abstract algebra classes just to cover materials in Chapter 1 and a couple later chapters (polynomials, modules, etc).

Not really (though again I emphasize every school is different). At least my school doesn't teach these abstract algebra covered in Chapter 1 except in discrete mathematics, which is not offered to most engineering students.

Sure some axioms, vector spaces, some polynomial, logic, here and there would be covered in calculus, differential and linear. But large part of the content would not be part of a CS/Engineering classes. Only what is relevant.

You may be taking too rigid a notion of CS...a lot of CS programs at least in American Universities are math programs...I got a minor in Applied math merely by declaring my desire for it without any extra classes. I would have gotten a double major in Applied Math and CS if I was willing to spend another semester in undergrad...point being Math and CS are not as far off.

Out of curiosity, what university did you go to? I attended the University of Texas and there was very little overlap between the math and CS curriculums [1].

The classes in common were lower division calculus (8 or 12 hours, depending if you took the condensed accelerated version), linear algebra (3 hours), and probability (3 hours).

Students could of course take more math electives, but you could get a CS degree with just 14 hours of math [2] [3] [4].

[1] https://www.cs.utexas.edu/sites/default/files/images/16-18%2...

[2] Discrete math is a requirement for CS, but not for math, so I didn't count it. If you include it, that raises the number of hours to 17. Either way, that's only a semester's worth of math.

[3] CS students are required to take 24 hours of upper division electives, many of which are math oriented, but based on this list, it'd still be possible to fill those 24 hours with non-math related topics: https://www.cs.utexas.edu/undergraduate-program/academics/cu...

[4] I realize that many classes in the core CS curriculum are math oriented, like algorithms, however this would not fulfill a math requirement. One couldn't pick up a minor in math based on the core curriculum alone and would need to deliberately add math electives.

It depends very much on the school. I attended two different programs. The first was a software engineering degree with IMHO an entirely insufficient math requirement of basically calculus plus a combined discrete math and linear algebra lower division class. The second university didn’t have a computer science program per se — they had a math degree plus algorithms class and called it a computer science concentration.

Having been through both I can see the logic of both approaches.

I attended the New Jersey Institute of Technology (it's been >10yrs so things may have changed)...the curriculum may not exactly overlap but with thoughtful selection of electives you can get pretty close.

Similar. The BS at my school hadn’t all the math of a minor. The BA was lighter on math, but many would use it to double major in math since the CS courseload was lighter.

It’s CS and Engineering. Most engineering degrees require quite a bit of applied math too.

We shouldn't be confused with CS and programmer.

Previous discussion not too long ago:


Though I note that this link has been updated by one day.

That discussion appears to be in regards to a different paper. Or do you mean to relate it to a previous relevant discussion?

Maybe an interesting discussion that would keep the link relevant is what the difference actually is? The table of contents do differ, but are very similar. Thanks for pointing that out, I was mostly going on memory, but looking at the ToC there are some differences between the two, but how much would be interesting to ascertain.

They are very different. They might have some overlap, but they each have many unique contents.

The one you linked: Fundamentals of Linear Algebra and Optimization

The one here is: Algebra, Topology, Differential Calculus, and Optimization Theory

CS is basically math++, i.e. a CS graduate is considered elite, capable of mastering in 1 year what math graduates do in 2 years. Deal with it!

Unfortunately, I am compelled to make sure people don't read too far into this: this is phenomenally far from the truth. I am sure some schools have stronger engineering schools than math departments, but to say this generalizes is honestly borderline absurd to anyone that has gone to a school with a good math department.

Please don't post unsubstantive comments here.

World's elite universities will tell you right away that as their CS student you are considered the best group they have and that math students go slower than you are, and increase your load to crazy levels. I am not going to post "unsubstantive" comments that I haven't heard at those places. As a CS student, you are expected to master (continuous) calculus, discrete calculus (discrete math proofs, hypercubes for parallel algorithms), optimization (machine/deep learning, compilers), category theory (functional programming), logic (up to automated proofs, i.e. including set theory), differential equations, topology (computational geometry, distributed algorithms), probability and statistics (reinforcement learning, queueing), number theory (cryptology), graph theory (almost everywhere)... There is no functional analysis needed yet, but it's heavily used for PhD degrees anyway. You need to know all this down to the level of proving theorems if you want to achieve anything in CS.

I know several CS PhDs from “world elite universities” with undergraduate math or physics degrees who switched to CS for grad school because they decided that math/theoretical physics were too difficult or too competitive, and found their CS programs comparatively much easier mathematically, with most CS fields requiring much less background to get to the academic cutting edge (as should be expected for a much younger and more application focused field), with an easier path for newcomers to publish meaningful results in high-impact journals. YMMV.

Ok, I should quantify it as "some of world's Top 10 engineering universities" then. YMMV as you say; imagine you are required to read 100 papers a term in a single subject in CS these days. Moreover, you should be almost assured that most of the facts you learn will be/are already obsolete due to crazy pace CS is having in some areas. I am not aware of math/physics having such a crazy pace, but I might be ignorant there.

Except for the “borderline mathematics” parts of computer science (algorithms, PL semantics, etc.), the scientific rigor in CS publications is much, much, much lower than in math or physics publications. Scientific progress is to be measured in terms of advances in human understanding, not in number of publications, our current “publish or perish” culture notwithstanding.

Again, if you want to coast, collect grade inflated Bs and Cs, you can do without much rigor. If you want As and are ambitious, you have to master both CS and related math. Publish or perish is terrible, I agree; if you focus only on super hard high risk problems that might advance humanity, you'll get kicked out of university in no time. And as a professor, 90% of your time will be spent on chasing grants.

I am talking about scientific rigor, not grades. A more relevant question (at least to my interests) is “What tests does a scientific proposal have to pass to become an estabilshed scientific result?”

Looks like you got of easy.

This claim is preposterous.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact