Some short updates
August 15th, 2008…In bullet form
- School: The past 2 weeks have been stressful. First preparing for an exam and then cramming for an assignment in discrete math. My fault entirely though. Procrastination rears its ugly head again.
- Discrete structures/math: Except for the cramming I did last week, I think I’m doing ok with this subject. But I’m just not happy with our textbook’s presentation and content. I could buy another recommend book, but is this subject worth investing that much in? So far no one I asked has been able to give me a straight answer to the question “What are the practical applications of discrete math in actual software development?”. Any ideas, LazyWeb?
- KDE Talk: I’m giving a talk on the 23rd about “Kubuntu & KDE: Contributing to an International Software Project” at a gathering of the local Ubuntu community. It’s my first public speaking engagement as a FOSS and KDE advocate, and probably the first (and most probably not the last) time I’ll be using TeX (courtesy of KDE presentations templates). Hope everything goes well.
- CWG: So it’s official. The KDE e.V. has approved the Community Working Group of which I am a part of. To put it simply, its mission is to take care of the community and communication aspects of KDE. As almost everyone is still at Brussels, we haven’t put up anything official yet. Hopefully we can do that in the coming days. But one of the current projects of the group is the End User FAQ and KDE Glossary. This FAQ is by no means comprehensive nor finished. It’s mostly taken from FAQ’s I’ve encountered in #kde. I have plans to improve it, so stay tuned.
- Updating guides: After doing the FAQ and mirroring it on my site, I realized that I have quite a number of KDE/Kubuntu guides. I have to update them for KDE 4, specially the theming and autostart guides, since there are major changes for KDE 4. And there are some that I probably no longer need (or want) to update. Hopefully I can whip myself into action ASAP.
- My Non-KDE/Kubuntu/FOSS on Planets? I’m still quite undecided on this. I have a few posts in mind that I’d probably want to share with others and ask people’s opinions. However, they’re not exactly KDE/Kubuntu/FOSS related (at least some of them). So I’m kinda hesistant whether I should let them be aggregated here. Decisions, decisions, decisions.
For something that’s supposed to be short, I have again successfully made it long.
Just some small updates, while I'm trying to get off my ass and migrate the site completely to Textpattern.
August 15th, 2008 at 10:39 am
http://en.wikipedia.org/wiki/Discrete_mathematics
In the real world (or at least in my experience
) combinatorics and set/graph theory come in handy big time. Especially if you’re going to be doing algorithm analysis, a good understanding of the fundamentals of discrete mathematics will give you a definite edge. This doesn’t include the high-profile stuff that you do in the business scene, statistics, and among other things, logic.
If you can’t get your discrete math right, say goodbye to a worthwhile career in computer science or software engineering.
August 15th, 2008 at 11:12 am
You have to specify a little bit more what parts of discrete math you are studying, because the area is friggin’ huge. Otherwise I could just mention graph algorithms, as the practical applications of them are pretty much obvious.
I suppose you are referring to subjects more abstract than graphs, right?
August 15th, 2008 at 11:29 am
Discrete math can be very useful in Computer Science but it does depend on the software area you’re talking about. I very highly doubt that it’s worth so much to warrant buying a different book though.
August 15th, 2008 at 11:39 am
@Sympy: Here’s basically a list of what’s covered: Sets, Relations, Functions, Combinatorics (Sum/Product rule, Inclusion-Exclusion), Arrangements and Selections, Graph structures, Formal Languages, and Finite Automata.
@Michael: Basically applications programming with a slant towards desktop apps and GUI’s. But of course that’s a wee bit too limited. So I’m curious as to where/how Discrete math is useful in Computer Science (aside from the theories).
August 15th, 2008 at 11:57 am
Most of those subjects are usually not very important in high-level aspects such as planning the software architecture or interface, but are absolutely essential for developing efficient algorithms and data structures.
Efficient hashing, balanced tree storage, finding the shortest path… All of those rely on discrete math theorems on one way or another.
If you’re interested in knowing more about it, I definitely recommend the book “Programming Challenges” by Steven Skiena and Miguel Revilla. This book presents several discrete math problems, cleverly presented in the form of real-life or fable-like practical problems, where applying discrete math theorems can be the difference between designing an algorithm that solves the problem in hours and designing an algorith that solves the problem in seconds.
August 15th, 2008 at 1:57 pm
@Kuya Dean: Thanks for the reply, dunno why Akismet put you in spam!:P But I guess your last sentence is motivation enough for me to persevere in the subject (specially since my algebra is apparently getting very rusty).
@Sympy: Thanks for the book recommendation. I hope it’s available. So I guess discrete math is mostly used in algorithms, which doesn’t seem to interest the majority of hackers I’ve come across (or maybe I just haven’t met the right hackers :P)
Justin Dugger from Ubuntu blogged a reply as well (my trackback/pingback doesn’t seem to be working…): http://jldugger.livejournal.com/14888.html
August 15th, 2008 at 2:10 pm
I think it’s because I’m new at posting here.
At any rate, defending an algorithm you implemented which you can prove to be more efficient than a certain other approach *will* save you especially when faced with technical challenges. Discrete Math the subject per se doesn’t rear its ugly head all the time, but the discipline and theories behind everyday Computer Science related problem-solving will require that you have strong fundamentals.
One other thing, everything — and I mean everything — in computer science will build on top of the fundamentals of Discrete Mathematics. If you’re just taking the combinatorics and logic-algebra stuff lightly, it will all get more complex faster than you can say automata.
August 15th, 2008 at 3:25 pm
wow idol…you gonna give a talk na? wish i could be there…anyway, hopefully someone would videotape it for the rest of us…goodluck!
August 15th, 2008 at 7:55 pm
Thank you for posting this. As a professor (I will be teaching Discrete Structures this semester), it is interesting to hear a student’s viewpoint. I will try to emphasize the practical applications in my class. Maybe I can even come up with a set of programming projects to illustrate some of these principles.