All right, thanks everyone for making it this early and very, very cold morning. I was thinking on the way over here, I was like, man, I'm so happy that it's not like fall and it's not like 110 degrees walking over here. After like two minutes, I was like, man, maybe I shouldn't have wished so hard because it's really, really cold. So just to make sure you're in the right room, I saw some people leaving earlier when I put this up so they were not in the right room. So you should be here for CSE 340. If you're not, go leave.  Or you can just sit and maybe you'll want to take this class after hearing what we have to say today. Cool. Okay, so today is kind of, I'm going to tell you what the class is about. I'm going to tell you a little bit about myself. Hopefully try to get to know each other a little bit. And then we'll get into kind of some of the high level big questions that we want to answer with this class. So let's go over with this, the story of the thing. All right, so basically, have to go over the syllabus. So the reason why we go over the syllabus is so that you know what to expect in this class. And I know, or you know at least what I expect of you in this class. If we have any questions, we can definitely talk about that now and get it all kind of out of the way and settled. Can everybody read the screen? Yeah? By the way, this is a really sweet room. I'm really digging this room. There's a lot of room with the chairs, like you're all spread out, it's all fancy up here. Do you like the two screens or just one? Does it matter? It's fine for now. All right, let me know what you think. Okay, so a little bit about myself. For those of you that don't know me, I see a few familiar faces, so that's good. So I'm Adam DuPay. You can call me Dr. DuPay, you can call me Professor DuPay, you can also just call me Adam, which I prefer. That is totally fine. Whatever you want. A little bit of background about myself. I did, let's see, I did a total of nine years at UC Santa Barbara. So I did my undergrad there, did their four plus one program. So got an undergrad and a master's there. Then decided I hated it. Well, maybe that's too trying to work. I wanted to, was done with academia, wanted to go work. So I worked full-time at Microsoft for a year as a software developer up in the Seattle area. And then I was like, well, man, maybe I really do like doing research. So I went back to Santa Barbara for my PhD where I worked on my area of specialty is security research. So specifically how to automatically find vulnerabilities in software. And so I did that for four years. And then after that I was fortunate enough to be here. So this is my third semester here at ASU. So I'm pretty excited. And there's half the number of students here that I taught last semester for 340. So I'm also very excited about that. Yeah, any questions? Is that a hand or no? Just a high scratch. Okay, any questions about me, my background? Anything? Okay, cool. My office is here. I'll be meeting with the TAs today to establish some office hours. We'll try to keep them spread out throughout the week so that all of you can get help on the course. It is really important to take advantage of that. I know sometimes it could be a little weird. Maybe you're intimidated. I hope I'm not too scary, maybe just scary enough. No, please come and see us. Come see the TA. We want to talk to you. We want to help you as the TA here. Yeah, you want to stand up and introduce yourselves to the class? Hi, my name is Uncle. I'm a Ph.D. student. And my video specialization is security. Cool. All right. So yeah, we'll be posting all of our info, all of that stuff in here. Okay, so unlike other classes, I guess I'll get down to it in a bit, but unlike other, I absolutely hate using Blackboard. Every time I ask you Blackboard, it makes me feel like the stupidest person that's ever lived. And maybe you've never seen the other side of it where you have to create things.  It's the most enterprise-y software I think I've ever been used. So we will use Blackboards for me to post the homework assignment to you and for you to submit the homework assignment, because that's a lot easier for us to grade that stuff. We'll also post grades on there, but pretty much everything else will be happened on this course mailing list. So all class announcements, any questions you want to have asked, can you go through the mailing list? Questions so far? Lots of material. Okay. Office hours. So yeah, please. So, you know, we will... Can you read that in the back? I'm going to say no. Can you read that? What's the second paragraph, third word today? Okay, so the point of the office hours are that you can come ask questions. So this is going to be a very programming intensive course, so much so that it's probably much more programming than you've done in your previous classes. And this is specifically by design, because as a computer scientist you need to be able to build complex systems and be able to take something from specification and build something pretty much exactly the way we want it. And so because of that, so anybody here coded perfectly? Yes? Okay, I would venture that maybe you're not coding hard enough or solving ambitious problems, right? It's easy to code something simple perfectly, right? And even then sometimes it's difficult. One of the tricky things, especially at your stage, right, is it's very hard to estimate how long something's going to take, because maybe you think everything's going great, and then you hit a bug that takes you four or five hours to find and fix, right? And you never know when exactly those things are going to come. So to survive in this class, you've got to start early on the programming assignments, and when you have problems, you've got to ask the mailing list or come into office hours. So I really urge you to take advantage of that. One thing we will not do is you come in, give us your program and be like, my code doesn't work. Well, that sucks, okay? That's what we're going to do about that. I'm not going to spoon feed you the answers, right? It's my job to help you think about and understand what's wrong and try to figure it out what's wrong about your code, rather than me just saying, oh, yeah, you didn't free that buffer over here and now it's being reused and now that's where that second-patient fault's coming from. So, you know, when you ask questions, I have a link here, which I think is a really good essay. It's how to ask questions the smart way. So you've never seen this before. It's all about if you just say, hey, what's the answer to problem three on the mailing list? I'll probably say, you know, maybe you should think about it. If you have, you're much more likely to get a response and help if you say, hey, I'm stuck on problem three. I've tried, you know, X, Y, and Z, and I see that the grammar looks like this and I see that the third production rule looks like this, but I still, the answer that I'm getting doesn't make sense because of X, Y, and Z, and I've Googled and I looked at this page and this page says this thing, but I don't really understand it, right? So if you demonstrate that you've put in some effort to solving a problem when you come to us, absolutely happy to help, right? We want to help you. We want you to be successful in this class. So yeah, this is a really good how to ask questions and helps in all kinds of things, so class stuff, stack overflow, all that kind of stuff. Do you have any questions on office hours? Have you ever been to office hours in a class? Is there anything not? Okay, come to my office hours. So there you go. Okay, so just be very, very, very clear. All announcements and communications about this course is going to take place through the mailing list, which is the wrong link there, but actually I think it's the right link. It's the wrong text, yeah. Yeah, so it's just a Google group. I highly recommend you sign it up to, there's like settings when you sign up for it, have it send you emails automatically. That's the best way to keep up to date on the course, because oftentimes one of your classmates will ask a question that maybe is something that you're struggling with. And so when I respond, right, rather than you later say, oh, I'm also having the same problem, you'll probably just get a link to the discussion on the forum, right? Because you've already answered that question. Okay, and the other great thing that I really like about this mailing list is we're only two people, right? And you are, hey, may I know? More than two. More than two. That is also correct. If it was four, it wouldn't be a big problem. What's that number on the back there? 125. 125, right? You're 125 people. So we want you to succeed. We're going to help you. We're going to do everything out of power. But really, part of the way to survive this course is to help each other in the class, right? So if somebody posts a question on the mailing list and you think you know or maybe know an answer, you're totally more than welcome to reply. And I actually really encourage you to do that. Just like I said, right? We don't want to just spoon-feed people the answers, right? Oh, problem three, that's, you know, five. Probably not going to be as simple as five. But you can help answer or clarify things or questions about concepts or how does this grammar work if there's an epsilon here or how do character star-star pointers work when you dereference them and take the address out of operator? All that kind of stuff. So don't go overboard. Don't send any other student like your code or anything like that. Don't post that on the mailing list. It's also very bad. It's a lot better. I also like it if you know of a resource, right? That can help them. Send them the link to the resource, right? So they can further their understanding and be able to learn and kind of understand it rather than giving them the answer. Yeah, so the other thing is, so also with 125 students, right? The communication gap or the communication difference here. So if you have a question, it's a lot easier if you post it to the mailing list. That way I can get to it. That way the TA can get to it. Or that way one of you can get to it, right? If you just send it to me, I get a lot of emails and I'll just say that, right? It's been making me a little while to get to them. I'll definitely reply to all of them. And then if I think it's helpful, and oftentimes I will when you email me directly, if it's something I think the whole class can benefit from the response, I'll CC the class mailing list so that everybody can see that response. Obviously not if there's private information there. This borderline I'll ask you the default is to not, but oftentimes I will because I think it makes it a lot easier for you and I think it's very helpful for everyone in the class. Questions, mailing list? All that kind of stuff. Here are your rex. You've been able to register for this course so you probably, this probably is not necessary. All right, textbooks. So this is the recommended textbook. It's not required. You don't have to have it in. I'll say it's good on some parts. It's not great on other parts, but it can serve as a pretty good additional place to try to understand some of the concepts and some of the techniques that we're talking about. You can definitely also get the second edition which is a lot cheaper, so do with that what you will. I'll post. So for each of the topics that we discussed, I'll post the relevant material in the book for both the third edition and the second edition. So that way you can use whichever one. Okay. Lecture topics. I don't think nobody really cares about that. The exam dates will be posted in advance. We'll be posting them soon. I guess the other thing that I didn't mention so far about this class, right? So there's another section of 340 this semester. You should be aware there was no choice. You chose the 9am one, so it's kind of on you. So we're going to try and sync up project due dates and exam dates so that we're more or less aligned. So that's why I will post them very soon in the exam dates, because me and Professor Bozzi have to talk and find out a good date. So you basically have to let me know in advance if you're going to have to miss an exam. Please, it needs to be a real reason, right? Religious holidays, university sanctioned activities. Let me know in advance so I can do something different for you. If it's due to medical reasons, they need to be documented. There's a lot of students. 340? No, I guess not. Okay. Workload. How many courses have a workload section? A lot. Okay. This is a demanding class. This class requires consistent effort. So I'm going to tell you this now. I probably will not in the future go. I told you so because that's not the kind of person I am. But if I give you three, four weeks on a project, when should you start that project? Three or four weeks before the due date. Yes. Right? As soon as it's assigned. And we'll get more of this as we get closer to the projects, but I saw some things last semester where people didn't start until three days before the assignment was due. And I give you this amount of time because these are difficult, complex assignments that you have to build, essentially some of them from the ground up. So you have to decide how to design it, how to code it, how to make it execute on our test cases. What kind of algorithm do you need to come up with the algorithm to be able to solve it and apply it to this problem? So these are things that, even if you're not coding right away, you need to be thinking about this problem. How am I going to solve it? How can I create an algorithm to solve this? And if you don't do that, if you wait until the week of, you're just going to get hosed. And I don't give extensions. So definitely do not count on that. You're going to have to write a lot of code. You're going to have to read and understand code that we give you so we may say, hey, use this lexer and use that to create a parser for this language. And so you've got to understand our code to understand how it works and how to use it in your program. So why do we do this? It's because I'm very mean. You can say yes. I try not to be mean. Just unfair or something like that. So this is real life. So the closer you're getting to graduation, the more and more we ramp up, hey, you have to be able to solve difficult problems. You have to be able to design software. You have to be able to read code. So these are things you have to do in the real world. Actually, it really surprised me when I was at Microsoft because you go through your undergrad career and you're creating all this stuff and you like software and you think it's really cool. And then you get to a company. Are you creating stuff from scratch? Probably not. Probably not. They're like, hey, great, you're working on this project. Oh, by the way, it's like 200,000, 500,000 lines of code, whatever it may be. And now here's a bug. Go change that thing. And you're just like, uh. So this is part of the skills that you're developing, obviously not in that massive of a context, but these are the skills that you have to have in order to be a successful computer scientist, software developer, software engineer. And so, yes, it's going to be a very demanding class. You will work a ton in this class, but I think that it's very much worth the effort and it's going to make you a better computer scientist and a better programmer. And so not only that, so if it was just a programming class, that would be difficult, but we're also going to discuss theoretical concepts, new ways of thinking about programming and programming languages, new types of theory and abstract concepts, and so you're going to have to also understand that, which is part of why I really like this class. Questions on workload stuff? So if you're having some doubts about the class or I've got a whole bunch of stuff on my plate, it's worthwhile to seriously consider this part and maybe, you know, consider taking this class another semester when you're not as full. Assessment, okay. So homework, there'll probably be five homework assignments, four homework assignments. The goal of homework assignments is really just midterm prep. So the idea is we're giving you questions based on some of the problems that we've been talking about in class. You'll go through them, you'll submit them, when you see those questions on the midterm, you're not, oh my God, we've never talked about it first and follow-ups. Actually, we spent a week on that and you did a homework assignment on that. There'll be three midterm exams sprinkled periodically throughout the course. These will be helping to reinforce the concepts in class, all that kind of stuff, make sure the homework's. Priority projects, there's going to be five projects. The first two are pretty easy as we'll see. The last three are the very, very, very difficult ones. Okay, and one final exam that's comprehensive and covers everything in the class. Questions? All right, grading percentages. Let's see, homework 15. Midterm exam's 30, so each midterm is 10. Programming projects is 40. Let's take the math that's right here, that is. So projects one and two are each 5%, and projects three, four, and five are 10%. And 15% for the final exam. Questions? So the programming projects are a ton of work, so that's why they're rated very highly. But they're good, because they help reinforce the things that we're doing in class, and the things that we're doing in class help reinforce the programming projects. All right, so these are what I'm doing right here is promising you that these are the thresholds for the grades. So if you get a 97 or above, you get an A plus. So I may, what I say here is I may reserve the right to create the grades down by lowering, but I'm not gonna curve them up. So if you get 97% of this class, you get an A plus regardless. I'd love everyone to hit this 93%. If you all do 93% on the projects, or on the projects, on the course, I will give everyone in this class an A. Absolutely promise. So no curving like that, or none of that nonsense. I'm still optimistic that will happen. How does it not happen yet? No confidence. I guess I should say I can't discuss students' grades legally. Yeah, so I may pull these down, but I won't ever pull them up. Does that make sense? So you'll be able to know at any point in time. So this is just a formula. It's a mathematical formula. So you can at any point in the class plug in the grades you got on the assignments to come up with what's your current grade. Cool. And you can use this to find out the letter grade. Questions, grading, grades, letter grades, anything? Okay, this is something that's very important because I think some people may be unbelievable. Okay, so written homeworks. Homeworks are all written homeworks. They must be submitted online on Blackboard by midnight on the date that they are due. No late homework. I'm talking in 1205, 1206 is too late, zero on the homework. So submit online. You can submit multiple times on Blackboard. So please, if you're still working on it, submit something. That way we have something to grade. You know, this is also inspired by the real world, right? Like your boss asks for something. It's because he or she needs that thing before a meeting. And if you don't give them that bug report or the list of outstanding bugs or the current, your current sprint status or something like that, right, then they can't do their job. And so it's important that you're able to hit and know the deadline. This way there's no ambiguity, right? Everybody knows it's due by this date, this time. That's it. Project due dates. Projects are a little more difficult. So for each day that a project is late, 20% deduction based off of the grades that you got on there. So on almost all program assignments, they'll be automatically graded. So you'll be able to, through a submission system, submit your code and get feedback on exactly how many test cases you passed. And from there, you can figure out your grade very, very simply. Yeah. Are we allowed to submit multiple times? Yes, you can submit as many times as you want. And obviously, I don't know, maybe I should, well, I don't know. I should just say it, just sort of being clear. Obviously, though, messing with or, I don't know, trying to figure out the test cases by stealing code or running some malicious code on the server, right? Like you're honest, ethical people. So don't do that. We'll have serious, serious problems. If you have a documented medical emergency, you know, talk to me and we'll come to something that's fair.  Probably not an extension. Not extension worthy because there's a ton of time to work on these projects. But talk to me. I'm reasonable, but it's not just, we gotta remember when you talk to me about these things, right? It's not just you I have to think about. I think about what's also fair to the rest of the students, right? So questions on this? So I did this last semester. I think it was helpful. So I'm going to try to record all class lectures and post them on YouTube. And I'll post the link to those on the course website. But, so this is a best effort kind of thing. So if it turns out that I forget this microphone and the recording's really crappy or I lose my laptop or, I don't know, something could happen, right? I'm not going to re-record a lecture just to post it online. So it's not guaranteed. Don't count on it because you're still responsible for the material that's covered in class. But I will do my best to try to do that. I've heard the feedback from the students last semester was that it was very helpful when prepping for exams or they had to miss class or something like that. So I think it was useful and it's very little work on my part. So I will keep doing that. And I don't, like, cut it or do any cool fades or anything like that. Crazy. Although that would be kind of cool. Somebody wants to do that. All right, cell phones, cell phones vibrate. If you have any special accommodations, talk to me if we could make that work. All right. Okay. This is an incredibly important section so I really like everyone's full attention on this. Okay. Incredibly serious issue plagiarism and cheating. So what constitutes plagiarism or cheating? Taking somebody else's work and claiming it as your own. Yeah, taking somebody else's work and claiming it as your own in programming assignments or the projects that you're going to be doing, what kind of stuff will that entail? Taking someone's code. Taking someone's code. Yeah. I wouldn't solution off Stack Overflow or something. Say that again. Pulling a solution off Stack Overflow or something like that. So pulling a solution off Stack Overflow. So probably they would never have left some stuff. Right. Yeah, so never mind. Yeah. So actually that's something we'll talk about in a second. So if you do find a code on Stack Overflow and it's for a specific thing, how to iterate, reverse over a doubly linked list or something like that. The license on Stack Overflow says it's great to comment so you can use it. I'm fine if you use it, but you better put a comment in your code about where that code came from. Because one student uses some code from Stack Overflow and another student uses code from Stack Overflow but neither document that. And so we see this code looks identical. Right. Then now we have a problem because how do we know you got through Stack Overflow and not through each other. Right. So that's the big issue. If you want to use that, I'm... So realism, right? Realistic. I use Stack Overflow, Google when I'm coding constantly. Mainman say it's mostly because I... I don't know. I've used a lot of programming languages so I never know.  But I use it all the time. I'm not going to prevent you from using it because I'm going to get silly but also don't say on the Stack Overflow how do I use Alexa to parse tokens in a thing, right? That's like a programming assignment. What other things would constitute? We talked about some things. What other things would constitute? Working on a project together with someone. Yeah, working on a project together with someone. So, you know, these assignments, these projects are individual projects. And I will admit that that, you know, takes away from the realism in some aspects, right?  You have to work with other people. But at this stage in your development, right? Being able to hone and develop those skills of how to organize, how to design a complex system is incredibly important. So I really do want you to work on those problems. Work on the programming projects alone. So, yeah, if, let's say, I don't know, you and a friend are working in the lab really close to each other. You never look at the code, but the code comes out exactly the same. We're going to have problems. So don't do that. You can talk at a high level, right? So I think at a high level it's fine, like, oh, you know, oh, how'd you do that thing? Like, oh, yeah, you iterate over this thing. If you talk about it at a high level, it's less of a problem. If you're talking about it at a low level and your code comes out the same, then that's very bad. What else? Sending your code to someone? Yeah, that was the big one, right? So we talk about taking code from someone, but sending code to somebody, right? So, yeah, you're just as culpable. And in fact, in my mind, it's almost worse in some sense because the person who plagiarizes is probably very desperate. That's what I've seen as they're, ah, it's right in front of the deadline. Just, let me please get your code, right? But then they don't learn anything, right?  They didn't design the software, right? So you're really taking away from their growth and their experience as a computer scientist. So I would much rather you take a zero on the assignment and the project than plagiarize. Okay, so, all right. So this is the big thing. So, zero, I have an absolutely zero-tolerance policy in this class. So I've only been here three semesters. I've only taught two classes, I guess, so far. I've already issued 20 academic integrity policy and violations. And how many grad students in this class? Efficiencies, some? Okay, okay. Hopefully I won't have to worry about you. Good. Okay, then this doesn't apply. But some of these were grad students, so I treated grad students under grads exactly the same. So I do not want this number to increase because I hate being the bad guy. But I will do it because it's fair to everyone else in the class, right? So, you know, I have to think about all the fellow students who put in the work and tried really hard and maybe got that zero or got, I don't know, 10 or 20%, right? But they tried really hard and didn't cheat. And then you have the students who cheated, plagiarized, and then, you know, that's not fair to those other students. So I will, when we detect it, and we're very good at detecting it, it'll be, you'll get a zero on the assignment, a lowered letter grade in the course, and the violations reported to the dean's office. So you said we're not allowed to work with our fellow students. Are we allowed to come in and ask specific questions on code TU? Yes, absolutely. Just making sure. Absolutely. Yeah, that's kind of what me and the TA are more here. Like, we can help answer those questions. And so, yeah. But you can always ask a, you know, high level question to the class mailing list, right? You're like, ah, I'm trying to compile and I'm getting this compile error, right? That's totally fine. And then somebody says, oh, it's probably because you're not using these flags or something, something, something, right? Yeah, absolutely. Okay. All right. Another big thing. Submitting a prior students code as your own. So we have all the code that's been written for this course since, I would say the dawn of time. I don't think that's correct, but I think it's like 2005 is what it might as well be. So yeah, if you submit a student's code from another year, right, which is just as bad, and that there can actually still be consequences for that student. So if you take somebody's code from last semester and submit it as your own, just like if you took from another student of this semester, right, that still can be accurate to your mother. Yeah. What if it's on the get-go? All right. Do you have plans? Do I pay you just a chance to pass that question? No, I heard last year that everyone did that. That's everyone they thought. Yeah, so that was part, that was one group. There were multiple clusters, if you will. Okay. So, let's talk about this. So why do you want to post your projects online? Yeah, perfect. I totally understand that. I totally get that. Let's think about it from the employer's perspective. Do they really want to see your classwork? How many people have done the CSC 340 programming assignments? At least 125. Well, that's the end. At least, I don't know, about 200 from my last semester, let's say. The semester before that was probably another 250. Probably like 1,000 people who have done these projects or similar versions of them since then. So honestly, from the employer's perspective, I didn't care less about what projects you do in class because that doesn't differentiate you from anybody else. What differentiates you is doing something different, something outside of the class, right? That's what employers want to see. They want to see that you put in that extra time and develop just some cool, stupid, it doesn't have to be fancy, something different that you didn't have to do for a class because that makes you stand out. And so this is why for this class, do not post your projects online. I've had multiple, multiple issues in my various classes where some students during the semester submitted it online right after the deadline and then other students found that code and took it and submitted it at their own for the late penalty. Some people took up old students code that they found online, yeah. What about using it for the purposes of version control and that kind of stuff? Especially if you have access to private repositories in that. If it's private, absolutely, totally fine. Yeah, yeah, yeah. That's kind of the view you get, right? You can use it just in a directory without a server, but if you want the backups there and do it privately, that's fine. I think GitHub is available to pretty much everybody in this room through ASU. Perfect, with private repos? Yes. Awesome. Yeah, so this is for the student package. Yeah, sometimes it takes like a month. I got mine like less than a couple hours. Do you have any problems? I think also BitBucket you can use. They have private repos. I think we could probably give you access to our server if all of us fail. So yeah, if you have any questions, if there's anything like that, just totally ask. But please don't post your projects online. Honestly, it's not helpful to you and it's not helpful to the future students who take this class. So, you know, you worked really hard on these programming assignments. Let the next group work really hard on their programming assignments, right? I'll make it easier for them. Questions on that? Yeah. FileBucket gives free private ones, correct? Isn't that limited? BitBucket. BitBucket, that's good. Yes, yeah, yeah. BitBucket does. Got another thing I don't know. Yeah. Question about the project. Sure. Is it only in C and C++? Yes. I think we're... Oh, maybe we'll get that. Does that include C++ 11? Probably not. We'll see. Like, just our release. The thing is, we have to... We have to check... The submission and automated grading system is targeted to a specific OS and a specific version, right? Which makes sense because there's 125 of us here and I think there's 140, 130 in the other section. We're all using the same submission system. So if... You know, we have to all standardize, right? So if you're using some weird Microsoft C compiler extension feature that doesn't work in the GCC version that we use, like, it's just crazy. Like, nobody wants to deal with those problems. So that's why we standardize. I'll have to check with Professor Bozzi's TA who's managing that system to see what exactly version it's using. Because I would like to...  We have a system that works, right? This automated grading system works as pretty bulletproof. So exactly what's going to happen when we upgrade and then things break. What, you know... Is the entire project grade based on test cases? More or less. Yes. So... Okay, we can talk about that in a second. Oh, class is so short. Okay. Okay, update. I could update the syllabus. Things changed. Yes. Is the syllabus only available at what appears to be your website? Yes. It's a link from my ASU... Would you be willing to put this link in the library? Because there's a syllabus heading, but there was nothing there. It should be a link to here. Or at least I changed that this morning. I don't know. I was setting it up this morning, so maybe there's... See? A more blackboard weirdness. Yeah. So if you want to go to the thing, to the course stuff, you can go to my website, teaching classes, your spring 2016, right? Yeah. 340. Cool. And everything will be posted on here. So lecture slides, the links to the recorded lectures. I didn't mention it. Sometimes I'll record office hours if I think that it's useful. So I'll post those online. Because I know oftentimes everybody can't make every office hours and people have work commitments. And the links to the relevant books sections. Okay. I guess I don't have one. Okay. All the projects will be done in C or C++. The first homework assignment is... The first programming project is to get you set up with a Linux environment. So that way, we know that you're running the exact same of Linux version distro that is a compiler that is used on our assessment system. So that way, we get rid of all these headaches. There are many, many... There's all...  Like, pressure doesn't know what he's talking about. I'll develop on Microsoft Visual Studio, which is a fine environment, right? But then when you decide like a couple of hours before to then try and port that over to our Linux environment, it doesn't work. It doesn't work, right? So if you're in a company and we're like, hey, we need a new feature for this product. You go code it. You push it out. And it goes into production. And it fails because you were using Ruby 1.8, but production uses Ruby 1.9. Does it matter that you wrote all this code? No, because it's broken, right? It doesn't work. It doesn't work in production. It doesn't work. So that's why we use the automated submission system because it's... I believe it's more fair, right? So some of the test cases we will give you, some of the test cases we will not. I'll talk about those more in upcoming classes. Any other questions on course stuff? Yeah? What IDE would you suggest considering you just used Visual Studio as a reference as one that wouldn't be perfect for this class? Well, it's not really the IDE. It's the periodic... You need to test. Honestly, if you want to be... I think I'm going to cover this to Wednesday. But I would use something like Emacs or Vim. Anything that you... So if you... I'll talk about it on Wednesday. But that's what... I use Emacs. You can use whatever... I mean, honestly, whatever, you can use Sublime Text. You could use Notepad, I guess, but that would be terrible. Don't do that. As long as you have a good, right compile run test cases loop, right? And you're actually running the test cases on the same operating system that we're running our automated test cases on. Because it works on my machine, but not on the submission server, is not a valid excuse. Right? You might as well have not done the assignment, so... Yeah. You could use Visual Studio, but if you wait to port, it's going to bite you. It's going to be a problem. Yeah. So with that... With saying that, would you recommend us putting some version of... or a particular version of Linux? Yes. We'll get into that very soon. Once we make sure we're standardized. Yeah. That's what the first project is. It's basically install this version of Linux on a virtual machine, all that kind of stuff. There's tons of resources. Oh, the other problem. That's right. The other problem with the Linux version is we want to use the same version that's available in the labs in case you lose your laptop or whatever, and it's available in general. So if we deviate from that too much, then we have problems. So you use the same version that's ASU General? Because ASU General has C++7. It has a... It has a weird version. It's like a pre-11 thing. We had problems last semester. That's why I don't know. Anyways. Okay. Cool. So let's talk for a little bit. So the class is called Principles of Programming Languages. So what does that mean? Why programming languages work? Why programming languages work? I have a deep question. Well, that's not going to how. How they work, right? Why they work? I guess that is also covered. Yeah. Maybe the fundamental structures that after a while programming languages? Yeah. So some kind of... We want to talk about programming languages. We want to understand what's possible. So... What is a programming language? How would you define it? What was it? Stuff you can write so that the computer can do stuff. Basically, instructions for the computer. Instructions for the computer. Can my Intel processor run my Ruby code? It's human readable text that can be taken into a computer and then converted to the way the computer speaks. Human readable text can be taken into a computer and translated into something that a computer can read. What if you... So... Let's see. Is x86 assembly a programming language? Technically. Technically. Is it human readable? Technically. There are people who make this. What about the ones in the zeroes? Like the binary, you know, when it is compiled, like the binary... Probably not. Not really human readable, but the compiler can execute it. Yeah. What else? That's my better definition of a higher-level programming language. Yeah. Higher-level programming language. Like that. Is it? Have we covered it? Covered. Yeah. Has it defined syntax? Is it defined syntax? What do you mean by that? It has specific code. It has specific non-secode that will do searching... do searching functions. I guess for now, we can maybe say that there's a way to tell what's a valid program in that programming language and what's not, right? In some way, but you could say. Pretty much just a set of tokens and values. A set of tokens and values is a little level, I would say. Think of it like high-level. What is a programming language? Yeah. Grammatical and syntactical structures paired with variables to allow for a computer to run and develop software. Does a programming language have to have variables? Yeah. Usually. Does it have to? Actually, at the very end of the class, we'll get a language that does not have any variables. I've actually refined this definition because the more I think about it, the more I don't know, I change my mind. But this is what I kind of like to think of it. It's a structured way to define computation. Structured kind of gets to the syntax thing, right? There's ways to tell what is in this programming language there's ways to tell what's not. Defining computation is like a recipe for a cheeseburger. A programming language or a program written in a programming language. What do you think? Is it? No. No? Why not? Well, can you repeat what you said actually? Oh. I just... Okay, there we go. Is a recipe for a cheeseburger a program written in a programming language? I would say, you know, because let's define computation as actions carried out by a computer. And I don't think... Well, we might be able to 3D print a cheeseburger. It could be a little recursive definition for self-referential. Define the computation as something that somebody could do. Alright, in that case, what's complicated? Yeah. I think it is. Yeah, why? Well, it's... It's definitely structured as a defined order. And then it's defined. And then the computer is... Yeah. I think it... I don't know. I think it depends, right? So it depends on maybe the recipe. It depends on what you consider computation. It depends on... What were the original computers? Where did the term computer come from? There was a person who did math. Yeah, a person who did math, right? Especially when they were doing the Manhattan Project. They showed rooms full of people doing math problems. And they would pass the results to the next person, right? And they called those people computers because they were computing results. So what's the purpose of a programming language? To accomplish a task. To accomplish a task? That's pretty good. I like that as a high-level definition. What else? Yeah, it could be to make the programmer more productive. So... But that's not right. Is it the purpose of a programming language itself? Or is that more so the... What would you say? That's more so how we would compare two programming languages, maybe. But it could be the purpose of creating a new programming language. To facilitate the ability for the programmer to interact with the computer? Yeah, so you want some way... I think that goes to the very beginning where you're talking about talking to a hardware, right? Some piece of hardware. Are you only ever talking to computers when you write programs? That's on how broad your definition of computer is. We'll go back to the original or normal definition of a hardware thing. Also programming languages so other people can read your code. Yeah, exactly, right? So oftentimes you're actually writing code not just for the computer, but you know that somebody else is going to have to read this code and fix bugs in it. So you may be writing for your teammates. You may be writing for your future self two years from now.  Probably terrible, right? Maybe I should... I won't do that now. Yeah, it could be... We want to communicate an algorithm, right? So we may not even care if it runs or just trying to communicate some ideas, some algorithm. We may want to use it to describe a process, to communicate a whole system to another person, right? So now we're not even really talking about machines. And we may want to communicate instructions to a machine. So how does the hardware understand your instructions? The beauty of a compiler. I like that. I may steal that. Is it magic? I can spoil it. Pretty funny. It's not computer science, yes. Yes? Everybody who's not computer science. I guess that's true. I guess there's no, right? It's not magic. There's no magical way that the hardware eventually executes your stuff. What does your CPU understand? Machine code. Machine code, yeah. Or you can think about it slightly higher up as assembly language. Right? So we should just stand in front of our computer to these big 1's and 0's and keep typing away. So, what do we need? Do we want to program those 0's and 1's? No. Oh, it'd be crazy, right? I mean, you could do it. It'd be a little crazy. So we need some kind of way to translate our intentions to the assembly language that the CPU understands. And that's where we get our compilers, right? And that's part of what we're studying here is how this translation process works. We're really, we're trying to, compilers are trying to translate a programming language essentially into an executable binary, right? So they take in a programmer in a language and they spit out something that you can just essentially double click if you think about it at a high level. What about an interpreter? How's that different from a compiler? Yeah? It just goes line by line. Right? So it doesn't compile. It's performing the computation itself, right? The program is doing that, not any underlying hardware. Now that program itself is actually running, this executable is probably running on the actual hardware, right? So you've got, like, all kinds of levels. What about transpiler? Anybody heard that term? Yeah. I'm guessing just by the name, it merges multiple languages? Merges multiple languages? Yeah. Translate from one language down to another. Yeah. So these are things, I actually don't like this term. I would much prefer the term compiler because a compiler doesn't have to spit out binary. It can spit out C or Ruby or whatever, right? But transpiler is kind of the new term for that. So, for instance, let's say you're writing a web application and you want to use the new JavaScript, is it ES6 or 7 or 8? ES6. Features 6. You want to use the ES6 features, but not every browser supports that. So they actually have transpilers that will take your ES6 JavaScript and compile it to, it must be ES5 then, JavaScript, and so that you're programming in the higher level language, but it actually comes out as the regular language that will work in any browser. So, in this class, we're going to answer this question. How do they work? How do compilers work? How do you, essentially, how and why programming languages work? We want to understand why do they work. I don't use this word because I don't want to scare anybody, but what's the theory behind them, right? What are they, why, why can, essentially, why can we have programming languages? What does it mean to be a language? Why are we talking English? I guess I'm not talking, but why are we writing English to our computers? Right, so. Anyways, I think we will stop here. Yeah, we're going to do, so examples of programming languages. Wednesday is a very important class. I'm going to talk about specifically,


