Download Stock Rom onda vi10
DOWNLOAD FILE via Mediafire HERE
DOWNLOAD FILE via Googledrive HERE
>> [music playing] david malan: all right. this is cs50. [music playing tritonal, cash cash, "untouchable"] [music playing] speaker 1: i'm going tofrance, and you're going, too. david malan: this is cs50,harvard university's introduction to the intellectualenterprises of computer science and the arts of program-- andfor the first time in history,
yale university's as well. indeed, whether you're here in cambridgeor in new haven or miami or st. louis or amsterdam or anywherearound the world taking cs50, computerscience e50, cs50x, cs50 ap, we are all one and the same. welcome to cs50. >> what we have-- >> [applause] >> [laughs]
>> so i made a mistake myself sometime ago when i started off college. and i got to college, and i decided tofrankly, stick within my comfort zone. i ended up declaring a concentration,or a major, of government. ant that was mostly a function of mebeing pretty familiar with government or at least history or i really likedconstitutional law in high school. and so when i got here, i kindof gravitated toward things with which i was already familiar. right? god forbid i do poorly in the class.
i certainly wanted to staywithin my comfort zone, and it wasn't untilsophomore year that i finally got up the nerve to step footin a classroom called cs50. and at that point, did i finally realizethat, my god, homework could actually be fun. >> indeed, i was one of those kidsthat on friday evenings when the p-sets would be released, iwould go back to my room and dive into the night's p-sets. and for me, that was a signthat this was a field for me.
but what was more important was thefact that i did get up this nerve to explore waters unfamiliar to meand get beyond my own comfort zone and frankly, i only was able to do thatsophomore year by taking this class pass/fail. >> indeed, it was the very last day thati finally switched over and finally declared cs as my concentration,putting gov at that point behind me. and so we're not setting out inthis course to turn all of you into cs majors or concentrators, butrather to give you an opportunity to hopefully go beyond the worldwith which you're currently familiar
and bring back from this worldskills and knowledge and savvy that you can apply to yourown world, whether that's in the humanities, social sciences,natural sciences, or beyond. >> indeed, if you'refeeling a little intrepid about being in this roomlet alone in this class, realize that if history isany indication, 72% of you have never taken a cs course before. so it is by all means not the casethat the student sitting to the left or to the right or in front orbehind you knows far more about cs
or programming in particular than you. that's not in fact the case. and indeed, much ofthe support structure that we've set up in thiscourse over the past many years has been for exactly that reason-- toprovide an on ramp that still exits just as rigorously andjust as high as ever-- but the slope of which allow studentsless comfortable and more comfortable alike to succeed irrespectiveof his or her prior background. >> indeed, what ultimatelymatters in this class is not
so much where you end uprelative to your classmates but where you in week 12end up relative to yourself in week zero, which iswhere we are here today. >> indeed and this may very welland probably does look like greek to many of you. but rest assured, thatthis and so much more is going to be completely within yourgrasp in just a little bit of time. >> but today, we focus on someof the higher level ideas to give you a taste ofcs50 and computer science
in a sense of whatyou're signing up for. and indeed, computer sciencemight be distilled more simply as computational thinking--thinking like a computer, if you will. and there's so many different thingsingredients that go into that, but let's propose just three for today. if the goal of the class ultimatelyis not to teach you programming, is not to teach you c or php orsql or any number of the words and acronyms in thecourse's description, but rather to teach you tosolve problems more effectively
and to think more methodically andmore algorithmically, so to speak. let's see what exactly this means. >> so i would propose that thinkingcomputationally boils down to solving problems. what do you need to solve a problem? you need to input-- likethe input to the problem-- you need an output, whichis hopefully the solution, and then you need a process bywhich to solve that problem, which we'll call an algorithm-- a set ofinstructions for solving some problem.
>> but first, let's focus on the first andthe last of these inputs and outputs. computers after all, apparentlyonly understands zeros and ones. but how can that possibly be? even if you're not familiar at allwith what's underneath the hood, you probably at least heard thatcomputers understand binary-- just zeros and ones-- but how canyou possibly do anything interesting? >> well, one of the themesof the class is going to be this layering-- where today, we'lltake a quick glance at the lowest level details, but with eachpassing day, where we layer
or abstract on top of those detailsto actually solve higher level problems of interest to us. >> so here is what we might call binary--with just an alphabet of 0 and 1. but we humans are mostlyfamiliar with decimal. dec meaning 10. bi meaning two. and so in the decimalsystem, we have 10 digits at our disposal-- ofcourse, zero through nine. so if you look at a numberlike this, most of you
intuitively just grasp that is 123. there's nothing really hard about that. but why is it 123? well, if you think back tograde school-- or at least the way i learned thiskind of world-- you might recall that we treated thesethings in columns, or places. >> so we have the ones place on the right. the tens place in the middle. the hundreds place on the left.
and then how do we getfrom this pattern symbols-- 1 2 3-- to this higher levelidea that we know as 123? well, it's just some simple arithmetic. >> the one there is essentially meansgive us 100 times 1 plus 10 times 2 plus 1 times 3. and of course if we do out themath there, it's 100 plus 20 plus 3-- otherwise known as 123. >> so if you're on thesame page as that right now and are comfortable with theso-called decimal system as a human,
it's actually well withinyour scope of comfort to consider now the binary system. take a wild guess-- this represents,in the world of computers in binary-- what number? zero. >> but why is that? well, it turns out that the columns orplaces here-- they're not powers of 10. 1, 10, 100, 1,000, and so forth. they're instead, quitesimply, powers of 2.
so, 1, 2, 4, 8, 16, 32, and so on. and so now we of course get to 0here simply because we have 4 times 0 plus 2 times 0 plus 1 times0, which of course gives us 0. >> but how do i go aboutrepresenting the number 1? what's the pattern ofzeros and ones to represent the number we humans know as 1? 001. and 2? 010.
>> and now the pattern starts to repeats. now it's 011. and again, 0 fours, one 2, one 1. so 2 plus 1. that's 3. >> and now to represent 4, wedon't just change that 0 to a 1. you sort of have to carry,so to speak, and the numbers start flipping around justlike in the decimal world. >> so this is 4.
this is 5. this is 6. this is 7. and so we've counted as high as 7. >> now all we just need is more abits-- more zero's and one's. and indeed "bits", if you'veheard this term-- binary digit. bit is where that comes from. and so if we want to representbigger numbers, we need more bits. but let's move away from slides nowto something a little more real.
suppose that we want toactually represent this thing. >> well let's take a look nowat a little demonstration. so this is a web based applicationthat one of cs50's own, michael g, put together this summer to helpus elucidate exactly this idea. and would someone liketo venture up on stage in front of all his or her classmates? right there in front. come on up. >> you have to be comfortableon camera and the internet.
oh, right here. ok. we're ok. all right. what's your name? emily come on up. so this is emily. what year are you? >> freshman.
>> emily, nice to meet you. david. >> all right. so up on the screen here,we have this touch screen which is going to allow us toactually interact with this program, and it's just a browser. it's chrome full screenedat the moment, but it's been programmed by michael torespond in a way that allows us to play around with binary digits.
>> so for instance, here we have notthree but eight bits-- zeros and ones. right now, we'relooking at the number 0. and indeed, all eight zerosin decimal means zero. so that's all that'sbeing hinted at here. >> so if you wanted torepresent the number 8, what's the pattern of zerosand ones that you want? you can simply tap up or downor the numbers themselves. so that of course is 8,as you can see up there. and if we wanted todo 16, what do we do?
>> yep, just touch it again. 16. so this is all fine and good,it's still very low level. we need a way in thereal world for emily of actually representing these things. and so suppose that we turn thesezeros and ones, which is very conceptual, into actual light bulbs. >> a computer is a physical,mechanical, electrical device. and its input-- at least ifyou plug it in or charge it--
is to have battery power andelectrons flowing in and out. >> so now, why don't we stop thinkingabout bits as zeros and ones, but something more physicallike light bulbs here. and if dan armendariz could joinme for just a moment-- come on up-- we're going to queue up an application. >> come on over, emily. sorry this is the mostawkward demo for you ever. come on over here. we're going to queueup with thanks to dan
armendariz, another member of our staff,an application known as binary bulb. >> so what we have hereis an ipad application that has the following userinterface on the screen for emily. it's just got the same exact uiessentially that's over there. and if you now want torepresent the number, say 8, how would you go about doingthis noticing at the right, the light bulbs that we have here? ah-ha. magical.
so if we want to now turn this intosomething a little more challenging, and let's go ahead and pick a randomnumber like the number 50 here. input this. and if you can now be challengedto come up with the number 50, we'll have a fabulous prize for you. >> emily: ok. oh my god. david malan: arithmeticis indeed hard in front of hundreds of your classmates.
but 50 has been the answer here. >> and so now, this is meant tobe demonstrative for emily. so, in here, is some lightbulbs quite like these, but it's actually thelittle magnetic strips. and what's cool about these andthe reason we use them in cs50 is that they support something calledan api-- an application programming interface, which is just a fancy wayof saying that what one of our staff did over the summer was createan ipad application here that talks over the internetto the light bulbs over here,
which are wirelesslyconnected to another device. but this is now an optionfor final projects. and so emily, if you would solike, at the end of the term, you can adorn your dorm roomin the meantime with those. thank you to emily as well. >> but now, let's turnour attention to what that message might have looked like,and it's a little something like this. in fact, this is anexample just as a teaser of what's to come of what'scalled an api request.
and so what we have here is simplyexactly the kinds of message that after a few weekstime in cs50, you'll be able to send to something fairlyfamiliar like that to actually turn them on and off. but this is all fine and good. we have the mental model hopefullyfor representing numbers with zero's and one's. and from zeros and ones, we canget to higher numbers like 50, as emily just did, or wecan move up from that.
and i claim that we can representthings like letters as well. >> computers are far moreinteresting than just numbers. and so how do you goabout representing words on the screen or emailsor essays or the like? well, it turns out that computers simplyabstract on top of these low level details, and humans some time ago, cameup with an arbitrary, but a consistent, mapping of numbers to letters-- sothat any time you see a capital letter a on your computerscreen, odds are what's underneath the hood is apattern of zeros and ones
that represent the number,per this chart, 65. >> and more physicallyinside of your computer, are millions of things calledtransistors-- these days-- which are just switches if you will, thingsthat can go on and off and so imagine. not eight of these large light bulbsbut millions of these tiny little light bulbs, or switches or transistors,that can turn on and off based on how you program them. and so now we have a way ofrepresenting letters as well. >> in fact, if i were to use thismapping here and try to actually
spell something out, we might lookat this pattern of decimal digits right now. so we're not going to evenfocus on binary anymore. let's just consider these asdecimal number 72, 73, 33. but what might this represent? anyone have a sufficientlyphotographic memory to know what's spelledon the screen here? yeah a few. so hi.
h-i and then an exclamation point,which was not actually on the screen. but indeed there's a mappingfor every letter to every number that you might want totype on your keyboard. >> but numbers don't have torepresent just letters. all of us know about imagesand photographs and audio files and video files and the like. so clearly we can representhigher level things still. and so what a computerdoes is simply choose to interpret patterns of zero onesdifferently based on the context.
>> if you double click amicrosoft word icon, you see words on the screeninstead of colors and pictures because word knows that this is anessay that you've actually typed. if you instead double clickon a jpeg or a gif or a png, it opens up and is an image because the.png or the .docx or whatever the file extension is and whatever softwareyou're using knows to interpret a pattern of zeros and ones differentlybased on what its purpose in life is. >> so for instance, thissame sequence of numbers might represent how much red do youwant, how much green do you want,
and how much blue do you want. and indeed, if you've ever heardrgb-- so just red green blue. and so if i see numbers like, thisgive me 72 red, give me 73 green, and 33 blue, this is how acomputer using three bytes-- where a byte is eight bits or 24 bits--would represent a pretty nasty shade of brown or yellow here. and in different contexts, could thoseexact same patterns in zeros and ones mean something completelydifferent as well. >> so we have now a way of representinginformation-- zeros and ones.
on top of that, we get letters. on top of that, we might get colors. and let's assume for todaythat we can get audio and video and things so much moresophisticated than that. >> but now let's considerhow we use those inputs and produce thoseoutputs now that we have a way of representing that information. well, we need somethingcalled an algorithm. again, a set of instructionsfor solving some problem
step by step-- and themore precise, the better. >> and so an example with which humans areadmittedly less familiar these days, but nonetheless is stillwith us in software, is the process of lookingup someone in a phone book. >> now, fewer and fewer folks know eachyear what this relic actually is here. but back in my day,this was a phone book with thousands of pages and numbersand people's names from a through z. and even though we're kind of cheatinga bit-- this is mostly yellow pages. there were also whitepages at the time, which
had all of those names andnumbers of actual human beings. >> and if i wanted to look someone up in aphone book like this today, of course, i just type in the first fewcharacters of his or her name, and my phone finds that information. but the process by whichyour iphone or android phone or whatever is actually findingsomeone in your contacts list is identical to what we humansprobably have done for some time. >> now i could take thisproblem, if you will, and the inputs hereare not zeros and ones.
they're pages-- like,let's say 1,000 pages. and if i wanted to look up someonelike mike smith in this phone book, i could start at the beginningand see that i'm in the a section and then turn one page ata time, looking and looking as i make to the b's and the c's andthe d's and so forth for mike smith. smith starting with an s, i'llhopefully eventually find him. >> is this algorithm--that process-- correct? yeah. it's correct.
i will find mike if he's in here, butwhat's the caveat that you might offer. it's slow. i know mike s is sort of towardthe latter half of the phone book. why the heck am istarting at the beginning and going page by page by page. so of course, i could flip itaround and start from the back, but that's going to getme there at the same rate, if you willl-- pageafter page after page. and it's not going to work if i wantto search for someone else whose
name comes earlier in the alphabet. >> so what if i do what ilearned in grade school, again, do things notby ones but by twos. so 2, 4, 6, 8, 10, 12, and so forth. is that correct? no. it's kind of correct. but some of you who murmured no,where is the problem, or the bug, the mistake so to speak.
>> student: you might skipover the right entry. >> david malan: yeah. i might skip over mike smith isbecause i've taken two pages at once and he just happens to besandwiched between those two pages. i might realize thati'm on to the t section not having found mike smith yet. >> and so what might the fixed there be? well, if i do hit thets in the phone book, i might need to doubleback one or so page.
so it's fixable, butit's not quite as simple as just going by two tospeed up my performance. but what? come on. what is what most humans are goingto do with this kind of phone book? you're given the phone book. what do you do? >> what's that? go to the middle.
so i heard go to the middle, and ifind myself roughly in the m section, so to speak. and now what do i want to do? good job. >> james: james. >> david malan: james, all right. what do i do next? james: you go in thehalf that has the s's. i'm going to go into the half thathas the s's in it because, again,
a stipulation here wasthat this thing is sorted. it's a pretty useless 1,000pages if verizon doesn't actually sort these things for us a through z. so if i know mike is probably inthe latter half of the phone book, i can now. >> tear the problem in half. thank you. tear the problem in half. that was actually real-- that struggle.
so tear the phone bookin half, leaving myself with fundamentally the same problem. but of course, half as large. and if i follow james'sadvice again, and i go here. i say, oh now i'm in the t section. >> and so of course, ican tear the phone book in half one more time, leavingme with a problem that's now a quarter of the size. so i've gone from 1,000 to 500to 250 to 125 and so forth.
it feels like i'mtaking bigger bites out of this problem with eachiteration, or each step in it. >> and indeed, the time i'm going to spendfinding mike smith in this example is so much less because eventually i'mgoing to whittle this pone book down to just one lone page. and if mike is on that page, i'mgoing to go ahead and give him a call having found him. >> but just how much betteris that algorithm-- that dare say intuitivealgorithm-- than the ones we
started with which we're very linear--left to right-- at a pace of 1 or 2x? >> well, let's plot this. we don't have to worry too much aboutmath or numbers in this case here. we just look at a plot. so on the x, or horizontal axis,is the size of the problem-- how many pages are there. on the y, or the verticalaxis, is how much time is it going to take me to solve it. and maybe that's how manypage turns, how many seconds,
how many-- some unit of measures. >> and i've drawn a red straight lineshere because if each additional page of the phone book, i requireto make one additional step. so if verizon adds onemore page next year, i might have to flip one more pageto find someone like mike smith. >> meanwhile, the second algorithm, whichi went by twos, is the same shape. it's still very linear, very left toright, taking equal bytes each time, but the slope is a little lower. >> for instance, if the size ofthe problem were roughly here
and i used my first algorithm,i might end up all the way at the top of that red line. but if i instead useto twosies approach, the yellow line suggestsbecause it's lower, that it's going to takeme less time the solve. >> but what's the shape of thethird algorithm-- again, arguably the most intuitive algorithm? well, it looks a littlesomething like this. it's curved, or logarithmic, in shape.
and even though it neverkind of flattens out, it asymptotically inches up andup and up but terribly slowly versus everything else. and what's the take away? well, we call it log n. but what does that actually mean? well if verizon doubled thenumber of pages in the phone book next year from 1,000 to 2,000. how many more steps is myfirst algorithm going to take?
>> my first algorithm. maybe 1,000 more steps. if they doubled thephone book, i'm going to have to flip through another1,000 pages to find mike. of course, if the secondalgorithm, maybe 500 because i'm going twice as fast. >> but if verizon doubles the numberof pages between this year and next, with my third algorithm-- the divideand conquer that james proposed, going in half and half andhalf-- how many more steps will
it take me next year to havea phone book of a size 2,000? just one. because with one bite, i can take,out of that problem, half of the pages away. and if you think about this a littlecrazily now-- if the phone book doesn't have 1,000 or 2000 page, butlet's say 4 billion pages-- it's a big phone book-- howmany times or how many steps is it going to take me to findmike smith in the phone book with 4 billion pages.
you can sort of start to do the math. 4 billion divided by 2. so that's 2 billion divided by 1. that's 1 billion. then half a billion. then 250-- so you can do this again andagain but not that many times before you get to one page. >> and indeed, even if the phonebook is 4 billion pages long or the database you're searchingis 4 billion records long,
it's going to take you give or take32 steps only to find mike smith. and if you double the phone book nextyear from 4 billion to 8 billion, 33 steps instead of just 32. >> and this is testamentto one of the ideas that we might embrace in computerscience more generally, which is this computational thinkingand approaching a problem frankly using tools fromyour already familiar tool kit-- your real world withwhich you're familiar, but harnessing those ideasto actually solve problems.
>> but we need to formalize oursolutions to these problems. and so let me introduce for a momentsomething we might call pseudocode. much of the semester, we'll spend usingactual code in languages like c and php and javascript and sql and the like. >> but for now, let's just lookat something fairly intuitive like english. i might distill thatalgorithm with which i found mike into steps like this. >> pick up the phone book
>> open to middle of phone book look at the name's if mike is among the name's call mike else if smith is earlier in the book open to the middle ofthe left half of the book else go to line 3 else if smith is later in the book open to the middle of theright half of the book
go to line three else give up and there's a few characteristics nowof this that are worth pointing out. so one, all the linesi've highlighted in yellow we're going to start callingstatements or functions or procedures. they're just actions dothis, and there's not all that much variability to it. >> next step here though, are theseconditions-- if, else, else if, else.
and these are called conditions, orbranches, and they're decision points. and they allow us to dosomething conditionally. >> and in fact, let's take a quicklook at perhaps a familiar face-- we'll call him bill-- andexactly what these conditions, how these might be used. >> bill gates: people makedecisions every day. for example, before you go outside youkind of have an if statement that says, if it's raining, then ineed to get my jacket. >> and computers are amazing once youdecide those kinds of statements
that they can reliably executethose things at unbelievable speed. and so a computer program reallyis a little bit of math and some if statements wherethe decision gets made. >> david malan: so now let's focuson a few different lines-- the ones i've highlightedin yellow here. and it turns out there's differentways of expressing this idea. but intuitively what our lines 8 and 11that i've highlighted here telling you to do? yes, go to line 3, but whatbehavior is that really inducing?
it's some kind of loop or cycle,and you can kind of see it. if on line 8, you go back to line3, and then you hit line 8 again, you might go back to line 3,back to line 3, back to line 3. there's this sort of cycle or loop. and indeed, that's induced inline 11 potentially as well. and this is a basicprogramming construct as well. >> you might not want to justdo something with a statement or do something conditionallywith a condition or branch. you might want to do somethingcyclically with a loop.
and we'll have someone else with whomyou might be familiar-- we'll call him mark-- explain this concept here. mark zuckerberg: onething that computers are really good at is repeating commands. as a person, you'd getreally bored if you had to do the same thinglots of times in a row, but a computer can do the same thingmillions or even billions of times and not get bored and be ableto carry that out really well. >> so for example, if iwant to wish everyone
on facebook a happy birthdayby sending them an email, it might take me more than acentury to actually write out all of those emails to everyone. but with just a few lines of code, i canhave a system send an email to everyone on facebook wishingthem a happy birthday. >> so that's what loops are and whythey're valuable and something that computers can do very well. >> david malan: many thanks to our friendsat code.org for those two films. and just last week, you might haveseen that mark zuckerberg and facebook
posted this announcement,which is that they just have passed an importantmilestone for the first time ever. 1 billion people used facebook in asingle day, specifically last monday. one in seven humans on earthapparently logged into facebook. >> well, this seems a good opportunityto look back on where facebook began, and we went through cs50's ownarchives because it turns out in 2005, mark gave a guest lecture in cs50. you'll see that production valuesweren't quite the same back then in terms of the technologyavailable, and you'll also
see that the presenceof this guest lecture didn't necessarily pique the interestof the student body, your predecessors, as much as it might havejust a few years later. >> so let's take a lookat science center c. speaker 2: please join me, and welcome. [applause] mark zuckerberg: yo. cool this is the first time i've everhave had to hold one of these things. so i'm just going toattach it really quickly.
can you hear it? is this good? is this amplified at all? sweet. so, this is like one of the first timesi've been to a lecture at harvard, but-- >> david malan: so eventually the sciencecenter did zoom in on the video, but not before capturing thisexcerpt where mark's talking, which he discussed hisroommate, dustin, who
wanted to lend a hand with thissite called the facebook.com and realized that mark is about tomention to programming languages-- one called perl, onecalled php-- as he discusses the origins of dustin's contribution. mark zuckerberg: istarted running the site and launched it atharvard in february, 2004. so i guess almost two years ago now. and within a couple of weeks, afew thousand people had signed up, and we started getting some emailsfrom people at other colleges asking
for us to launch it at their schools. >> and i was taking 161 at the time. so i don't know if you guys knowthe reputation of that course, but it was kind of heavy. it was a really fun course, butit didn't leave me with much time to do anything else with facebook. so my roommate dustin, who i guesshad just finished cs50, was like, hey. i want to help out. i want to do the expansion and helpyou figure out how to do the stuff.
>> so i was like, that's pretty cool, dude. but you don't really know anyphp or anything like that. so that weekend he went home,bought the book perl for dummies, came back and was like, all right. i'm ready to go. >> i was like, dude, the site's writtenin php not perl, but that's cool. >> so he picked up php overlike a few days because i promise that if you havea good background in c, php is a very simple thing to pick up.
and he just kind of went to work. >> before we take a look now atwhere the course is going, allow me to invite just someof sc50's staff up on to stage. some of them are shoppingtheir own courses. but if those tfs and cas and courseheads who are here could come on up and join me for a quick hello. >> allow me to introduce in particular,hanna, maria, daven, and rob, cs50's course heads here in cambridge. >> david malan: indeed, testament to thesupport structure that the course has
built out over the past many years,cs50 staff this year numbers nearly 100, and that's here in cambridge alone. meanwhile, in new haven, are there some40 tfs and cas and staff members there to run the course as well. >> allow us to introduce first, rob bowden. rob bowden: hi. i'm rob. this is my sixth yeartfing in the course. so, all the way back in myfreshman year, i did not take cs50.
your freshman fall--you might be familiar that you can only take four coursesand there are so many courses today. so i'm like, eh. i took ap cs my senior year ofhigh school it was horrible. so, i'm like, eh. computer science is not for me. >> so then it was over thecourse of my freshman fall, that i had a friend in cs50, andi think i attended one lecture with her. it's like, oh, this is kind of betterthan what i had in high school.
>> and over the course of theyear, i had my own problem sets in the courses i was actually taking. but i found that whenever iwanted to procrastinate on those, i would go back to cs50 andlook at some of that stuff. so, yeah. i'm cool. i procrastination with coding. so then it's at the end ofthe fall that i realize, hey, computer science is pretty cool.
i end up taking cs51. in the next semester,i end up taking cs61. and it all from there,then i end up declaring computer science, which i hadabsolutely no intention of doing when i came into college. and now i'm here. so the course is what you make of it. i hope you enjoy it. david malan: thank you to rob.
>> and now maria, ourhead course assistant. >> maria: hey guys. my name is maria. i'm a sophomore in cabothouse, coming from bulgaria, and i'm super excited to bepart of the staff this year. i took cs50 as a freshmanlast year, and i never even thought about cs beforehand. so i absolutely love the course, and ihope you all love it as much as i did. and, yeah.
david malan: thank you to maria. now hanna, our head teaching fellow. hanna: hi, i'm hanna. i'm a senior in cabotstudying computer science. i took cs50 as a freshman and hadbeen tfing-- this'll be my third year. so i will be happily involvedin cs50 for all four years, and i'm looking forwardto working with you all. david malan: thank you to hanna. and lastly, daven, our precepter.
daven: hey guys. i'm a precept over incomputer science here. this'll be my fourth year teaching. i also help manage the course. so i'm sure you'll see me around,especially at office hours. i'm always at office hours. so if you see me walkingaround, definitely come say hi. i love to meet everybody. otherwise, have fun,and i'll see you around.
>> david malan: thank you to daven as well. so you'll meet all ofthese folks before long. but without furtherado, if you guys would like to resume your seats from earlier. allow me to introduce from afar nowsome of our friends from new haven, in particular the course's heads who'llbe overseeing cs50 there-- professor brian scassellati, jason, and andi,who just-- so that we didn't tempt fate with any facetime or the like--have just sent us minutes ago the following video in whichthey say hello from lecture hall
at yale, in which lectureis being streamed right now. >> so our friends from yale. brian scassellati: hi, david. hi, everyone at harvard. we are so excited to be bringingcs50 to yale this semester. my name is brian scassellati,but everyone just calls me scas. and i'm here today to introduceto you the cs50 staff. >> [cheering] >> and more importantly, i'mhere to introduce as well
all of the students atyale who as of this morning have made this the most popularcourse at yale the cs50 students. >> so we're very excitedto be seeing you here on friday and on saturday forpuzzle day and have a great lecture. bye. >> david malan: on the screen here isthe names of the some of 140 staff members who await you over thecourse of the semester-- some of them here in cambridge, someof them here in new haven. and indeed you'll have anopportunity this saturday,
as scas notes, toattend cs50 puzzle day. you might have seen little puzzle piecesslipped under your doorways recently. we have a few extras herelater on when you exist. if you assemble all four puzzlepieces and merge forces with rooms nearby yours in yourhouse or dorm, they'll assemble into a qr code-- or atwo dimensional bar code, that once assembled and scannedwith your phone will lead you to some fabulous prize or-- i supposeyou could just photograph this now as well.
>> but find those puzzle pieces nonethelessin order to win that fabulous prize. and indeed one of the traditionsin sc50-- ah, too slow. one of the traditions in cs50 is toserve cake after the first lecture. >> and so indeed, in afew minutes from now, there will be cake served outsideboth here and new haven as well. >> but first-- we decorated them ourselves. but first-- and hopefullythere'll be enough. >> but first, a quick look. so lectures is indeed will beproduced mostly here in cambridge.
but each month, we'll hop down to yalewith cs50's production team and stream the course in the reversedirection as well so as to bring these two campusestruly for the first time in history as close together as possibleas one in the same course. >> in terms of the support structure that'sbeen stood up here in cambridge as well as in new haven, are sections. indeed, as some of you mayknow, we have different tracks within the course for those lesscomfortable, more comfortable, and somewhere in between so thatirrespective of your prior background,
can you ultimately succeed in the class. >> office hours meanwhile, are anopportunity on mondays and tuesdays and thursday evenings to work bothhere and in new haven on our course's problem sets with dozens ofthe course's staff near you. >> problem sets meanwhile, aresupported by things we call walkthroughs, which are video basedtutorials that truly answering faq of where to begin a week's challenge. and postmortems walk youthrough possible solutions so that the end of theproblem set too, you
know exactly what you could have donedifferently or altogether otherwise. >> the problem sets themselves comein two editions, a standard edition that we expect and invite most ofthe class-- some 90% plus to do-- and a so-called hacker editionon which every page is emblazoned hacker edition, hackeredition, hacker edition, so that you have that karmaif you will, for diving into more advanced versionsof the course's problem sets that cover ostensibly the same materialbut with a more sophisticated approach and with additional backgroundsometimes introduced.
>> meanwhile, are there nine late days thatyou can apply to the course's problem sets as well as the lowest score,which we drop at the terms end. >> but what awaits? well, a taste of the problemsets at hand on friday and next week where we dabblefor just a few days in something called scratch, a graphical programminglanguage developed by our friends at mit's media lab that allows youto program either for the first time or in a new environment altogetherusing a drag and drop type environment. whereby puzzle piecesonly interlock together
if it makes logical sense to do so. >> meanwhile in problem settwo last year for instance, did we introduce the classto the world of cryptography, the art of encrypting orscrambling information. indeed, this text here ifdecrypted, will actually lead you to some fun destination. and in the problem set,what we had students do is implement exactly thosekinds of things-- an algorithm, or set of instructions for scramblingand scrambling information.
>> and in the hacker editionof that same problem set, did we challenge students to take aencrypted file from a typical computer system with lots of usernamesand encrypted passwords and to crack those passwords--actually figure out what they were without knowing anythinga priori about those actual passwords. meanwhile, do wetransition in the problem sets to then looking atthe world of graphics. and in fact, you might imaginenow that this could perhaps be the simplest way to representa black and white image.
>> a white pixel, or square,as at top right there, might be represented witha 1 and a black square might be represented with a 0. and just by using more bits like weproposed earlier with 72 and 73 and 33, could we represent color pixels as well. and what we do duringthis problem set is generally take a stroll aroundcampus with a digital camera, take photographs ofpeople, places, and things. then somehow every semester,we seem to accidentally
deleted or corrupt the memory cardon which all of those photos are, and so you are challengedto then write software with which to recover those jpegsfrom a copy of our camera's card. >> meanwhile, do we hand you later inthe term a dictionary of english words that have 143,000 words,and you need to come up with a smart way ofloading them into memory, or ram so to speak, to answerqueries of the form: is this a word, is this a word, implementing thefastest spell checker that you can, even pinning yourselfpotentially against classmates
to see which of you usesthe least amount of time when running your code and eventhe least amount of memory. >> later in term do you actuallyimplement your own web server. so not just a website in alanguage called html and more, but a web server that actuallylistens to requests on the internet and responds to them. and indeed, this is how we bridgeour world of c with which you'll become familiar next week andphp and html and javascript and css and the like.
>> because one of the first web basedproject we do later in the term is historically cs50 finance. etrade.com style a website that allowsyou to buy and sell stocks virtually while also writing code to talk to yahoofinance getting semi real time stock quotes in order to updateyour own portfolio. >> but lastly of course,is the final project-- an opportunity to do most anything ofinterest to you to solve a problem here or beyond of interest toyou that's somehow inspired by the lessons learned in the class.
>> and the class, as you may know,culminates in so-called cs50 hackathon and cs50 fair and any numberof other cultural events throughout the semesterthat allow you to engage with each other and the course's staff. >> for instance, at fire and ice in sitarthis year, well, on friday afternoons, we invite some 50students to lunch, whoever would like to join us,myself, and the staff, and our friends from industry and alumsto chat about life in the real world and beyond while enjoying a good lunch.
at the hackathon willyou see such images as these, including plenty of candy--and as of 2014 for the first time-- vegetables. >> but by 5:00 am, does the scene usuallylook a little something like this. and then just a week orso later, is the cs50 fair to which some 2000 plusstudents and staff and faculty members from across campusand across campuses this year come to see and delight in theaccomplishments of cs50 students, which is now you.
>> and indeed, while this year we'llbe inviting and busing anyone at at yale who would like to come up tocambridge this saturday for cs50 puzzle day, and we'll do the exact same thingin december for the cs50 hackathon so that harvard and yale studentsalike partake in both of these events. >> we will also hold cs50 fairs incambridge and in new haven this year so that students on bothcampuses and staff and faculty can see each respectivecampus's accomplishment. and those accomplishmentswill induce such memory as this and this and ultimatelythis, in which all of you
exit the class wearing a littlesomething in which you were hopefully happy or proud to say that i took cs50. >> but before that andbefore we serve cake, we've put together-- thanks to cs50'sproduction team and a certain self stick, the one occasion that we usesuch things for-- when we sent it not only here to cambridgebut also to new haven to gather a few hellos from thecourse's staff and all of the folks you will meet both here and in newhaven over the following months. >> allow me to introduce afew more of cs50's staff.
mark zuckerberg: did that make it go? oh, it's going. it's going. ooh. yarr! >> [music playing andy grammer, "honey, i'm good"] >> mary: this is caitlin. that's jay, and i'm mary. sato: hi, guys.
i'm sato. michael g.: hi. my name is michael, g. doug lloyd: i'm not. i'm doug lloyd. i can't believe that i'm holdinga selfie stick right now. speaker 4: hi. speaker 5: hi. speaker 6: hello.
speaker 7: hi. speaker 8: hey. we're hanging out at yale. we're really excited forthis semester because it's the first time it's coming to yale. it's going to be awesome! >> jacob scherba: my name is jacob scherba. i'm excited to teachcs50 because i think it bring computer science topeople in and approachable way.
speaker 9: i'm reallyexcited to teach cs50 because i took the class last year,and it's one of the best classes. speaker 10: yeah. my advice is you should take cs50. jacob scherba: i chose cs becausei think it's a fun and creative way to solve problems in an analytical way. speaker 11: back when i was a littlefreshman and afraid of computer science and afraid of doingengineering and stuff, it was the first hard class i took,and it was also my favorite class ever.
doug lloyd: this is myninth year teaching cs50. that makes me sound so old! there's always something new. there's always something exciting. there's always new challenges faced bynew students, and it's fun to help them and to experience thosechallenges with them and help them solve their problems. >> speaker 12: when i firstlearned how to do cs, it was like learning a super power.
and to see that in other studentsand to help them through that process is one of the mostrewarding things i've ever. >> speaker 7: i chose cs because in thebeginning, i was a math concentrator and i took cs50 andfell in love with it. i also felt that withcs, i could build things. and that, i thought, wasa really cool aspect. >> speaker 13: some advice for newstudents is go to office hours and hang out with the awesome tfs. speaker 14: start your p-setsearly, go to office hours,
become frends with your tf. speaker 15: yeah. everything she said. speaker 16: don't beafraid to ask for help. speaker 17: yeah. speaker 18: start your p-sets early. speaker 19: it's abig social experience. make a lot of friends this way. speaker 14: go to section it's fun.
speaker 11: i mean, go for it. it's really hard. you'll get out of itwhat you put into it, but it's a really funclass especially if you're willing to put the time into it, butit helps if you put time into it. you'll get a lot moreout of it later on. mike: i'm mike. camille: i'm camille. hanya: i'm hanya.
matt: i'm matt. peter: i am peter. phillip: i'm phillip. patrick: i'm patrick. rob bowden: i'm rob bowden. brian scassellati: myname is scas, and this-- all: --is cs50. speaker 20: at yale. speaker 21: at yale.
[laughing] david malan: that's it for cs50. we will see you from yale onfriday, puzzle day on saturday. cake is now served.
No comments: