+------------------------------------------------------+ | CIS 321 - INTRODUCTION TO PROBABILITY AND STATISTICS | | INSTRUCTOR: KISHAN G. MEHROTRA | +------------------------------------------------------+ If you are supposed to be here, be here. If you are not supposed to be here, then please leave. If any of you are confused, please raise your hand, and say "I am confused, and why are you trying to confuse me, at the very first lecture?" See this is where I get confused. Let me get you confused too, because that is the goal. Sample variance means how much variance there is in the sample. -- on sample variance +----------------------------+ | CIS 351 - DATA STRUCTURES | | INSTRUCTOR: JAMES S. ROYER | +----------------------------+ Just think about Pascal with ugly syntax, and you've got C. Java is for the WWW, and therefore, it's slow. I once knew vi. I went screaming back to emacs as soon as possible. Now into syntactic foolishness. Okay, public means other things can call this, static means...... Oh, let's not worry about it. The reason C was invented is, Dennis Ritchie wanted to work on the Unix project, but didn't want to get his hands dirty with assembler. So, he dirtied them with C. Have we done anything bizarre in here? No, nothing yet. We'll do something bizarre today. Oh, we get to see what static really means today. The way humans like to interact with computers resembles humans too much. Netscape crashes enough as it is. Java doesn't need to add to the chaos. Java doesn't want to roll over and die. Thank you! You could get a job as a Java compiler. -- After having an obvious mistake pointed out Let's see. This is worth teaching. Not only do I want more chairs, I want more blackboard space. If you've got problems with the labs, you've got a TA, right there, tethered to the machine. He can't go away. So ask. Everything is an object. Well, almost everything is an object. int isn't an object. It's an int." But still, we want to be lazy. How can we get more mileage out of these guys? 40? Boy, that's a good answer. But no. There are 2 obvious answers, and 40 is neither of the above. Unlike the way C abuses strings... [In Java,] Strings are static values you can't change. If you want arrays of characters you can beat up on, that's different. But these are Strings. And then I declare victory... Again, Java thinks it is very bad taste to just roll over and die. Well, at least without making a last statement. In computer memory, of course, you don't have these cute little arrows. You do not have to deallocate it. This happens automagically in Java. This is one of the petty, trivial things that will cause hell if you don't do it. The other thing I want to do is be able to unlink a boxcar and push it off the rails. So this is another class... And this is the goods. The real goods. That was so much fun, let's do it again. This is one of those cases where you want to look ahead, to see if you're going to fall off, so you land on a mattress when you do fall off. At some point this goes below 1 and never recovers, the poor dear. -- On limits So let's use basic algebra...kill, kill, kill. -- On simplification of an equation This sounds macho technical.... We don't care, we can have a stack of ints, of characters, of employee records, of big scary goon monsters.... We would need to rewrite the code for new monsters. Any crazy way you have referrenced to it, that's gone. It doesn't have any comments but writing gives me a headache today. Slimy C programmers with plus plus minus minus. Burried on top of Integer is a tiny little int screaming to get out. If that assumption is wrong, then something is wrong and you should get an error. Any now I'm pointing to outer space. -- On memory allocation It's better than making your user wait while you do something brainless. -- On +N vs. copy everything upon enqueue Then throw something, you're mad. -- On dequeueing empty queues And now for the instance methods...size returns size, big surprise there. These minor little fussy details you have to deal with and be careful about, but hey, thats programming. Let's sacrafice two cells to the gods of the system. Whats the anal retainer...? It's completely boring. Any you do a postorder transversal and you go what, what, what, what?!?!? And now if you look at this picture that you can't see because it's too dark. -- Lights were off for overhead display Showing a TV commercial of an internet search engine...now that's unusual. Simplicity is not to be sneered at. This you have to know for life, because this will get you fired, or make many people mad at you. -- On poorly planned hash tables And now let's play havoc with your notes again. -- While changing test data requiring changing all results. Easy on white board, hard on paper. That can be something like 50 cycles on a Pentium II which is horrible, just horrible. -- On making binary search more efficient One complaint about the book, they burn memory too much, in the Java spirit I guess. Argh! I'll show you the long winded way and then the C hacker way. Once you know those, someone can shake you awake at 3AM and you can do perfect code. -- Merge sort A first cousin of the while loop is a do loop. I'm almost done, I'll shut up in a minute. This is very clever code. It's not due to me, it's due to years of worrying about this sort of stuff by others. It's computer science, bottom is top, top is bottom. -- On lengths of binary trees I'm not going to draw a fifth level tree because I'll run out of ink, thats 32,000 nodes. If you have some kind of disability, see me as soon as possible. If your disability is some kind of fear of classrooms, I don't think I can help you. This is not what I wanted. This is going to take half an hour. -- After accidentally opening Microsoft Visual J++ A class is a big bag that you stick things in. Speed and java don't go together. This is unix, it doesn't protect you from yourself. On the old Xerox machines, there was a mode called 'Do what I mean.' As opposed to do what I do. It was highly dangerous." If you buy one of those books called Teach Your Cat Java in 28 Days...well, be careful of those books. They'll have errors in them. You don't expect CPUs to make errors when adding two integers. That's when the world is over. You have to learn to deal with errors. Crashing and catching fire is not an option. It will eventually wake up and print the stupid table for us. -- On waiting for java to run This is what my children like to do. Take everything from my wallet and add it to theirs. -- On methods for an int bag Now I'm trying to reach inside something that's empty. And java gets all upset over that. So java justifiably finds that offensive. So what happens to this poor little lost node? It just sits there in memory like a frog on a rock. We definitely need a faster machine than this. My 10 year old macintosh is faster than this. All animals are equal, but some animals are more equal than others. This is a dirt simple thing to do. We're not going to beat our chests about how hard this is. Because it isn't. And when we see the + sign, aggresive things happen. Okay, now let me get into trouble by improvising. Okay, let's look at a brainless example. So this is gone. Where? I don't know. In heaven, where little characters go. Again, draw a picture. Draw a picture. Draw a picture and you're halfway there. We could do it that way. But it would be painful. -- Commenting on a student suggestion Well, now I'm going to start waving my hands, because I'm out of board space. Let's talk about tree surgery. Where things get really hairy. I hate gratuitous for loops in my programs. I think I am going to be consistent. Yes, I will. Pretend there's something hanging onto it. Like a command, a vector, or a guy in a wheelchair. +---------------------------------+ | CIS 352 - PROGRAMMING LANGUAGES | | INSTRUCTOR: SUSAN OLDER | +---------------------------------+ For the time being, we don't believe in polymorphism. This is kind of hard to write on a two dimensional board. Not to have you throw things at me...especially pointy things. -- On next exam date While you dislike this, at least you know why I'm abusing you with it. If this was a French class, well...I know no French so this would be a very short class. And then you get lambda y.(y (y y)). I'm sure you've been asking that question too. I really gotta think these examples out first. Let's replace Y for every occurance of Z that you can't see since it's under the board. It is a good point to know what we are talking about. An exception is an exceptional event. -- On exceptions I'll do some code on the board and then put it in the interpreter to show that I'm not lying to you. Division by zero can be deadly. +----------------------------------------------+ | CIS 375 - INTERMEDIATE COMPUTER SCIENCE MATH | | INSTRUCTOR: KISHAN G. MEHROTRA | +----------------------------------------------+ I'll fix this page as soon as I obtain an interesting result. The margin of this page is too small to contain the proof. -- From his 'under contruction' web page. Mehrotra: So (1+2+8) mod 9 is 2. Student: Why did you choose 9? Mehrotra: It's a secret...for now. This is only useful for a fourth grade teacher. I do not see how this is useful in everyday life, since you have your calculators. Negative answers are confusing. That is all I am going to say. So we don't like negative answers. And notice that these things do a little dance... Factorial of three? No, that is generally not the correct answer. I want to distribute $10 to two of my children. I did not say equally, since I don't like each of my children equally. But thats not the problem I want to give you, because I don't have two children, I have four. Anyone can solve the easy problems. You will want to tackle the hard ones. Student: "Is the answer one?" Mehrotra: "Oh I hope not." Within the computer, brute force is not good. Student: "Why are the probabilities of boys or girls being born different?" Mehrotra: "For survival of the species." Student: "I don't understand." Mehrotra: "Well, you need........nevermind." How long will it take a computer to do a "difficult" calculation? Decades...centuries... +-----------------------------------------------------------------+ | CIS 400 - FRACTALS, CHAOS, AND COMPUTATION WITH DYNAMIC SYSTEMS | | INSTRUCTOR: HOWARD A. BLAIR | +-----------------------------------------------------------------+ Remember Galileo's experiment, dropping two objects off a tower at the same time, and both will hit the ground at the same time? Thats partly wrong, since it assumes the Earth is stationary in space. In my left hand, I hold a piece of chalk. And in my right hand, Jupiter. I let them both go at the same time. Jupiter will hit the Earth first. -- Explaining false assumptions with Newtonian physics Its quite clear he doesn't know the mathematics behind it. He's an artist. -- On the textbook's author I'm not yet, for the sport of it, getting my head chopped off. In this system time moves at a constant rate. It's nonsense to say that, that time moves. And now let me zoom in, the Y axis is over there, somewhere in the next room. We just did a sanity check here and failed. Jump around alot. How much is alot? About 14 times. +-----------------------------------------+ | CIS 400 - ADVANCED PROGRAMMING PROJECTS | | INSTRUCTOR: ERNEST E. SIBERT | +-----------------------------------------+ Please excuse me, the caffiene concentration in my blood is running low. You don't want my heart to stop in the front of the classroom, it is such a nuisence. Some of my suggestions are helpful, many not. +---------------------------------------------+ | CIS 400 - FUNCTIONAL PROGRAMMING IN HASKELL | | INSTRUCTOR: JAMES S. ROYER | +---------------------------------------------+ I shouldn't tell you this because you'll drop the course... You don't ever want your switches to go down. These people (Haskell programmers) envy those people (C programmers) because they have all the money. Or it may never end. There may be a troll down there. Bad specs are a bad thing. Ask any military contractor that. You get these specs from the pentagon and they're broken, but you have to work with them, and the Pentagon will tell you the same thing. Yes, yes you're right... Let's go with my simple story. Ok, yes, now x comes from outside NOT my fevered imagination. Trivia: Traditionally, code for Lisp benchmarks begin with a fact and end with a fib. And the scary part of the syntax is that you will understand it soon. For now, let's just live in a programming bubble. "This gets retired" -- Said just before throwing a dead dry erase marker in the trash can. So let's go to the barn and do some milking. I should write this in green, no, I should write this in red. It's hard to keep track. And now I'll leave you to read.......no, you'll never do that. We've got trees to burn here. -- On using infinite lists and binary trees The language has got me buffaloed. I won't even do the syntatically naughty thing on the blackboard. Again, Jim being anal retentive about making this thing right. And that was so much fun lets do it again. You don't want to have every piece of scrap paper for every computation you ever did stored in your room, because eventually there would be no room for you. And then the garbage collector comes along and says "get out." So thats bad. This is two fisted programming. I should debug my comments. -- On pseudo-code that was commented out Real programs are too big to fit in your head. So abstraction is our friend, except when its our enemy. C++ makes certain things hard, like thinking clearly. Hey it works! That's not supposed to happen. Let me not demonstrate this because I don't know what filesystem is stable right now. Did that answer your original question, I forgot what it was. The problem with not proving anything is that its all definitions. I'll be out of town for a few days so if you want to talk to me do it tomorrow. I don't know what kind of email connection I'll have there. Not to mention I might not want to use it anyways. Well, thats the whole point of going away. It tells you, three is a number. It's computer science infinity, if you want more, it's there, you just don't have to have it all at once. Unix streams are designed to be infinite since you don't know how long the file is. Thats computer science infinite, you don't know how long its going to be. +-------------------------------+ | CIS 400 - ULTRASPARC ASSEMBLY | | INSTRUCTOR: ERNEST E. SIBERT | +-------------------------------+ It tells you more info than you care about, like the byte order of every instruction. We don't care about that. -- on the course textbook I suggest when you do any time measurements to shut down the web browser. To simulate the entire universe, you'll need a very big computer. On the left it lists the line from the source code. Hmm...does it start at one? I think it starts at zero, this is computer science after all. There is a BPN, a branch condition that never branches. Seems strange? It is strange. But, there's a reason. There is a reason. The 30-bit displacement allows a jump to any location within [-2^31..2^31 - 1] + PC. This spans 4 gigabytes, probably adequate for any one program module. I'm going to get a cup of coffee. That's what we always do when doing a slow calculation. -- In the middle of class, while waiting for output, as Professor Sibert walks out the door and to the coffee room. I know you often think I leave you in the dark, even with all the lights on. -- In response to turning off the lights to reduce glare. Suppose you're a bank and storing the values in pennies. Thats 64 bits. The world is not worth 2^64 in pennies, I believe. There was a conjecture in the 40's, er, 1940's to be Y2K compliant, and was later realized in the 1950's. We're up to a tenth of a second, that's a clock tick for 99,000 steps. You don't have to be sitting in a bathtub to say "Eureka!" +-------------------------------+ | CIS 400 - INTRO TO CRYPTOLOGY | | INSTRUCTOR: JAMES S. ROYER | +-------------------------------+ Assignment 1 is to figure out what assignment 2 is. One nice thing about cryptography is its morally ambiguous. So it checks if the key works...works means it doesn't destroy the information which is always in bad form... There are no algorithms for crypt analysis. There's tools, there's guesses, and there is a lot of frustration. On the other hand...it's cryptology, it has to be tricky. Let's look at two users, Alice and Bob. They're gonna get grumpier and grumpier as the semester moves on. I'm plagiarizing myself in this lecture by the way... What is the early history of DES? That's an old scandal. What is the later history of DES? That's another scandal. So let's talk about beating up on RSA. Well, they got lots of money, why should I care? So you want to know why to trust these guys, and reading the cartoon guide to cryptology is probably not what your clients want to hear. So to do this we have to go back to the 18th century again. Is that a sigma or an S? That's an S. Same character, different alphabet. So again, it's either math or cartoons, and we got the cartoon network for cartoons. This is disgusting, I love it. These are for sessions. And like any good military program, for when your plane gets stolen by the Chinese, you'll want to change your keys. Thanks to some Chinese dude a few thousand years ago, we can solve this. Now things get seriously strange, if they haven't already. Again, teleporting your particles is very weird. So here's Alice and Bob, and this is the downward spiral of the relationship, and so they're divorced. And so they decide to flip a coin. That seems fair, but they don't want to meet each other because they don't like each other anymore. +--------------------------------+ | CIS 473 - COMPUTABILITY THEORY | | INSTRUCTOR: HOWARD A. BLAIR | +--------------------------------+ You should be clear on what a subset is. You will be mentally hobbled if you don't endevour to find out. That's what we want you to do, to think hard, obsessively, for a long time, about very little. You're saying "I already know these things." Now here's the first big idea. None of these things actually say anything. How many nanoseconds are there in a year? Approximately. I'm going to ask you to do something strange. Please turn your desks around. -- At the beginning of the final exam +----------------------------+ | CIS 575 - ALGORITHMS | | INSTRUCTOR: JAMES S. ROYER | +----------------------------+ This text is designed to make stronger computer scientists. You lift it ten times a day. -- On the 1028 page textbook And so we need computers to be correct and accurate...otherwise bad things would happen...like Windows. I'm just being confused...my normal state. So what we're doing when we're being careful and honest... and usually we'll be careful... The empty list would be this little guy...contemplating his navel. Or sometimes we're in C or assembler...well sometimes there's no difference. When netscape dies on you, which it does every day, that's a bad pointer. -- on memory management And so it looks like a core dump, and it is, it is a core dump! Let us not do tree surgery just yet. So let's look at the code for that if we have time. (checks clock) Oh, poor people, we have time. Big hint, preorder is easy. It's the smallest value that's bigger than. But I can do the predecessor by going behind the blackboard and looking at this in reverse. You usually want to know the average case. The worst case will tell you the worst possible outcome...Pat Buchanan winning in November, it could happen...but is unlikely. So again it's just high school! There's no advanced math... well there is but we'll just lie about that. So here's a sort that, if civilization collapsed and we had to rebuild technology from scratch and we needed a card sorter... So there used to be these IBM punchcards of legend... I've been in situations where I had to clear [punch] card readers and it's worse than printers...much worse than printers. So then you open your CIS 321 book and you'll notice... There's two ways of doing these. One is greedy algorithms, that's the Republican way. The other is dynamic, that's the Democratic way. Dynamic is bottom-up. Republican way is top-down. And none of these work all the time, but you probably already knew that. And so the activity selection problem, and yes it is a boring name but we'll live with it... And now because we're on a blackboard, inverted video... Crazy questions require crazy answers. You think the college of engineering could afford some WD-40. -- after pulling down a sticking sliding blackboard. And the final exam is at 8:00AM. Go visit Starbucks before coming here. This is telling you things not to do, like sticking your tongue in the electrical outlet. +-----------------------------------------------------------+ | IST 335 - INTRODUCTION TO INFORMATION BASED ORGANIZATIONS | | INSTRUCTOR: MICHAEL A. D'EREDITA | +-----------------------------------------------------------+ Did everyone here take Ist 155? I know, we're reconstructing it to make it more fun. I know it sucks, I've seen the syllabus. So that's whats going to be on the test. Questions? Comments? Concerns? Nobody's concerned about the Miami Dolphins? Nobody's concerned that the Miami Dolphins suck? -- Switching topics from the test to high performance teams