Hello everyone, welcome to this session. I am Priyanka Bansore and today we are going to study about analogous system in that we are going to see about force voltage analogy. These are the learning outcomes of this video lecture. At the end of this session students will be able to define analogy and state the types of analogous system and also students will be able to explain force voltage analogy. These are the contents of this video lecture. First we see about analogous system. We are having two different physical systems with the same mathematical model. Then they will be called as analogous system. In between electrical and mechanical systems there exists a fixed analogy and exists a similarity between the equilibrium equations. Due to this it is possible to draw an electrical system which will behave exactly similar to the given mechanical system. This is called electrical analogous of given mechanical system and vice versa. There are two methods of obtaining electrical analogous networks. First force voltage analogy that is direct analogy and second is force current analogy that is inverse analogy. Consider simple mechanical system as shown in figure one. The mechanical translational system having three elements as spring, mass and friction. M is the mass, B is the friction or damper and spring constant is denoted as k. Due to applied force mass m will displace by an amount x in the direction of force f as shown in figure. Now before moving towards pause this video for few seconds and you have to think and write the mathematical equation for the mechanical system. So according to Newton's law of motion some of forces applied on rigid body or system must be equal to some of forces consumed to produce displacement velocity and acceleration in various elements of system. So the mathematical equation becomes f of t is equal to m into a plus b into v plus k into x of t where a is the acceleration and v is the velocity and x of t is the displacement. So equation becomes f of t is equal to m d square x of t by dt square plus b dx of t by dt plus k x of t. Then taking Laplace of above equation and the equation becomes f of s is equal to m s square x of s plus b s x of s plus k into x of s. So this is the equilibrium equation for the given translation mechanical system. Already we know that the mechanical system has two types. One is the translational and the other is rotational system. So we will see force voltage analogy for translational as well as for rotational system. Now we are moving towards the main point of this video lecture that is force voltage analogy for translation mechanical system. Now we will try to derive analogous electrical network. Consider an electrical network as shown in figure. In this method to the force in mechanical system voltage is assumed to be analogous one means force f is analogous to voltage v. Accordingly we will try to derive other analogous terms. Consider an electrical network here R, L and C are connected in series. According to Kirchhoff's law the equation can be written as v of t is equal to R i of t plus L d i of t by dt plus 1 by c integration of i of t dt. Now taking Laplace of both sides the equation becomes v of s is equal to R i of s plus L s i of s plus 1 by sc i of s. This is the equation of v of s. Now we compare f of s and v of s but here we cannot compare f of s and v of s directly because they are not in the same form. So for that we will use current as the rate of flow of charge. So i of t is equal to dq by dt. Now taking Laplace then the equation becomes i of s is equal to sq of s. i of s is equal to sq of s or q of s is equal to i of s by s.  Now f of s and v of s are in the same form. Now comparing equations for f of s and v of s. From above equations we can say that inductance L is analogous to mass m then resistance R is analogous to friction constant b reciprocal of capacitor that is 1 by c is analogous to spring constant k. Now we have compared translational mechanical and electrical systems here we compare the analogous elements in translation motion. So first force is analogous to voltage v then mass m is analogous to inductance L then friction constant b is analogous to resistance R then spring constant k is analogous to reciprocal of capacitor then displacement x is analogous to charge q and the last is velocity v that is dx by dt is analogous to the current i that is dq by dt. Now let us see mechanical rotational system. In this figure this is the motion about fixed axis in such systems the force gets replaced by a movement about the fixed axis that is called as torque. Then from the figure torque is represented by t inertia is represented by j omega is angular velocity then theta of t is the angular displacement and the alpha is angular acceleration. So according to Newton's law of motion the equation of rotational system is t of t is equal to j alpha plus k theta of t plus b omega. Here alpha is equal to d omega by dt and omega is equal to d theta by dt. So put the values of alpha and omega in the above equation. So the equation becomes t of t is equal to j d square theta of t by dt square plus b d theta by dt plus k theta of t taking Laplace of both sides. So the equation becomes t of s is equal to j s square theta of s plus b s theta of s plus k theta of s. Now this is the equilibrium equation of rotational system. Now let us see force voltage analogy for rotational mechanical system. Now again compare the equations of t of s and v of s. From above equations it is clear that inductance L is analogous to inertia j then resistance R is analogous to torsional friction constant d then reciprocal of capacitor is analogous to spring constant k. Finally we compare the analogous elements of rotational system with electrical system. So first torque t is analogous to voltage v then inertia j is analogous to inductance L then torsional friction constant b is analogous to resistance R torsional spring constant k is analogous to reciprocal of capacitor then angular displacement that is theta is analogous to charge q and the last one angular velocity alpha is analogous to the current I. So in this video lecture we have discussed force voltage analogy for translational as well as for rotational system. These are the references of this video lecture.


