Domain: uwaterloo.ca
Stories and comments across the archive that link to uwaterloo.ca.
Comments · 648
-
Difference at the U of Waterloo
I might as well chime in too...
I did Comp Eng at the U of Waterloo
The major difference is who runs the programs. Comp Eng is in the Engineering Faculty, so it has to have its curriculum approved by whatever the body is that approves Engineering curricula - the PEO or whomever. In Comp Eng your entire class takes nearly all the same classes until 4th year so there's a very different social atmosphere than CS. Other than that however, it's not that big a difference. I took comp eng and couldn't do a VHDL design to save my life. One of my ex-classmates now designs chips for a living. 3 work at Microsoft. One is a consultant. I'm a product manager at a software tools company. Your education, as many others have pointed out, has minimal bearing on what kind of job you end up doing professionally. Also note that I took one 4th year CS class (Graphics) and some of my classmates took up to 3 of them...
I personally liked the engineering background stuff like physics and the small amount of management science we were taught, but some people might like the bigger math focus and more theoretical CS aspects of a Comp Sci degree. Comp Sci is much more loosely structured, you take whatever classes you want after first year and there's less of a coherent sense of having a "class".
So, in summary, it's not so much the course content that's different, but how the courses are structured and who's in charge of things. I liked Comp Eng. Of course, I have two Chemical Engineers in the family, so I might be biased.
-
Re:CSC vs CEng
If you aren't sure, get a CSc degree. If you aren't good at Math, get a CSc degree, a CEng degree is four years of math.
Ummm ... you obviously haven't been paying attention to the University of Waterloo. Here, CS is part of the math faculty. All CS majors are required to take three calculus courses, three algebra courses, two statistics courses, a combinatorics and optimization course, and two more math courses (I took logic and differential equations).
It's important for a CSer to have a strong math background -- after all, a good chunk of any algoirthms course is graph theory, anyway. :-)
Paul -
Re:CSC vs CEngIf you aren't sure, get a CSc degree. If you aren't good at Math, get a CSc degree, a CEng degree is four years of math.
Actually my university it's the opposite. CS is a math-heavy degree - I will actually recieve a B.Math (Bachelor of Mathematics) degree with a major in Computer Science. CompEng is more on the practical side - much less programming/theory/algorithm stuff after the first year or so and lots more hardware and design.
I guess the moral of the story is that the contents of the actual program at the actual university to which you are applying are most important in making this kind of decision.
-
Here is some information you may find cool
I am a 4'th year Computer engineering major.
I've had to deal with the same questions as you and it boils down to how passionate you are about certain aspects of the computer world. Be advised this is not the be-all end-all of advice.. but it may help you:
a) Do you love hardware? Do you long to learn how your motherboard works? How a CPU is built? How do you create those chips on your motherboard? Do you find electronics interesting?
b) Do you love programming? Do you strive to solve complex programming issues? Do you write tools or programs in your spare time?
If you agree with A, choose Computer engineering.
If you agree with B, choose computer science. Computer science, in most programs, is MOSTLY programming theory, with very little hardware.
Choosing route A will lead you to learn basics about computer science, but as well how computers were first designed, to how complex today's chips are, and methods on how to design them. You will do far less programming than a CS major, but you should still come out with the ability to write good programs, as well as hardware design.
There are degrees which combine the best of both software and hardware, being a Canadian I can only point out two examples. These are both Engineering examples.
Sysyms & Computing at University of Guelph
Systems Design Engineering at University of Waterloo
-
Just graduating from Computer EngineeringI am going to graduate from the Computer Engineering program at the University of Waterloo in April.
It seems that many companies are looking for computer scientists, but would they be desperate enough to accept computer engineers?
I find this a little funny because no one in my class is worried about getting a job, so I guess companies are desperate enough. :-) If you are just looking to land a job, either one will get you one as long as you are competant (and I assume that you are).
If you are really interested in just doing software I would suggest going into Computer Science. If you are interested at all in hardware, Computer Engineering might be good for you. At Waterloo we take both hardware and software courses, but most of the emphasis is on hardware unless you are taking the Software Engineering option (which I am not).
As far as software courses go, the core courses here include Java, data structures and algorithms, an OS course, and a software engineering course. 4th year elective courses include AI, database, distributed systems programming and more software engineering courses (I've probably forgotten some).
On the hardware side, our core courses include circuit analysis, control systems, microelectronic devices, digital design, communications systems and microprocessor structure. 4th year electives are more advanced/detailed versions of the above includeing wireless, VLSI systems, computer architecture, wireless communication and more.
I guess it kind of boils down to decideing if you want to focus on software only or do you want a bit broader education that includes some hardware/circuit stuff. I like doing software, but hardware also interests me a lot and that is why I chose Computer Engineering over Computer Science. -
Easiest way to find out...If it's going to be a Disney thing, then of course, it's been patented. After a bit of searching on Delphion, I found:
US5023741:Programmable limited play video tape cassette
US5199663:Limited use video cassette
US4763784:Devices for preventing unauthorized use of video-cassettes
US4660115:Video tape cassette with internal tape erasing means
US4660116:Video tape cassette with internal tape erasing means
Along with a short list of other patents that reference that last one. Seems that people have been busy on this one. Even though a few of the claims do acknowledge the possibility of disassembling the cassette and removing the content protection scheme, unless the casing is made of titanium, there's nothing to stop anyone with a hammer and a replacement VHS shell or DIY instructions from making their own free-use cassette out of it if they like.
Tough call as to wether or not the DMCA really applies, as it's not a program or electronic device that you'd use. But I'd bet some MPAA hired gun could get the government to ban hammers, rocks, and other blunt instuments as they could be used to circumvent copy protection schemes. -
Re:How much?
In the early 1990s, I had a $2K/year subscription to ZD's Computer Select , just for my personal use. Once I discovered Deja News, I was able to cancel that subscription.
So the answer would be: at least a couple $K a year.
Unfortunately, it never occurred to the rocket scientists at Deja that people might actually be willing to pay real money in exchange for real value. If they'd stuck with their core competency and implemented a subscription model, none of the bitching, moaning, and gnashing of teeth we're seeing now would be necessary. -
Just like the Rio's
The Diamond Rio 300/500/600/800 came with the shittiest software ever. Now the protocol has been hacked for all of them. I'm the author of Riorio, an alternative software for the Rio 500 in windows. It allows you to upload from the Rio to the computer (fsck the RIAA) and do all sort of stuff you couldn't do with the standard software.
-
Think outside the boxLet's think outside the box a little. In terms of software, how credible do you think the free information movement would be if we had all the rhetoric without any concrete accomplishments like Linux, gcc, GIMP, etc.? Because the free information movement has accomplished these things in the area of software, we can use these examples to try to influence politicians to take free information seriously, and not to buy the Microsoft line wholesale.
Where are the corresponding accomplishments of free information in the area of music? Mutopia is great, but its contents were all public domain already. If you look in the relevant dmoz category, there is virtually no music that has been intentionally made into copylefted free information by the composer.
As long as free software could be successfully portrayed as a synonym for warez, it was hard to make any political progress. Same goes for music. As long as the free music scene on the internet consists of nothing but downloading MP3s illegally, it's going to be very hard to accomplish anything against the overreaching of the copyright holders.
The Assayer - free-information book reviews -
I knew this rung a bell...
I once met a professor of compsci at the university of waterloo who wrote some Java software for doing this kind of thing. We discussed using his software to analyze a very large software system I was working on at the time (IBM DB2 UDB). He has a web page with some code. Although they appear dated, you may also want to check out his student reports on the architecture of Linux (done using his tool, I would imagine).
-
Re:Perfect for students
If they could just bump up the capacity to about 64MB
;)If you want 64Mb of portable, USB-connecting storage, just buy a Rio 500 and download Riorio.. and you can listen to music too!
Seriously.. I was kind of keen to get an MP3 walkman, but the factor that pushed me from being "kind of keen", to actually spending the cash, was the ability to do a bit of leeching via the fast net connection at work, and conveniently take the files home..
-
Re:Moderators!
The post said Nationalised. That is not the same as 'not for profit'.
Channel 4 was established as a not-for-profit business, paid for by skimming the budgets of the commercial ITV broadcasters in the UK.
The whole Channel 4 set-up is a complex arrangement - it is paid for by advertising revenues, has no shareholders, and a license that obliges (obligates?) it to carry out a public service remit.
This link explains it all in more detail. It's quite interesting, especially to open-sourcerers..
So, your uninformed commie is probably slightly more informed than you are.
You could argue thant 'nationalised' was probably the wrong word, but since channel 4 doesn't have shareholders, 'commercial' is equally inaccurate. It's a strange beast: there probably isn't one adjective to describe it...
-
Re:Software Engineering will make software suck le
Even a CS degree really isn't a sufficient solution to the problem. Software Engineering is NOT computer science, just as Chemical Engineering is not Chemistry. You need knowledge of the latter to do the former, but there is a different skill set which must be learned. Unfortunately, I'm not aware of any school which is teaching it to potential software engineers. When they do, real software development can finally begin.
at the university of waterloo, where i go, there's a software engineering option for a cs degree, which forces you to take three large-program-structuring classes, plus a mix of social, business, and other related classes.
i believe that's along the lines of what you were dreaming about..
-
Kernel & Extfs Links
If you want to know more about the Linux kernel, but are hard up for cash to buy a book on it, check these links out. They might help...
Concrete Architecture of the Linux Kernel
http://plg.uwaterloo.ca/~itbowman/CS746G/a2/
The Linux Kernel Hacker's Guide
http://khg.redhat.com/HyperNews/get/khg.html
The Linux Kernel
http://www.linuxdoc.org/LDP/tlk/tlk.html
Analysis of the Extfs Filesystem
Analysis of the Extfs Filesystem http://step.polymtl.ca/~ldd/ext2fs/ext2fs_toc.html
________ -
Re:You've just discovered the *POINT* of the GPL.The GPL exists to protect the authors of Free Software from having their work stolen (yes, I said "stolen") by people who aren't willing to give back to the community.
Code cannot be "stolen". (and this is according to RMS. He gave a talk at my University). However, the GPL code can be "misused" (his term) in exactly the way you describe.
___ -
Best Teachers
The best teacher/professor I've ever had was my first year calculus at the University of Waterloo. He loved to teach and it was incredibly evident in his teaching style. He would explain things really well, get the students involved and have some fun with it. He was so good that my classroom was packed with people; there were students standing all around the edges of the classroom and sitting at the front, evidently finding him a better lecturer than their own there. Where most professors would have drawn the line and started taking attendance, my prof came in one day and sadly said that although he tried to book a bigger room for the class, there were no rooms available at that timeslot.
Also, just before exams he had very open-ended office hours -- any time he was in his office. He also managed to finish the course early so that he could do review, and he did the entire 1999 Fall MATH 137 exam in class. I saw one girl from a different class ask him for help on almost every question of the same past exam he did in class. And what impressed me is that he didn't complain, didn't even mention that he did ALL those questions in detail in class.
What might interest you is a man that I've never had as a teacher, although I've attended one short talk he gave, which was the most fun I've had learning something. He's an undergrad student who taught a combinatorics & optimization course and got some of the highest prof ratings anyone had seen for a while. What's interesting is that he does not believe in the lecture style of teaching, and instead plans what he calls 'tours', which are very interactive, thought-provoking learning experiences. But my explanation cannot come close to his, click here for a very detailed explanation of a revolutionary way of teaching.
-
Random "Free" PDF Books
"Light and Matter Physics" High School/Community college level.
"Handbook Of Applied Cryptography"
"Numerical Recipes in {c, fortran}"
"The Scientist & Engineer's Guide to Digital Signal Processing"
"Using Z"
"The Red Book"
etc. I'm sure there are a ton of others. -
Re:SolarisDeveloping on Solaris pretty much requires you to buy a SPARC box from Sun, which are quite pricey. It would be too expensive for you to buy say a Ultra 5 for every developer. However, a good compromise is to buy *one* Sun box, and run Sun Workshop over remote X session. I did that last year when I was doing C++ development on Solaris. That was out of necessity though -- my Sun box was so damn slow (SPARC 20), while all the other developers had Ultra 10's. Anyway, this is a good way to get all the mature development tools that are available for Solaris (like Sun Workshop, purify, etc.) while at the same time avoiding high cost of Sun boxes. Oh, and you can still use your favorite OS on your workstation
:-)P.S. If anybody tries to reply that running GUI apps remotely over X is slow, this is BS. I have first-hand experience that points to the contrary. My university has 6 labs of diskless X terminals (20-30 terminals each), and that's just in the MC building. There's more of them elsewhere. Long live X
:-)
___ -
UWaterloo CS452: Write your our own microkernelThe CS452 Real-time programming ( homepage) deals with a true microkernel. Actually micro kernel is a bad name - what is created is actually a nanokernel, closer to QNX than to MACH.
We start with some basic tools (a loader, C (or C++) compiler, some printf code and a frame-buffer driver. Then we write a message-passing real-time kernel. The kernel does very little - actually only starts a couple of initial processes, passes messages between processes and provides an interface to interrupts. Everything else is performed in a separate process. During the course, this kernel is developed and then each group (of 1 or 2 memebers) also has to write a system to control a train set or a robot. The real-time program is more work than the kernel creation, but every group ends up with a working nanokernel in about 5 or 6 weeks.
Each group is given alot of freedom to do what they would like, with only some basic guidelines to follow. The kernel must be message-passing and it must support real-time operation. By real-time, this means the scheduler is predicatable. The system setup loaded the kernel and programs into RAM directly so disk I/O was avoided. There is a serial terminal attached to a PC and the PC had a frame-buffer. Part of the requirements of the final project were to use the frame-buffer to display some graphics relating to the real-time actions being controlled (position of trains on the track showning movement for example).
-
UWaterloo CS452: Write your our own microkernelThe CS452 Real-time programming ( homepage) deals with a true microkernel. Actually micro kernel is a bad name - what is created is actually a nanokernel, closer to QNX than to MACH.
We start with some basic tools (a loader, C (or C++) compiler, some printf code and a frame-buffer driver. Then we write a message-passing real-time kernel. The kernel does very little - actually only starts a couple of initial processes, passes messages between processes and provides an interface to interrupts. Everything else is performed in a separate process. During the course, this kernel is developed and then each group (of 1 or 2 memebers) also has to write a system to control a train set or a robot. The real-time program is more work than the kernel creation, but every group ends up with a working nanokernel in about 5 or 6 weeks.
Each group is given alot of freedom to do what they would like, with only some basic guidelines to follow. The kernel must be message-passing and it must support real-time operation. By real-time, this means the scheduler is predicatable. The system setup loaded the kernel and programs into RAM directly so disk I/O was avoided. There is a serial terminal attached to a PC and the PC had a frame-buffer. Part of the requirements of the final project were to use the frame-buffer to display some graphics relating to the real-time actions being controlled (position of trains on the track showning movement for example).
-
Re:NachosUh, I took that course and it is no "microkernel". It is a monolithic UNIX-style kernel running on top of a simulator of a MIPS-class chip.
The CS452 Real-time programming ( homepage) deals with a true microkernel. Actually micro kernel is a bad name - what is created is actually a nanokernel, closer to QNX than to MACH.
We start with some basic tools (a loader, C (or C++) compiler, some printf code and a frame-buffer driver. Then we write a message-passing real-time kernel. The kernel does very little - actually only starts a couple of initial processes, passes messages between processes and provides an interface to interrupts. Everything else is performed in a separate process. During the course, this kernel is developed and then each group (of 1 or 2 memebers) also has to write a system to control a train set or a robot. The real-time program is more work than the kernel creation, but every group ends up with a working nanokernel in about 5 or 6 weeks.
-
Re:NachosUh, I took that course and it is no "microkernel". It is a monolithic UNIX-style kernel running on top of a simulator of a MIPS-class chip.
The CS452 Real-time programming ( homepage) deals with a true microkernel. Actually micro kernel is a bad name - what is created is actually a nanokernel, closer to QNX than to MACH.
We start with some basic tools (a loader, C (or C++) compiler, some printf code and a frame-buffer driver. Then we write a message-passing real-time kernel. The kernel does very little - actually only starts a couple of initial processes, passes messages between processes and provides an interface to interrupts. Everything else is performed in a separate process. During the course, this kernel is developed and then each group (of 1 or 2 memebers) also has to write a system to control a train set or a robot. The real-time program is more work than the kernel creation, but every group ends up with a working nanokernel in about 5 or 6 weeks.
-
UWaterloo Computer EngE&CE 354, a compulsory Computer Engineering course, we are given a shell of an OS kernel, which is written by the profs/department.
It's the project component in this RTOS (Real Time OS) course. The hardware is the Motorola Coldfire board, interfaced to a PC or to a remote linux server (to compile on sparc, dl to Coldfire remotely - the prefered method). We write it all in C (and a small requisite amount of assembler for manipulating the stack).
We got knee deep in the stuff real quick. Working in groups of four (God help those with only 3 members - there were 4 project courses that term!), our group managed to do all the writing, testing, and demoing in 7 days of near around-the-clock group work. We basically went home only to shower during the coding. *Sigh* probably all Comp Eng's get wistful thinking of that course (or have near mental breakdowns).
Anyhow, we had to demonstrate working timer functions, interrupts, serial ports, scheduler, memory management, etc. The kernel was given to us as a skeleton, we put the guts into it.... some groups even wrote a game.
-
UWaterloo Computer EngE&CE 354, a compulsory Computer Engineering course, we are given a shell of an OS kernel, which is written by the profs/department.
It's the project component in this RTOS (Real Time OS) course. The hardware is the Motorola Coldfire board, interfaced to a PC or to a remote linux server (to compile on sparc, dl to Coldfire remotely - the prefered method). We write it all in C (and a small requisite amount of assembler for manipulating the stack).
We got knee deep in the stuff real quick. Working in groups of four (God help those with only 3 members - there were 4 project courses that term!), our group managed to do all the writing, testing, and demoing in 7 days of near around-the-clock group work. We basically went home only to shower during the coding. *Sigh* probably all Comp Eng's get wistful thinking of that course (or have near mental breakdowns).
Anyhow, we had to demonstrate working timer functions, interrupts, serial ports, scheduler, memory management, etc. The kernel was given to us as a skeleton, we put the guts into it.... some groups even wrote a game.
-
University of Waterloo Computer Engineering
The computer engineering program at the University of Waterloo (in Canada) doesn't use a specific OS to learn from (although the textbook uses the traditional ones for examples - NT, *nix, particularly Solaris).
Instead, the project is to design (from scratch, including a design document) and implement a real-time operating system on an embedded system (currently Motorola Coldfires).
One should note that QNX came out of the UW CS real-time course, not the OS course. -
Nachos
-
Nachos
-
Re:Carleton University's situation
Waterloo (where I attended -- B.Math 1997) has a curriculum that gets quite insane. Their Computer Science Club is fine, thanks.
-
Protocol failureSomebody here on Slashdot a while ago suggested reading the book Handbook of Applied Cryptography. (Its a free download in postscript or pdf.) I'm working my way through it now, but I would especially recommend the first chapter to everybody. It is a good of crypto in general and makes some great points.
Here is a point about digital signatures that I got from the first chapter that I found interesting:
What is to keep an somebody from signing something then later claiming that their key was compromised at that point and it wasn't actually them that signed the document? -
Re:16 queries on one page?Gee, all this talk about normalizing and denormalizing reminds me of the BCNF question on my databases midterm.
:-)There are methods for determing (theoretically) nice ways of breaking up tables to eliminate redundancy and ensure lossless joins. Look up Boyce-Codd Normal Form, 3rd Normal Form, et cetera.
Of course, if your DB gets real large, you may not want to do joins anyway.
Paul
-
Students don't know what employers are looking for
Being a student at a Uni with a co-op job has taught me a lot about what employers are looking for, and I have always been successful in finding jobs that I enjoyed. However, I think that the reason that most of your resumes might be disappointing is that students don't know what you are looking for. Most think that programming skills are what employers want, and aren't really sure what the difference between design and implementation is.
As for problems taught we do things such as an OS course, a compiler course, an Algo's and DataStructures course, a SW Eng Course (where we design a PBX), and optional 4th year courses include Distributed and Network Centric Computing, Applied AI, and Database Systems. I agree that a lot of the things that we are taught are old, and I think it is only through experience that you learn some of the modern problems.
That is what I appreciate the most about a co-op program. We spend five years in school, but 2 of it is spent in industry. (Check out Our Department Homepage.
>~~~~~~~~~~~~~~~~ -
Re:The Napster/Indie link.I think that's why both MP3.com and Napster exist. I would have to agree with you in that Napster does nothing for advertising, but that's not what it was intended for. I broadcast a jungle/drum 'n bass/reggae show at my University and since we're in Canada I have to broadcast a certain percentage of Canadian music. Well, with genre's like jungle and reggae you don't find too many popular canadian acts so I've frequently gone to MP3.com to find them. I'd just like to point out that people won't follow up on obscure groups unless they are doing so with the intent to do so. How many people walk around the record store looking for new stuff? I would think hardly no-one, since everyone there is going to find something they've allready heard or an artist they allready follow. Napster is the same situation - people only get music from it that they want. While I don't think that advertising would hurt Napster too much, it's hard to say who would have control of it, and unfortunatly I think it would end up in the hands of those money grabbing industry goons in the end.
-
Some factual errors....
Firstly, QNX is pronounced Queue-nicks, not Queue-nucks.
Secondly, it was developed at the University of Waterloo in Ontario, Canada and then spun off into a company.
Thirdly, it is not *just* an embedded OS, its most prominant use (atleast to Ontario and Quebec elemenrtary and secondary school students some 10 years ago) was on the PC powering that evil Unisys companies line of diskless 80186 based network computers called the Icon of which our schools had ungodly amounts of. QNX is also used quite extensively in the Canadian Armed Forces and can be used as a desktop OS.
-- iCEBaLM -
Demaine Info
I was reading this article and I was saying "hey, this sounds like Erik's work". And it was. Neat.
Erik is also very intelligent, and has a professional reputation considerbly higher than most 19 year olds I know :-)
Here's Erik's homepage -
Re:Cheating on rod length
As noted here, the animation is scaling to fit the limited screen real estate; the individual rods remain the same relative length. In other words, they're not cheating, but rather allowing us to see the mechanism adjusted for a limited medium.
-
Re:Recommend me a crypto book?
You've indicated that you want a book that is "fun to read" and this in my mind leaves only one choice: Applied Cryptography 2nd Ed by B.Schneier. It's funny, well written, insightful and accessible.
Something like Handbook of Applied Cryptography is more precise and scientific in approach, but has 0% humour.
Seriously, buy Applied Crypto...You won't regret it. Secrets & Lies is Schneiers follow-up and this is also a very good book, but is more into dealing with computer security rather than crypto.
-
Re:Excellent book
Hhhhm....Koblitz isn't bad, but is very terse and not nearly comprehensive. It's widely accepted that the current definitive work on cryptography is The Handbook of Applied Cryptography (HAC for short).
Literally every chapter of HAC is available on the HAC homepage here for free download in both
.ps and .pdf format - so it's possible to "try before you buy".The only area I'd say Koblitz has the upper hand is Elliptic Curves - HAC is very light on this topic.
-
Almst been there, almost done that...
See, at University of Waterloo, everybody who lives in residence gets free Internet in their rooms. The only problem is the download limitation. Different excessive usage are handled differently (see here).
Luckily, I didn't live in residence.
---
dd if=/dev/random of=~/.ssh/authorized_keys bs=1 count=1024 -
Almst been there, almost done that...
See, at University of Waterloo, everybody who lives in residence gets free Internet in their rooms. The only problem is the download limitation. Different excessive usage are handled differently (see here).
Luckily, I didn't live in residence.
---
dd if=/dev/random of=~/.ssh/authorized_keys bs=1 count=1024 -
Re:Wavelet Compression? - fractals, tooAbout 10 years ago, as wavelets were a buzzword, fractal compression got a share of the spotlight. Michael Barnsley - author of several papers and books - brought a fractal video demo by, and it was impressive. Unfortunately, I can't remember the details.
Anywho, you can find a good primer at the Waterloo Fractal Compression Project, including links off to Barnsley's new company and some other good stuff.
-
No Silver BulletThis immediately made me think of the paper by Frederick P. Brooks, Jr., "No Silver Bullet."
found a copy of it hereHe considers several improvements to programming including high level languages, OOP, AI, etc. He concludes that many of these improvements will help programmers, but that programming will continue similar to what we know now: both powerful and problematic. While this is somewhat dated material, i think it is still accurate and makes some valid points.
Essentially, as programmers we are blessed to work with some amazing and powerful tools, but they are still tools and we are still human.
I hope this post looks okay, my
/. connection at the moment is very crappy and the preview button is not working. -
Use Co-Op
Isn't this what Waterloo CS students are for? Learn fast and come cheap. Check it out here.
-
The compromise: co-op
Over here in Canada, at the University of Waterloo we have an interesting compromise between work and school. It's called the co-op program -- I know a lot of schools are starting to do this, but UW was built upon this concept -- nearly half the school is in it.
The way it works here is that every 4 months (including during the summer) students switch off between school and work. The school helps you find a job -- our co-op employment rate, even for the non-tech degrees, is somewhere in the 90s. An added bonus is that you usually make more than enough in co-op to pay for your next 4 months of school.
UW is both a well known and well respected geek school. We've consistantly placed in the top 10 in the ACM programming contest (usually beating MIT). Plus grads are very hirable, and (in my experience) are generally good coders. It makes for a good mix of theoretical and practical.
The system is by no means perfect. Despite high standards, there are still idiots who come through it. And uprooting your life every four months with no vacation is not fun. Plus, there is a bit of a feeling around campus of being a factory for employees. But overall, it's a decent system.
-
LiabilitiesThis is what can happen if you don't monitor your employee's emails. Chevron had to pay $2.2 million to employees because it allowed its internal email system to be used to transmit sexually offensive jokes.
This page lists a few more lawsuits from company liability about email. To limit liability in such cases, they suggest:
- Have an Explicit Written Email Policy
- Have an Explicit written email monitoring policy
- Have a User Education Program
-
Re:Not an easy one, thisCan't recall ever meeting an interpreter for Fortran. Were there such beasties ?
I'm not sure if you could call it a true interpreter, but WATFOR (Waterloo FORTRAN) was a "load-and-go" FORTRAN compiler that compiled directly into core from the user's source code. A history of Waterloo FORTRAN can be read here. From the user's point of view, it behaved like a FORTRAN interpreter.
In later years, I used DEC FORTRAN on RT-11. This compiled into threaded code with a large run-time package. I'm not sure how to classify it.
-
Re:Implications for digital signatures?
Since nobody seems to understand what I mean about digital signatures, please read about them here or read this excerpt:
To summarize, in public key cryptosystems, a sender can use his/her private key as his/her digital signature. Since it is only known by him/her a forgery of the signature is not possible with todays algorithms. At the other side of the communication link, the receiver can confirm the authorship of the message by using the public key of the claimed sender; so the public key provides an accurate authentication for the receiver. On the other hand, by crypting the message also with the receivers public key a sender, the sender prevents the intruders to obtain the message in the plain form. Although the intruders can know the public key of the sender, they still need the private key of the receiver to decrypt the overheared message. Hence, as long as the the private key is private to the receiver the overheared messages do not contain any meaning for the intruders.Steve
--
Stephen Forrest
4N PM/CS, University of Waterloo -
Is it useful? Maybe... Maybe not...Way back when, some of the Atari and Amiga folk at UW were lobbying Don Cowan to get Watcom to release a 68K version.
There was an "unofficial tradition" that some of the internal folk had created a 68K code generator, but it never got released publicly.
It is not at all obvious that the compilers are of vast continuing use; they have been strongly tied to the IA-32 platform for so long that it may well be that the onset of IA-64, combined with, as you say, the "latest COM stuff," meant that a big-time redesign would be necessary for Watcom C to be useful for Windows deployment next year.
The availability of source code may nonetheless be useful to glean useful optimization techniques that may be redeployed with GCC. I'd heard at CSC talks in the late '80s that there was a lot of "slick" static analysis that would be generally applicable to any architecture; as you observe, architectural differences between Watcom C and GCC might make it difficult to make them applicable. Hopefully some of the peephole optimization techniques would be useful for the IA-32 architecture, and by the time the "analogies" would be made to make them applicable, it might become possible to apply "analagous" optimizations to other architectures.
-
Is it useful? Maybe... Maybe not...Way back when, some of the Atari and Amiga folk at UW were lobbying Don Cowan to get Watcom to release a 68K version.
There was an "unofficial tradition" that some of the internal folk had created a 68K code generator, but it never got released publicly.
It is not at all obvious that the compilers are of vast continuing use; they have been strongly tied to the IA-32 platform for so long that it may well be that the onset of IA-64, combined with, as you say, the "latest COM stuff," meant that a big-time redesign would be necessary for Watcom C to be useful for Windows deployment next year.
The availability of source code may nonetheless be useful to glean useful optimization techniques that may be redeployed with GCC. I'd heard at CSC talks in the late '80s that there was a lot of "slick" static analysis that would be generally applicable to any architecture; as you observe, architectural differences between Watcom C and GCC might make it difficult to make them applicable. Hopefully some of the peephole optimization techniques would be useful for the IA-32 architecture, and by the time the "analogies" would be made to make them applicable, it might become possible to apply "analagous" optimizations to other architectures.
-
Academic perspective
There is a small, but growing, collection of historians of science and technology exploring the history of computing/computer technology (I'm just halfway through my master's program here: The Institute for the History and Philosophy of Science and Technology at the University of Toronto. There's only a couple of us doing computers, but it's a start
:)You might want to start at the library reading the Annals of the History of Computing. Off the top of my head, Michael Mahoney (who started in the History of Mathematics) has done a lot.
Historians of computing have looked at Babbage, Turing, and Wozniak, but you can start just about anywhere. The field has barely been touched - there are plenty of unexplored areas. And the great thing about the history of technology is that everybody can help: from engineers to economists.
Myself, as a recent University of Waterloo CompSci grad, I thought I'd return to my roots, and write my MA thesis about the early computer science program there. In particular, I'm thinking about looking at the birth of WatFor and the related successes achieved in undergraduate education. Hint: if you have a story to tell about Watfor, email me!
-
Internet Explorer 1.0
You will need the first version of Windows 95 to run this: Internet Explorer 1.0
(The earliest version of IE that I could find on Evolt was 1.5.)