Slashdot Mirror


User: Coryoth

Coryoth's activity in the archive.

Stories
0
Comments
2,929
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 2,929

  1. Re:Non-Applied Mathematics? on What Math Courses Should We Teach CS Students? · · Score: 1

    Congratulations, you are poster #2 to actually get my point, which is that, exactly as you say, the courses that are really applicable to computer science tend to be in pure math and be things like mathematical logic, abstract algebra, and category theory. The question is which of these sorts of fields should be in thc core math courses for CS students (yes, all of them should be, but you'll never pack it all in - its a question of prioritisation). The only other poster who really seemed to get it fell heavily in favour of category theory. I'm beginning to think he had a good point.

  2. Re:Category Theory on What Math Courses Should We Teach CS Students? · · Score: 1

    Ah, thank you! Someone (one of the few) who seems to understand the point I was making - that the math available offers fields that, while not currently taught, are far more applicable to CS than calculus. Category theory has to be one of the big ones. I'm beginning to think the problem is that because everyone posting seems to have done the usual math offering of calculus and linear algebra (and maybe some discrete math) that that's what everyone should do and are simply unaware of all the other mathematics that is out there that is so much more applicable. Perhaps I was a little too ambitious in expecting a reasonable number of slashdotters to have had sufficient exposure to these subjects to have anything useful to say. Mostly it seems to be people who found calculus hard work, and so feel they need to suggest it to everyone else to fortify their sense of accomplishment for having gotten through it. What I was askign was how can we reform the math syllabus to better suit CS students. 90% of the answers have been to simply cite the existing syllabus (they even use course number like Caluclus II?!)

  3. Re:Math is KEY to CS on What Math Courses Should We Teach CS Students? · · Score: 1

    You're hardly the only person to make this mistake, but you're the random one I'll pick out to reply to. I (the poster) am not asking what math courses I should take - I've already completed a degree in mathematics and covered all the courses you mention and more. Rather, as a mathematician who now teaches I am interested in how we can rework the math course structure to better provide for the needs of CS students. I have to deal with far to many CS students who are busy grinding their way through a calculus course yet display minimal understanding of the sorts of subjects that seem far more important to their chosen field of study. They are wasting their time taking calculus if they haven't yet gotten a solid grip on mathematical logic.

  4. Re:All of them! on What Math Courses Should We Teach CS Students? · · Score: 1
    Could there be more? Probably, but most higher match classes require a very good background in calculus.

    Not really true. Sure without calculus you've closed off a vast range of possible fields, but there is still plenty left in abstract algebra, set theory, proof theory, model theory, category theory, type theory etc. For these you don't need calculus. I'm not suggesting you shouldn't take calculus - I really think you should. I'm just suggesting that if you're only taking a few math courses there are a lot of things that should be higher on the priority list for CS students than calculus.
  5. Re:CS is not math on What Math Courses Should We Teach CS Students? · · Score: 1
    CS does involve a lot of number theory, which falls under philosophy departments at most universities (number theory is not math; it also analyzes non-mathematical properties of numbers.) I highly encourage anyone interested in CS to take a lot of philosophical logic classes; many of the techniques for analyzing sets/possible worlds are highly applicable to data structures in CS.

    I'm sorry that you university had an underdeveloped or overly applied math department. This is not the case everywhere however. You'll find that number theory and mathematical logic (which covers proof theory, model theory, set theory and recursion theory) are fields of pure mathematics, and are available in math departments the world over.
  6. Re:CompSci maths... on What Math Courses Should We Teach CS Students? · · Score: 1
    being able to use asymtotic notation for bounds on algorithm running times, and a good basis in proofs in order to prove them once you've come up with something. Also solving recurences, and proving them is invaluable.

    So in summary what you really need is a solid course in mathematical logic which encomapsses the subjects of Proof Theory (not just doing proofs, but analysing them as mathematical objects themselves), and Recursion Theory (aka Computability Theory). As a side bonus you'll also cover Set Theory and Model Theory both of which are remarkably useful for CS. IMHO this should be what CS students should get instead of "discrete math" and multivariate calculus. That's not to say "discrete math" and multivariate calculus aren't useful - they are worthwhile doing, but they are better served being electives for CS students and having mathematical logic be the mandatory math course.
  7. Re:ballpark on What Math Courses Should We Teach CS Students? · · Score: 1

    And yet categeory theory gets far more use in computer science in the field of functional programming. Your definition "the study of relations" is, I agree, sufficiently abstract and vague that category theory and OO both sort of qualify, but I would suggest they are far more divergent than similar - a point of intersection "they both deal with the study of relations" amongst many properties is hardly insightful. I may as well say math and poetry are pretty much the same since they both deal with the manupilation of symbols into effective structures. It is a a strange sort of reductionist thinking to dismiss category theory as "just math with objects". Why not try looking into Intuitionistic Type Theory or Institutions or Monads for examples of category theory in computer science.

  8. Re:ballpark on What Math Courses Should We Teach CS Students? · · Score: 1
    Category theory (which is really just object-oriented math)

    Either you don't know or understand category theory, or you don't know what object-oriented means. At best you could claim your statement is a ridculous simpification (on par with "Algebra (which is really just math with letters)"), at worst its a fundamental misunderstanding of categry theory due to, most likely, a lack of ever actully having dealt with it.
  9. Re:You don't ship test code on Getting Development Group To Adopt New Practices? · · Score: 1
    ...unit testing which seeks to build a wrapper around units of code in order to put the code through its paces. It can identify areas of code that are problematic, are never executed, are buggy, or generally are seemingly okay.

    If that's what you're using unit testing for then I agree, that's rather a waste of time. If you want to find areas of code that are problematic, never executed (unreachable) or buggy, then you're better off using a static model checker like ESC/Java2 or ES-Verify. Of course both of those require you to specify your code with contracts so they have something to verify against, but then as you say, you ought to be doing that anyway.

    Of coure not everything can be completely adequately specified in contracts, and for that you will probably need unit tests, and acceptance tests, or variations thereon. However, as you point out elsewhere, that sort of testing is more the sot of thing that the testing department can handle. Maintaining code specifications as part of the code itself to allow for automated testing and model checking is something you can expect of developers however.
  10. Re:You don't ship test code on Getting Development Group To Adopt New Practices? · · Score: 3, Insightful
    Requiring that all checkins be accompanied by unit test code is ridiculous because two developers working on the same code will need to update not only the code itself but also any test cases that rely on the behavior of the executing code.

    The solution to that, of course, is to integrate test definitions into the code itself so that it all gets updated together. As a bonus your API documentation is more precise and gets updated along with the tests and the code. You can then push a button, walk away, and have an automated testing system fully exercise your code. And yes you can have all of that for Java if Eiffel isn't to your taste (though it might be worth having a second look at Eiffel).

    In other words, yes if you want software with lower defect rates you should expect developers to update their specification (and documentation) of how they intend code to be used and to work at the same time that they update the actual code. If you want to specify working code by having it pass a separately written unit test, fine; but that's not the only way, nor is it always the most efficient.
  11. Re:IMO, a step towards improving our education on More A's, More Pay · · Score: 1

    A democracy (or democratic republic if you wish to be pedantic) only functions well when there is a reasonably educated and informed voting population. For that reason it is sensible to have a basic minimum standard of education provided to all comers - the health of the democracy depends upon it. There already is a private competitive market for education: they're called private schools (and home schooling). If you want more than the basic minimum level of education then you can pay for it (in money for private school, or in time for home schooling); no one is going to stop you - private schools and home schooling are perfectly legal. What you are bemoaning is that, despite these other options being readily available, most people opt for the basic education provided by the public system, which apparently rubs you the wrong way ideologically.

    This is not to say, of course, that you can't complain about the current state of the US public education system: it is quite appalling. To be honest I would suggest that the US is teetering toward the point where the cracks in the democratic system are starting to show. If you could take off the ideological galsses for a moment, however, you might note that the poor quality of the US public education system is not intrinsically because it is a public system. There are plenty of publicly funded school systems around the world that are doing quite well indeed: Look at Finland, for instance, which finished first in recent surveys of high school students science and math skills worldwide. Most of the other countries listed as doing well also have publicly funded school systems. Clearly there are other reasons why the US public system performs so poorly - perhaps you would be better served determining what the underlying causes are, rather than making pronouncements based on faith in ideology instead of actual evidence.

  12. Re:You do not know that. on Man's Vote for Himself Missing In E-Vote Count · · Score: 1
    But I don't think *this* example is indicative of rampant fraud through electronic voting machines. I think it's a minor local screw up that ought to be verified.

    I agree that this case doesn't (yet) provide any reason to panic or worry. The most likely result is that it was a simple run-of-the-mill bungle. Just because this case is not a reason to panic does not mean that this case is not interesting though. What we have here is a miscount in an election where very thorough verification is indeed possible. If there are any systemic issues then its going to be interesting little cases such as this one that will find it - the larger elections are so swamped in votes that this sort of error would most likely not even be noticed, let alone be able to be verified to find the nature of the error. Given that there are lingering questions about vote counting machines, that makes these small cases interesting because it's the way to find any systemic issues. Reason to panic? No. Reason to be interested to see what the final results of the investigation are? Yes.
  13. Re:You do not know that. on Man's Vote for Himself Missing In E-Vote Count · · Score: 5, Insightful
    Which brings up two fundamental questions all election officials must ask:
    1) Did this error change the outcome of a race? That is the first consideration, because if it didn't then the severity of the error is vastly reduced.
    2) If this error changed the outcome of a race, was it intentional? That is, was the outcome of democracy subverted, and done so with fraudulent intent?

    I would have to say that the first question you really ought to be asking is:

    1) What caused this error, and could the problem be systemic?

    Until you have answered that question adequately then you can't really say whether the error changed the outcome of the race. Perhaps it was a simple screw-up that just meant this single vote didn't get counted, but perhaps it was a systemic error that means that none of the counts are valid. Dismissing this until the nature of the error has been adequately determined is remarkably premature. It probably is nothing of consequence, but there is every reason to go to the trouble of finding out that that is the case.
  14. Re:Some thoughts on the subject on Software Dev Cycle As Part of CS Curriculum? · · Score: 1

    I am also a math major, so don't worry, I fully understand the utility of calculus. Certainly it has a great degree of applicability in biology and chemistry where a lot of modelling is really going to require calculus if you're going to do a decent job of it: it's pretty much mandatory for chemistry, and unless you're doing a field research/zoology oriented biology degree (and even then there's population models etc.) you'll pretty much require calculus.

    CS/SE on the other hand, just doesn't have as much need for calculus. I would encourage CS/SE people to take it because its a fun and interesting subject, and they may well find appliability down the line depending on what sort of software they end up programming. I would just encourage CS/SE people to take other math courses first because there's a lot they can learn that will be far more generally applicable. A decent foundations and mathematical logic course (not the watered down stuff they call "finite math" or "discrete math", but the hard-core stuff like axiomatic set theory and formal proofs) along with abstract algebra (for group theory and finite fields) and some introductory category theory are all going to provide the reasonign skills that they need to take away from math courses, but the math they'll learn in doing it is going to much better outfit them for a CS/SE degree than calculus. If you want to take some extra math, by all means do the calc, but its lower on the priority list than other things.

  15. Re:Some thoughts on the subject on Software Dev Cycle As Part of CS Curriculum? · · Score: 1
    I always thought Calculus courses were simply breaker courses for CS. If you can't cut the logic needed for Calculus you really don't believe in CS anyways. And it does help you refine your logic and problem solving skills as well.

    I agree that that is how calculus courses tend to be used, but that really just begs for a course in foundations, mathematical logic, set theory, and abstract algebra - believe me, if you do those subjects seriously (as opposed to the watered down half assed "finite math" and "discrete math" courses that tend to get offered in first year) you'll sort the wheat from the chaff very quickly.
  16. Re:Some thoughts on the subject on Software Dev Cycle As Part of CS Curriculum? · · Score: 1

    Serious probability is going to be best served with a healthy dose of measure theory that is going to be well in advance of what a student is going to get from a calculus course or two. Don't get me wrong - I think it would be great if students took calculus and, in fact, as much math as they can get. I'm trying to be realistic though, and face the fact that most CS and SE students are going to do the bare minimum in the way of math courses and, given that, that we should try and make those few courses the most generally useful to CS and SE students.

  17. Re:Some thoughts on the subject on Software Dev Cycle As Part of CS Curriculum? · · Score: 2, Informative
    I hated differential equations and calculus. Unfortunately, some of the sharp end of financial engineering (quants) needs this. Sure the banks may have some mathematicians, but generally what they write is a long way from production code and you need someone who knows the maths and can convert it to good code.

    That sounds rather more like a specialist role then a reason to expect CS students to necessarily do any calculus - all the other subjects I mentioned would be much more valuable in general. What you need for tht problem is someone who has studied enough software engineering and done a few calculus courses that can squeeze in between the mathematicians and the developers. You could equally well make the case that you need someone skilled in cryptology to fit in between theoretical explanations of the strenghts and weaknesses of various cryptographic schemes, and people implementing and using various crypto schemes in their product, or someone skilled in fourier analysis, linear algebra, and wavelets to fit in between the mathematicians designing compression and signal analysis schemes, and the developers implementing them, or...

    I think a solid grounding in foundations (set theory etc.), graph theory, and abstract algebra and basic category theory is going to serve most students the best.
  18. Re:Some thoughts on the subject on Software Dev Cycle As Part of CS Curriculum? · · Score: 2, Interesting
    A student needs at least math theory through discrete mathematics, and better yet through calculus.

    I have to admit I am a little unclear of the benefit of calculus to a CS or software engineering student - I think too many CS and SE students waste their time with calculus courses which, while of great value to other engineering disciplines, aren't anywhere near as applicable to CS and SE. What areas of CS or SE would you see a need for calculus? I can certainly see benefits to set theory, combinatorics, and graph theory, which you are perhaps lumping into "discrete math" (though set theory done properly need not be discrete). I can also see a place for abstract algebra: groups, rings (for polynomial rings over finite fields), and fields, which can crop up in a variety of places including information theory. I can also see reasons why it might be worth doing some category theory - it is the language that a lot of advanced CS theory is now being couched in. These are all subjects that tend to get missed by CS and SE students that, perhaps, they really ought to get exposure to instead of more calculus.
  19. Development Cycle is Engineering on Software Dev Cycle As Part of CS Curriculum? · · Score: 3, Insightful

    Learning about the software development cycle is something to do in a software engineering course, not a computer science course. Of course these days, with universities and colleges become increasingly career and job training focussed, the differences between computer science and software engineering are blurred. Perhaps the better way to view things is to consider an analogy to other fields where the difference is mmore traditionally clear. Consider someone doing a physics and mathematics degree - they will learn about a great many things such as differential equations and their applications to physical systems. What they are studying, however, is the theoretical underpinnings of such material. Contrast that with a civil engineer who also learn about differential equations and their applications to physical systems. The engineer, however, will be learning how to make use of these as tools. A course in the development cycle of how to build a bridge - design, specification, testing and verification, and construction and maintenance - that's something that is integral to the course of the civil engineer, but something the physics student is likely to encounter since the physics student is not as interested in engineering applications so much as the theory itself. Similarly the software development cycle is something for the field of software engineering.

  20. Re:You fail to understand the nature of testing on New Zealand To Allow 'Text-Speak' On Exams · · Score: 1
    The subject to be tested in a math exam should be the subjects comprehension of math. Not their skills with english or their prose...But there is another problem with grading math exams or similar on the english quality as well. It punished people twice who are bad in language. Would you combine a math exam with a physical exam?

    There is a mis-perception here, and that is that I am grading students on their prose or the quality of their English, which simply isn't the case. I am grading them on their mathematics, and part of mathematics is writing and expressing mathematics. In the same way that a student may be graded down for failing to provide adequate working (when working is asked for of course - but demonstrating the ability to clearly express your reasoning is as important as the ability to write the correct result), students may be graded down for poorly expressed working, and that may be a result of errors in language. I'm not going to mark a student down for the odd spelling error that might have crept in, but spelling or grammatical errors that result in unclear or ambiguous reasoning is, to me, a problem. If they cannot clearly explain their ideas, how am I to know they actually understand it? Besides, being able to explain your answers is as much a part of mathematics as being able to arrive at them.

    If I were to present you with the following:

    Solve for x in 2x + 5 = 7;
    2x + 5 = 7
    => x + 5 = 7/2
    => x = 1
    I suspect you would object, and would be willing to mark down that answer. The question is, how is the error there really any different to an error in spelling or grammar that introduces a similarly ambiguous or nonsense statement? I don't accept either, but apparently you will give a student a free ride as long as it's their English grammar that's wrong, even if the result is something that is mathematically incorrect and we're left guessing (as with the example above) as to whether they actually understood but made a typo/error, or simply didn't know.
  21. Re:Which subject? on New Zealand To Allow 'Text-Speak' On Exams · · Score: 4, Insightful
    Text speak in an English exam of course should result in failing it. On the other hand, I think bad grammar and spelling should be ignored on a math or a chemistry exam, so long the answer is understandable.

    Really? Why? Are mathematicians and chemists not required to communicate? I can understand, perhaps, allowing a little more leeway, given that it is not specifically the subject being tested, but ultimately spelling and grammar matters. A large part of mathematics is being able to clearly communicate your reasoning to other people. Now mathematics does provide its own language and symbols to do a lot of that communication, however as someone who grades math papers, I am as sensitive to misuse of mathematical symbols as I am to misspelling and poor grammar, and I will mark people down for either if it is consistently poor (I will tolerate occasional mistakes). Any ambiguity introduced undermines the entire mathematical argument. Whether it "can be understood" is not enough - markers should not be required to try and figure out what a student meant: what they mean should be immediately clear, and that is an important part of the subject.
  22. Re:Why would Red Hat pay MS for their own code .. on Microsoft Interested In More Linux Deals · · Score: 1

    I never said Red Hat should pay for anything, I said they should go to the table. The question is not "what should red Hat be buying" but rather, "what does Microsoft think they're selling" - you can find out the latter by entering negotiations and seeing what they want, then reject the deal and walk away at a later date.

  23. Re:Red Hat should go to the table on Microsoft Interested In More Linux Deals · · Score: 1

    By entering as far as negotiations Red Hat may be able to find out what it is that Microsoft thinks might be infringing. If MS can't offer up anything... well that just means you get to walk away feeling rather more secure.

  24. Red Hat should go to the table on Microsoft Interested In More Linux Deals · · Score: 4, Insightful

    Realistically Red Hat should at least go to the table with Microsoft, though presumably it will do so quietly behind the scenes. If nothing else it lets Red Hat get a much better idea of what Novell has signed on for and, through negotiations with Microsoft, a better idea of what Microsoft is willing to offer. Just testing the boundaries of what sorts of licensing and patent agreements Microsoft is willing to make could be very informative, and there's no compulsion for Red Hat to take the deal. It makes sense to at least find out what exactly is on offer.

  25. Re:Plus: what if they want war? on Microsoft/Novell Deal Could Create Two-Tier Linux Market · · Score: 5, Insightful
    Right now, somewhere in Redmond, a Microsoft programmer is infringing on IBM patents. If MS wants to play rough, IBM will play rough.

    Indeed, and that's exactly why MS is never going to actually sue anyone over patents. The aim of the exercise, as far as I can tell, is to make a lot of noise and give the impression that you might sue at any minute. As far as MS is concerned having people beleve you're about to sue is as good as actually sueing in terms of results, an it is a lot safer for them. MS is never going to sue - they might be rathere noisy about it though.