Live from San Francisco, it's theCube covering Pure Accelerate 2017. Brought to you by Pure Storage. Welcome back to Pure Accelerate. We're here at Pure 70 in San Francisco and this is theCube, the leader in live tech coverage. I'm Dave Vellante with my co-host, David Floyer. Matt Kicks, Kicks Moller is here. He's the vice president of product and solutions at Pure Storage. Kicks, welcome to theCube. Thanks for having me. My first time on theCube, I'm honored. It's awesome. We're honored to have you. We got to have a nickname on theCube. We had Deets on earlier. Stu had to leave. You can call me V if you want. You really don't have a nickname. We call him Floyer. All right. So anyway, great job today on stage. You got a really engaged audience. You guys have a lot of fun. The orange shoes are cool. How do you feel? I feel great. I think as we said today, this is the biggest year we've ever had in innovation at Pure. And it was fun to really take the focus back to software this release. We spent the last year bringing out our next gen kind of cloud era, all flash platforms between FlashBlade and FlashArrayX. And this was an opportunity to really kind of flex our muscles around software, flex our muscles around IoT and AI and that as well. So it was a fun set of releases. Well, it's been interesting to watch you guys and you watch your product strategy evolve. And of course, coincident to that, is your TAM expands, right? So it started in the sort of lower end of the spectrum and then it went into the 20s and now it's in the 30s. And I was saying to David, it used to be, well, I buy EMC for block and I buy NetApp for file. And you guys are challenging that sort of convention. Maybe talk a little bit about your strategy and how you're penetrating now new markets. Yeah, we think about our market opportunity in kind of three buckets. So first off, we go after the top 500 cloud providers. And we see, one of our biggest segments is really cloud providers. And we see them increasingly not really looking at legacy options for storage. They want a modern storage fabric. And part of why we're so excited in particular about the work we've done around NVME is we feel like it helps us go after some of the more server-dash-centric workloads of the past or of the next-gen workloads. And we can talk a little bit more about that. A second key area that we're focusing on is really going after next-generation data-driven applications. And AI, ML, all these areas are really driving amazing storage growth. It's even, I think, surprised us how quickly it's come up. And you had folks on theCUBE earlier today talking about FlashBlade. But one of the kind of threads that I think unites a lot of the next-gen applications is they're designed to be scale-out and they're designed to really need a lot of parallelism from storage. And so what we're doing with FlashBlade is really designing a storage platform that's kind of parallel from the start and can deliver that massive concurrency that you just can't get from a lot of legacy providers. And then, yeah, I think the third thing we're obviously excited about is going in and kind of ripping out the spinning rest of the past. We've made a lot of innuendos at this conference and how we're in this kind of classic, rusting building. And maybe it's a nice metaphor for some of that. Here it is. Yeah, but we're helping liberate the X world. And I think one of the things that we're excited about today was to announce Purity Active Cluster. You know, that's been kind of that top of the reliability hill feature when people want Metro-clustered applications active, active, and two data centers. That's about as reliable as it gets. And that was a feature that we didn't have in Flashray until now. And so we're excited to kind of have that final area to go in and help liberate. Yeah, so it's not just the sort of disk spinning rust replacement. You talked this morning about SRDF. I remember well in the early 1990s when SRDF came out and it was game changing and it obviously has driven a lot of revenue for EMC, now Dell EMC, and it helped a lot of customers, but there's no question that it was the mother of all complexity and cost. So talk a little bit more about how you guys are going to approach that problem. Yeah, I mean, I think if you look at a lot of what we announced today, there just continues to be a threat of simplicity throughout everything. And, you know, I was employee number six if you're right, I've been on the adventure from day one, right? And I think we always had a fundamental belief in simplicity. But as we started to ship products and started to get customer feedback, there was like this lightning rod within our team, all throughout engineering, where people really understood the power of simplicity. And it kind of went from a belief to a religion, I would almost say. And, you know, we've just always tried to do that with every new feature we come out with. And this felt like an area where there was such a vacuum of simplicity that there was a huge opportunity to rethink things. And so with this feature, it's totally built in, it's totally integrated. You can easily just stretch a volume across now two sites. And one of the problems we went to go solve was the third site media problem where you always need a third site witness in a stretch cluster to kind of determine if there is a failure, who's the surviving site that you want to have actually process the application I.O. And so we're delivering that as a service, as a SaaS service from our Pure One infrastructure. So it's just one more way that we take one more step and one more kind of pain of the infrastructure away. So I'd like to drill in a little bit on the NVME side of this. We've done some research on the architecture we think is coming up, which we're calling Unigrid because it allows this very even access to data at very low latencies across there. And really we'll start, in our view, a different sort of applications. Really very, very different way you can combine legacy state applications with the AI applications and other things like that. How are you going to bring that to market? Who are you selling that to? Yeah, I mean, we're super excited about this transition to NVME and we're trying to take a real leadership role here. And so much of it reminds us actually of the early days of Pure. We started Pure, Flash was expensive, it was exotic, had a bunch of people trying to make it this 1% technology. And our whole idea was, look, let's not make it a Ferrari. Let's democratize it for all and we think everybody deserves Flash and we did a bunch of work to try to mainstream it. And we're trying to take a very similar approach with NVME where a lot of the early folks who approached NVME built very specialized appliances that kind of exotic things. And our view is this should be mainstream. All Flash arrays should be built on NVME. And the real advantage is something you hinted at. It's just massively parallel. And so here you have Flash, this inherently parallel medium on its own. And we're talking to it through these legacy SCSI protocols that have been around forever. NVME is a huge opportunity to finally open that up. But we had an initial insight, I believe, where when we approached this, we didn't just say, look, we should just go get an NVME SSD. We realized that that whole architecture has to be optimized from software to hardware. And so we kind of foregoed or forewent the SSD form factor. We built our own direct Flash module. And the real magic of how we've approached this is not only shipping a device that's massively parallel, but building a bunch of software within purity that knows how to take advantage of that and brings all the Flash management up to the software tier. So we can kind of take advantage of it end to end. And so these are things we just don't see our competitors in the market doing right now. Maybe one more comment on your kind of parallelism. And I think you're right in that if you look at a wide range of kind of the next generation web scale applications, whether they'd be just more classic, no SQL databases on through to analytics, on through to AI and ML, and ML are kind of maybe the most extreme examples, but they're all far more parallel scale out applications than we were used to before. And so they thrive in environments where you have storage that can kind of marry that model. And what we're finding in particular in the AI world is that we're not up against other storage vendors.  And that has all the issues that everyone's aware of with that, right? And so we believe that as a commercialized product, we have something pretty unique to go after these markets and it's been exciting to see it even push us. One of the things I think we surprised people with today was making FlashBlade 5x bigger. We announced it last year, people thought it was pretty big and fast to begin with, but it was these use cases and the early adopters that pushed us to make it larger. We saw people in the early adopter phase of FlashBlade buy in and deploy at much bigger scale than we were expecting. We were kind of used to our experience with FlashArray where people started small, they got to use the technology, then they kind of grew. But I guess you don't do big data on a small scale. So people dive in. So I want to ask you about this whole big data. This is probably the first time we've even used that term today. It's amazing how fast that came and went, even though big data is now mainstream. But in you said, you made the point, Matt, that not a lot of storage competitors are going after that. Well, you think big data storage, they would fit, but I think a lot of the competitors realize, well, there's not a lot of money to be made there. And now it's just hitting its best stride. Here's my question. If you look at Hortonworks in Cloudera in particular, you're starting to see the cloud guys, Amazon with its data pipeline, certainly Google and Microsoft, are picking up a lot of action in the cloud with a full as a service sort of data pipeline. What do you see, and it's affecting some of the on-prem activity. What are you seeing with regard to cloud versus on-prem and how does that affect your business? Yeah, I think you're right in the sense that if you looked at how you could have deployed big data technologies before, I think there were basically two ways to do it. People did it in the cloud, or they did it on-prem with white boxed as, and they've got servers and put disks inside. So much of the first generation of big data was basically driven on Hadoop, which was fairly low cost and fairly focused at streaming workloads where you had this kind of frankly not much performance profile or need for performance on disk. And so what we've found in the early days was, hey, if you tried to put flash underneath it, it didn't help that much. But the thing that's changing now is people want to move away from those kind of slow batch queries to much more interactive analysis, much more real-time. And so Hadoop's giving way to Spark, and so that's changed that discussion quite a bit. Back to the discussion though around kind of on-prem versus the cloud. I think this is an area where as people get more and more invested in their data, they're understanding it's a key control point. And so if I get all my data into one cloud provider, it's pretty hard to get it out of there. This is core to my business. Do I want that level of lock-in? Also, can I do better with my own dedicated solutions? And what we've found is that when we can bring Flash paid to bear, these big data workloads, we can outperform what people do in the cloud handedly at a lower cost. And so there's a proclivity to want to kind of own your own destiny, to own your own infrastructure, and the ability for us to deliver higher performance at a lower cost in the cloud, we think it's a pretty good connection. And of course complexity is hurt, that is a hurt. I mean the market's growing very nicely, but it's actually hurt a lot of the practitioner's ability to absorb technology. I suppose pure and it's insane focus on simplicity helps a little bit. But as the spark, that sort of simplified the whole Hadoop thing, but you've still got, you need a lot of smart people to make this stuff work. So it's going to be interesting to see, but what I'm hearing from you is you don't have a lot of storage competitors going hard after this, right? And so the guys that have done really well with Hadoop that have on-prem infrastructure, you would think would be picking this up quite rapidly. Yeah, well and look, we're having discussions with all of the Hadoop providers as well, because if we can help them deliver a higher customer satisfaction and a better outcome, it's upside for them as well. They don't want to be storage companies. Well, they need help. I mean, the irony is that cloud era's in the cloud era and the cloud is eating away at its base. So they need somebody who's going to help them simplify in their software company, help us simplify the on-prem infrastructure. One other thing you said earlier that I think it's been an interesting learning for us in FlashBlade as well. I mean, when we kind of went into the FlashBlade experience, we kind of expected that people would buy and all they would care about is performance. And so we asked ourselves, well, how much does this user base really care about simplicity? We found the total opposite to be true. Most of who we're selling FlashBlade to are not IT folk. They're data scientists, they're engineers, they're creatives, they're a line of business people and they want nothing to do with managing infrastructure. And so the simplicity oftentimes we're replacing what would have been racks and racks of disks that they didn't want to deal with it to begin with. And so the simplicity value prop, shockingly, is actually more important we were finding for FlashBlade even than FlashArray. Next slide, we have it saying in the cube that data is the new development kit, because it's like you say, it's data engineers, it's data scientists, even application developers starting with the data. And so complexity has choked that whole industry. So that's excellent. Okay. I was going to ask, one of the things you were saying very clearly here is that the drive of getting data up to the cloud to do this AI or up to anywhere to do the processing to create the models is going to have to be ameliorated by reduction of that data, by reduction I mean turning that data into information or tags or whatever it is as it's going up the line very close to where the data is actually produced. I caught the needles in the haystack. Yeah, extract the needles very early on. So can you talk a little bit more about what your vision is there? How are you going to do that? Who you're partnering with to do that? Yeah, so I think you hit on a very important problem. And I think everybody is starting to finally internalize how much faster devices and machines can generate data than humans. So we're used to this kind of human era of cognition of data creation, but this asymptote is happening. And I think it's becoming quite obvious that basically machines have the potential to generate data much faster than it can be stored, used, and especially sent back to the cloud. And so you need some level of local processing to analyze it, to send back more kind of pertinent metadata. The other challenge is that many of the use cases that people want to use at the edge are latency sensitive.  My favorite anecdote that kind of proves this is some of Amazon's infrastructure where they build out dedicated data centers within their distribution facilities because they need to be able to kind of real time analyze the video feeds of everything that's going on and make decisions, right? And so if they can't send all the data to their cloud, they have to build their own data center. Nobody can. So it's just indicative of a broader to the listener, right? You'll see a demo that we're going to be doing tomorrow where we're doing a great coprocessing app where we're kind of collecting a bunch of data here at the show analyzing it and then sending part of it up to the cloud and partnering with Google to analyze it there and showcasing kind of an example use case of this. And so we think it's an area that's going to be important. You know, part of that also brings us to what we've done with our purity run. So one of the things we announced today was opening up our purity platform to third party code to developers. And we see a number of use cases for this. Many of our cloud customers have asked for this where they want to kind of tie the storage more directly into their application. But the other use case we see is the edge where if we can deploy a local pure device on your oil rig, in your plane, in your factory, whatever and have that processing capability happen there and then have that summarize the data to be able to send it back. It provides more of an all in one solution for that. And so we don't have dedicated products in this space yet but this is our way of opening up the platform to be able to see how people develop on it and how they can start taking advantage of that. Okay, so we got a wrap but you were telling us you were employee number six. So that's quite a ride. I mean, so many companies just don't get to reach escape velocity to use that term. You guys did, what's next for you? Where do you want to take this thing? Yeah, I think we're all extraordinarily excited here at Pure. I mean, so much of this first generation of Pure's growth has been reshaping the existing storage environment and we feel like we're kind of through that mission. Yes, okay, only 20% or so of vendor by storage is flash but the writing is on the wall, we're delivering the products, that is momentum now, right? And so so much of our next generation of innovation is going after these new data-driven use cases, helping cloud providers, just going after what's next and that opens up a much broader definition of what you can be as a data company. We kind of stopped referring to ourselves as a storage company and we might have to get storage out of the name at some point but going after the broader problems around data is a much more exciting mission that we think powers the next decade, so lots to do. Great, all right, Kix, thanks very much for coming to theCUBE. It was great to have you. Appreciate it. All right, keep it right there, everybody. We'll be back to wrap up right after this short break. This is theCUBE, we're live from Pure Accelerate 2017. Right back.


