tag:blogger.com,1999:blog-3722233.post7728780209873801026..comments2024-03-28T14:56:46.834-05:00Comments on Computational Complexity: Ideal courses for a comp sci dept/I'm glad we don't do itLance Fortnowhttp://www.blogger.com/profile/06752030912874378610noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-3722233.post-40822000319087796472016-10-14T18:16:18.207-05:002016-10-14T18:16:18.207-05:00Algorithms course with projects, otherwise known a...Algorithms course with projects, otherwise known as depressing on two fronts; the inability of many students to work through proofs and analysis, and their inability to implement a program to demonstrate the use of an algorithm even with several semesters of programming courses under their belts.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3722233.post-61849845677107032732016-10-13T05:13:45.825-05:002016-10-13T05:13:45.825-05:00Security is more than just crypto! But if you mean...Security is more than just crypto! But if you mean doing crypto theory along with crypto implementation, then this is already the way it is taught in many places, including (to some extent) at UMD.<br /><br />Regarding data structures, I think the term is overly broad. In my undergrad data structures course we implemented things like linked lists, doubly linked lists, and binary search trees, for which the "proofs" that they work are trivial. So maybe you are referring to an advanced data structures course? But algorithms are about more than data structures...<br /><br />Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3722233.post-47718140887349234412016-10-12T10:30:36.517-05:002016-10-12T10:30:36.517-05:00Maybe I'm stating the obvious here, maybe, on ...Maybe I'm stating the obvious here, maybe, on the contrary, it's just the typical mind fallacy, but I was under the impression that the route usually taken is the one used by my university with regard to subjects which feature both theory and implementation like the ones you enumerated (I would add: logic programming; graph theory; architecture together with assembly language; computational geometry et al.). That being: the professor lecturing the theory with proofs and the TA teaching the implementation details with code at the lab (with the added caveats that the professor may sometime take the lead in selecting the lab curriculum, leaving not much freedom to the TA and sometimes the professor themself may teach the lab). I am now actually curious how close this is to the usual approach.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3722233.post-10545723014197189572016-10-11T09:43:01.331-05:002016-10-11T09:43:01.331-05:00Out of the examples described probably the Algo+DS...Out of the examples described probably the Algo+DS with proof+code is the most common. I've gone through classes where algorithms (e.g. sorting) were also studied empirically by adding counters and plotting the number of operations executed (both for synthetic and for real input). I thought that this was a nice complement to the theoretical analysis, and also a good pretext to practice programming, but in retrospect it may not have been the most efficient use of time.Anonymousnoreply@blogger.com