Hi my name is Katrina Law and I'm here today to say how grateful I am to OE Global for awarding me the People in Open Leadership Award. I was genuinely stunned to hear my name at the award ceremony so thank you. This appreciation by OE Global isn't really for me but for recognizing the quiet commitment of the Open Learned team and my wonderful job share partner Jane Roberts at the Open University who have supported me and my predecessors to develop the platform and its content in support of the Open University social mission. Our work in collaboration with colleagues in the four nations of the UK has met the open and has survived through leaner times and continues to deliver engaging and topical content for those who need it most. OER in all its form supports the access to all lifelong learning agenda by providing continuous learning opportunities for work and skills development. It supports social inclusion, personal fulfillment and health and well-being and it is hard to imagine a world without it. Within a broad catalogue of OER providers, Open Learn is unique in a few ways and I think it's worth teasing out why because I feel strongly that it should and could be a model for more institutions to adopt. Firstly a small proportion of the Open University's content is delivered as OER. This was the fundamental basis of its existence when it was initially funded by the William and Flora Hewlett Foundation in 2006. Despite initial detractors saying that we were giving away our crown jewels, it is an approach that has served us well and has become embedded in university culture. Secondly, Open Learn doesn't just host hundreds of course materials, it is home to educational activities, videos and articles, our so-called short form content all designed not only to be educational but attention-grabbing, topical and in many cases fun. Content that can also easily port to social media, thereby increasing reach. You create a course, you separate it into its parts and these go on to have their own life. Thirdly, in 2015 we introduced free certificates and digital badges. Our digitally badged courses are robustly assessed and provide meaningful recognition for a learner's achievements. In 2023, earlier this year, we issued our quarter of a millionth open digital badge and our millionth free certificate. I could talk all day about the research that has underpinned the commissioning, pedagogical and technical innovation that has brought the platform to where it is today, the research which I have loved. But in short, it has provided a window onto the world of non-formal learners globally and in their millions, their motivations and desires which over the years has consistently shown that OER does change lives, has real meaning and remains in demand by those that need it most. From displaced peoples taking their digital learning achievements across borders to parents helping children with their maths homework, from educators adjusting to online teaching to non-formal learners having the eureka moment that they can move into formal study in a subject that they love. In the early days of OER adoption, frameworks were published to plenty as to its perceived and hoped for benefits and benefactors. Projects large and small worldwide continued to contribute to the canon of work describing its use and adaptation. And whilst we have settled into a world where OER is broadly accepted and expected to exist, albeit mostly in English, some of the challenges of delivery have bubbled up now that the grants have dried up, notably around sustainability. How to host, where to host, how to stay up to date and at what cost. Unless you are part of the mighty and admirable not-for-profit such as Sailor Academy, University of the People and OERU, who rely on others OER and a great deal of goodwill to exist, funding the development, hosting and updating of OER for smaller players can be problematic. Luckily for me and for OpenLearn, the equation is simple. A proportion of all non-formal learners will go on to make a formal inquiry for university study at the Open University, which in turn, sustains this activity. Today, the business of for-profit, short-course microcontinental production is well established, particularly with higher education institutions post-pandemic, having fine-tuned their virtual learning environments with many established universities offering their own public-facing paid-for offering. The stage is more than set therefore for such educational providers to launch their own foray into OERU, with the same business model as OpenLearn, a self-sustaining production of quality educational content. That at least would be my hope for the future, that OERU with its beloved creative commons is seen not only as the output of characterately funded projects, but as a moral duty, a conscience-driven activity for educational institutions, a mandate for wealthy countries in support of the UN's Sustainable Development Goals, one that is fair and updated and that provides digital, verifiable, meaningful, yet free digital credentials for all, serving regional communities with much needed skills and, well, anyone who wants to find it. Moreover, I am sometimes sometimes felt that the OERU world has missed a trick in not coming together more coherently with digital credentials standards and the frameworks that underpin them. Your achievements gained via anyone's OERU should be part of your future educational digital credentials wallet. I should probably blame myself for not pushing this agenda hard enough, but then families and pandemics have a habit of eating up your spare time. That said, I think they will, and perhaps this is something that the mighty OE global can push forward within the future. In January 2024, I will be leaving the Open University. However, when I won this award, I was asked to say something about what I will be working on next. There are several activities I've set in motion for OpenLearn that await either philanthropic funding or underway in which I will be sad to leave. One of these is the development of an OpenLearn app. The ability for learners wherever they are in the world, forced migrants, those in secure environments, those who are data poor, to study OpenLearn OER offline in their own language and to upload and gain their tracked, verified and assessed digital credentials when they are able to. Secondly, the integration with the RSA Cities of Learning program in the UK. This will allow OpenLearn badges courses to be part of skills pathways recognized with digital badges so that learners can take real meaning from non-accredited learning and hopefully gain new job opportunities within their city or region using valid credentials that are not degree shaped. I'm sure that the OpenLearn team will keep these projects alive as the platform continues to grow and that my successor is as enthused about the essential function that OE global has as I am. OER plays a now necessary role in lifelong learning as social infrastructure. It is a key component of all society's overall well-being and progress and we must vigorously continue to support its existence as sustainably as possible. Finally it leads me to thank OE Global again for generously acknowledging my work with OpenLearn over the years and thank you OE Global for being there.


Hi, this is Jessica Hagman with the Ohio University Libraries. To know that you can renew your books right from the library website, this video shows you how. Starting from the library homepage, scroll over the My Accounts link, and then click on the link for My Library Account. On this page, you will log in with your Ohio ID and password, which is the same login and password that you would use for Blackboard or My Ohio. Click Submit. Once you've logged into your account, click on the link that says the number of items you have checked out. For me, it's 14. And then scroll down to see the list of items that you have checked out to you. It can be helpful to sort by due date, so you can see which items are due soon. And I can see that this first one, the Bay of Foxes, is due on August 21st. So to renew it, I will check the box, and then click on Renew Marked. If you wanted to renew all of your items at once, you could also do Renew All. Click Renew Marked, and then confirm that I would like to renew this item by clicking Yes. And now if I scroll down, I will see that this item is now due on December 29th, and it tells me that it's been renewed. If for some reason your item can't be renewed, you will also see that status listed here. If you have any questions about renewing your items, remember that you can always go back to the library's homepage. Click on the Ask Us link to open a chat with a librarian, or click on the Need Help link to see other ways to get in touch with us. I hope you found this video helpful. If you have any questions about renewing your books or any other information, let us know.