Bestand wählen
Merken

Growing Up Software Development

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
to that was and
and the and the the on well on our next speaker is so much spam he's C always CTO at active group co-organizer of Daniel book conference develop the conference an expert and functional programming he asks about 20 years of experience in teaching programming in high schools universities and other contexts in his talk MyClass share his experiences and gives us an idea on how changes and culture methods and tools and programming might contribute to the future of software and software of future space enjoyed to talking about Mikey to two-stage sources been let's
thank all did she say 20 years I'm older than that so I appreciate you staying up this late hour so all drawn up now also talk about growing up of sigh graduated at some point in got a degree in computer science at page PhD many years ago and non CEO of a software company that carries some actual responsibility but as I was preparing this talk I thought back to the past and it
happened the year 1983 when i started hacking and of I wasn't there but it must have been a year of 1 C 3 right and and so if you read what was written about the computing revolution that was to come in the early 19 eighties a lot of what we're having arguments about today was already there computer security Data Governance surveillance all these things were already on the radar of the media back then but a couple things were different also so of user major German news magazine that had an article on computers and children's rooms on and not everybody had a computer back that so if you were a kid like me who was interested in learning about computers and didn't have 1 at home there was a place you could go to which was the local department store and all the pictures in very clear but that's actually a local department store that had rows and rows of home computers set up of and and plug in and radio go for children that allowed to play with and so back then there were few you all remember this but there were many different kinds of home computers there was no internet there was very little in the way of readily available literature on a program computers so we all had a figure it out by TREC by trial and error and we didn't really have a good methodology of how to program computers I'm not fast forward a
couple years I looked unbelievably geeky in 1986 by 0 I had my own computer and that must have been in the 2nd 3rd 1 so what did I had some and you know by
the time I was an exchange student in the in the in the United States and the president of the Computer Club occupancy another picture me right there the and that was my 1st experience of teaching a formal course so that was in 19 88 and that was the end of that year so that means I taught my
1st computer science course 30 years ago and and I then end out of designing the intro programming course at the University of Chilean and top over more than 10 years of my talk come I talk programming to humanities majors I've done a lot of professional training by now an end well if you're servant compulsive educator like I and everybody around you suffers rate your co-workers your friends my children certainly my relatives of a lot of them have had to
endure notes 1 1 or other kinds of programming of course from the the so that and as we were trying to figure out how to had computers but you know as it wasn't as it was very little available literature we also looked for role models and here's an early role models from the eighties a man named John Draper better known as Captain Crunch because he use the whistle that he found in a cereal box to manipulate the from system in the national and to present for it and so what John Draper also is not is not as well known for actually writing software produced 1 of the early work processes that was available on personal computers called Easy EasyWriter that I actually used on and and the were reports on the on the prolific programming style that the Draper practice so I have you can read this the joke is of Draper were writing math routines for additionally came up with the answer 2 plus 2 equals 5 you would put a clause in the program if 2 plus 2 equals 5 then that answers for and actually the way rights programs who's who's seen problems like this where it so so we have a lot of you where somebody adds clause after clause a special cases of untill can also the special cases encountered in the wild are all covered and so of course you know that in
1983 we all figured out or cells that people by 90 85 the hacker Bible came out but and that already worried about how we would educate children about computers in the future and there was an article what computers in school and I'm going zoom in a little bit and as I'm
sure I'm sure you've been involved in many discussions on how to teach programming but to begin areas and there's always that discussion focuses on the programming language that's being used back then you know the popular languages were somewhat different from today the was basic Haskell of basic had the reputation of producing spaghetti code of you will force as mentioned logo was mission C is mentioned there and of prominent back and a prominent professor of computer science in Germany said well as long as you don't program and basic you'll be fine right the pure fact of not programming basics that keep you from biting spaghetti code of and as we now know that is really true and I'm sure most of you have seen really crappy and spaghetti code and production
of the ball it's kind of keep getting closer right I think this must've been 2 years ago when a vulnerability in popular IOT devices essentially board on the internet because they were all assembled into a botnet that abroad on a popular DNS provider due top went down I think that's what most of you probably remember
there was hardly that I'm sure all of you remember due to a vulnerability above role for because in SSL which was written in C it was key facts which devolves
on a social security numbers because of a body constructs and the web framework that they used but more interestingly I think for a 1st
use of the past but there was the currently ability which would divulge secret passwords and account information on web pages just as part of the web cast you wouldn't even have to ask if you know secret questions as you would have to ask a cloud plead and that was all the reminiscent of something well not
he remembers unless you're as old as I am which was the DTX act which which was 1 of the founding stones I think of the Chaos Computer Club where people were able were able to make the computer of a bank that was attached to divulged of passwords essentially a memory dump that contain passwords and then transfer a lot of money from the bank but to them so that's a lot so the pattern so the present in many ways that she is a lot like a like the like the past it and you would think there would be some kind of progress and I think I was
as guilty of that is anybody's in 1986 I wrote my 1st book and as as many books now and then it focused on a specific programming language of course I picked like the worst programming language in hindsight that ever could have picked and that is responsible for a lot of the vulnerabilities of that we see today so but again you know it was the 2nd set was in 1986 so it was a long time ago but a long time ago
and so you would think of things have changed so so you may have been a talk earlier today about the BOP system for of for teaching of uh for teaching young kids or not a program and Bob prides itself on teaching programming in exactly the same way as computer experts for program of but it would use an approach used a based on b gamification to teach students right and so you know 1986 for your programming so Bob knows program C + +
so something has happened since then and and so and you can look at a
lot of pages web pages and and and and systems for teaching beginners not a program so here's a prominent page was supported by a lot of major organizations start coding DE from this year and you can see again that a lot of this stuff that he teachers for forcible focus on particular programming languages on scratching Python and processing so there's right there's 3 programming languages meta mentioned there but and you can read the fine print if you can read German says should be the shadowing inspires which means that there is a that there's a fund based on a playful approach to teaching how to program and that's common to a lot of things
so if you go to a kid space you will find a section called you intact impacts um and you could see that also takes a very playful approach to teaching and if you look at its material a lot of it also features of particular programming languages and there's if if you look you will find that there's a curious absence of methodology of on these on all of these pages of some and but I think part of the reason is is
that I think if you teach program and you can easily get the feeling that it's very easy right and you can teach people right very trivial programs will blinking LED to something like that and you don't like the lights that the eyes of Houston's students they will just light up and they will just love what you teach them about if it's trivial it's not so trivial so I like functional programming which is sometimes not so easy but but in any given group that's large enough you will find a few Sheldon's that was is speed up everything that you teach them and they will they will come to you and they will say is love whatever is the lambda calculus functional programming or whatever and you know if you've been added for 30 years you notice that it doesn't really matter what you teach you will always find a few shelves that will tell you that they love what you teach them and and so and so the after a while you go you realize
that well there's a few Sheldon's but then there's also a lot of students in your class war not shelves and some all as you're trying along when you're teaching training and you look out the back you suddenly
realize that you've left a lot of students behind they might so like what you're doing but you really haven't talked to many you significant abilities um and so over the years I've had a lot of opportunity think why that is why is teaching so hard and why is it often unsuccessful and 1 of the reasons is
that I think if you pick up any almost any book on programming aerobic any page that tries to teach programming it uses the approach that I call teaching by example so here's of a book by computer science prophesy that Professor came up this year and all your learn Java easy way and the easy way is in the 2nd chapter right after the introduction we do an example right and there's a concrete a listing of a concrete program and of the text essentially just
a commentary for the program and then the expectation is that from the example that you've seen that exposes various elements of the programming language like while loops and system of predominant whatever you all think by all samosas or some other magical mechanism absorb the ability to apply the techniques to new problems and my experience has been that that often does not work for some of the great mass of students were not shells I thought back to the great teachers that I've had maybe not in computer science but you know what methods were they using and then when I thought about it I realize that there was using methods that were completely different so
here's a teacher so here's a picture of my um 11th grade english teacher and volume 1987 that was uh as I was an exchange student in the US at the beginning of the class she had another piece piece of paper or you can really see it's amusing zoom
in that said you know how to write a composition in this class right and so composition of this class of well here's the 2nd section is the body right the body's 3 paragraphs with each paragraph developing 1 of the areas of the thesis for serious called 1 paragraph transition topic sentence if you look at this this is a very precise outline that explains the function of just about every single sentence in your composition so very rigid harness if you will for a composition and your come from Germany uh Germans are generally very big they don't accept a lot of power distance and they don't they're like authority that much and you like I was an instance level and to this to this concept and it took me a mostly you really except that it was a great way to learn how to to learn 1 good and working way of writing composition and then I could branch out from there and then developed other working ways of composition so this is a methodology for doing something that is extremely useful and powerful when you teach and you might say well we have methodologies like that in computer science and programming as well what we've been doing object or a aprogramming which is supposed to be very principled from I've seen a lot a crappy object only a code as well I know what you so some you know and cannot not doing programming 1 has encapsulated state it has a polymorphism it has inheritance
inheritances is particularly bad because there's so many different uses of inheritance and and typically you programming language will only have 1 mechanism so people often get it wrong and they do inheritance the wrong way around in there's empirical studies but there's many other ways in which undergoing it's officer of ends up looking like
this so I don't I don't know yeah anyway so you know this is not this is not supposed to be an indictment of the hacker culture that we we see a lot of things that we all around the country you know around here that look like this and they're wonderful but there are no substitute for the you know they're no substitute from the from the before method honestly sounds developments
offer so I yeah well many years ago I thought there has to be different way and then I got together with a man called Mateus analyzing who happens to be a fella fellow German bureaucrat which just like me but who lives in the US in water wrote a book called How to design Programs which you can find on line if you're interested you don't even have to buy the paper and all we kind of did serve the German version of that working with Mateus i call dying programs which also is a free book on it and the
overarching principle of that approach is that we try to be systematic about everything so that we try to we try to attach systematic fixed plans system to every step of the of program development and all these things are
called a design recipes just it was a name invented for this so I'm going like this and many torture you with 1 concrete
example of a classic example so that yes it was in Texas at the time of so some of the class examples that is animals on the Texas highway and we're concern ourselves with 2 kinds of animals as it is in our model on the left and use a rattlesnake on the right and there's of course the highway in the middle OK so we'll start with armadillos and 2 for the purpose of this application you might just
describe armadillos what's important about armadillos here you will see why is no model has the following properties it's alive or dead and has a certain way and somebody greatly shorten this process of systematic development here but what we say is well if you find yourself describing your data is a data centered approach if you find yourself describe your data with words like it has the following properties or consists of the following parts then you're dealing with something called compound data so this is a fixed part of the planet has a name As reported to give names to things so you can talk about them and so once you've identified that you're dealing with compound data you can model that data and you can
translate that model code and here you see a screenshot of the system called Dr. which is a programming environment that was developed for beginners and you can see a little program fragment and a programming I would also developed for the use in fact that fragment was developed for beginners the well in the interest of brevity work abbreviating armadillo to do a little so it says well we're dealing with do also recalling that the data type he will recalling that deal if we're dealing with compound data we need 1 meter constructed so new constructed and so we're going to call the constructor make till will see later that 1 be 1 way of distinguishing models from other things will need with what's called predicates ignore that for now and on the previous slide were here in the data definition the comment that is in yellow you saw that an armadillo has 2 components it has 2 parts and therefore there need to be true if you will get a functions and those are called the life interval weight never mind almost parentheses at least not for the purposes of speed this presentation 0 and 1
1 more detail maybe is that if you look
here it language Dr. Racket is a programming environment that has many different programming languages and this particular 1 as I mentioned sculpting knocked just such on which identifies 1 particular of set of low programming language levels for
beginners now but you know once you have that record definition but you can immediately call the constructor go to to make example so here's 2 example armadillos and so you see these 2 expressions make the law and the Spanish Marty means true so they do a true intent means what we have in our model we're alive is true and the weight is 10 so that might mean another door that's alive and waste 10 kilos and then there's another armadillo at that ball alive unfortunaly is false was fully dead but anyways 12 kilos and that defines their to say well we're gonna call the 1st 1 the 1 we're call the first 1 due to OK and so 1 way to talk about these functions that we've created is by writing no we call signatures on almost type signatures not quite of that say what these functions of behave like so the constructor function that you just saw applied is called make the low and you know these funny programming I was most of most things are written in prefix notation so make Migdal accepts a Boolean and a number remember there was a things it's alive and a number that says how heavy hitters and it produces a double object and the general alive interval we'd get a functions both except a do object and the 1st of them says whether the doors alive or not so produces a Boolean and the 2nd 1 produces a number that is the weight of the 2 the and well so wise all relevant light on the Texas Highways animals get run over by cars but and so going to write a function that simulates the process so that thing in green is what we call the problem as that of a short statement on a short comment on them and what the function does that were about to right so we're gonna run over armadillo that says well we're going to write a function called 1 over armadillo and goes from the loaded dual which means all the deal was not really deal it represents the state of the dual before gets run over and then 1 comes out of the rights on the right hand side that says what the state is after a long run over by a car and then you can right so you can see all these things is a required element of the curriculum I'm going over very quickly the 2 next things always example and test cases at the same time so check expects as well the run over that 1st armadillo and was still alive and went to great great weight 10 kilos after we've run over its dead and still weighs 10 kilowatts of OK and the 2nd test case as well if we run over d 2 it is already dead so after that it's still going to be dead and will wait 12 killed know from the signature above you know we already know what the function is called in how many arguments and has it has 1 argument so we can't write something down mechanically and that is what we call a skeleton which is the thing in the beginning of the thing at the bottom so we're writing a function or something called run over DDL lemma says that it's a function and he says all that do what they're called the here this is a mechanical process so in the end so we see how that is elaborated we can do more things mechanically from this because the dual is compound data and whenever we accept compound data as input we probably need to look at the parts to do anything that's meaningful so we might as well call the together functions so there's still a lot of the interval weight of the and also compound data comes out as output and so on but we probably need to call the constructor or constructed a law that is supposed to come out the right hand side so all of these things can be written down and we ask our students to write all this stuff down and also actually write almost ellipses the 3 dots and these are building blocks and are completely mechanical have nothing to do with the actual purpose of what we're doing and and then usually it's pretty easy to then fill in the missing steps and say well we are not really interested in whether the dual was alive or not before a were probably but we are interested in the weights in constructing that normative along this is to run over function it does that and so a lot so you can see that there's a lot of steps it's an extremely bureaucratic process of producing a program and follow steps are completely mechanical are they might be boring but they enable everybody to make progress on and so you might imagine I said well rattlesnakes XML snakes are very similar to the deals on the run over those very quickly so rattlesnake has the following properties thickness and length and you can see there's a record definition is much as signatures that come out of that so we can do a purpose statements is all we're gonna run over a rattlesnake now not we can just do armadillos but there's a couple test cases and rattlesnakes can run over your they get flattened out so the thickness goes on a 0 and when they get run over and but the important thing is now we might think about well we're just gonna run over whatever animal comes on under all wheels next so we're interested in animal on the Texas highway an animal is 1 of the following is either an armadillo or a rattlesnake and whenever you see that word it's 1 of the following months this or that were that were that you're dealing with something that we call mixed data and so again this thing has a name and what makes data but again there's a fixed set of steps that you go when you
program to them so you find signature that says well animal is a signature that's mixed from below and rattlesnake and were then going to write a function that runs over an animal and so it doesn't have devoted duo it is never Alison throughout the has an animal that animal has test cases like as as before the end of all remember that there were 2 different kinds of of animals on the Texas highway and in so we treat them differently right it's a different thing of of running over an armadillo in running over a rattlesnake so for that we need a conditional we need these predicate function it's as well that at all a is that an armadillo or as a rattlesnake and then we need to fill in the gaps of course we've written those functions already on it's pretty easy this is not his you've seen this run over this very quickly and I've left out a lot of steps this is an extremely bureaucratic process and when you read about this at 1st you think this is so boring I can't I can't know this you know you go like this right
and interestingly future if you practices and your students surprisingly pretty quickly they go like this because they realize that this bureaucratic approach actually makes them produce a working solution on their own so them can't believe that that is successful but then they start smiling but it took a long long
time to approve to develop this approach summiteers has been added I think since the early 19 nineties
I really been involved in this process I think since since about 2001 that's a really you need to take an approach to teaching you need to observe how well it does and I can't stress this enough when you observe it is not enough to measure the popularity of what you're doing is not enough to ask your students do you like this stuff right is that something that's interesting up you know I've I've seen all over huge bandwidth of things but where were we were unsuccessful but people just like to just the legislative fine and so and and that this process you we repeated many times
were hopefully the repeated many times in the future so but it has produced the following insights you need it so it's very useful to have a very bureaucratic approach to programming but that we call design recipes but did much talk about the fact that it's very helpful to have programming languages the specifically developed for beginners at 4 for learners have to be beginners and it also helps to have a programming environment that was designed for beginners and and will you can go to either to a page called program by design to die program and you find a lot of information that about that but it took a lot of work and it's usually but it's not enough to just take your professional programming language and stick it on your kids and might be it might work for trivial programs but it's not going to scale anywhere so non yeah
well it's about growing up and I use this was what going down so I think the progression relational lead us from you know the C and C + + like unsafe languages in all the hacking of the of the past and that we like to use when we make exploits the to save languages and run times and finally we're seeing something like rust 80 is coming up and I really only know how to do this bureaucratic and systematic approach to programming with functional languages and and and if you watch this closely you saw that what we did was typed right we looked at this at the way or data is organized and then organize or programs according to that data and whether you use a statically typed language analysis can secondary to that but in the future I think we'll see more of that you will write down a specification of what you're trying to do as part of your types and then your system will generate for them and that's also a way of proceeding very systematically so
I think when you're teaching programming it's is not being inclusive is very very hard right it's not enough to get people excited it really is important part practical knowledge and and competency of and the only way out of it not to
do this is to teach a systematic approach my color bureaucratic if you're German um but to my surprise in the shells like this but after a while anyway and and we should really refocus
of or we need to focus you after all the exploits we've seen over the past couple of decades of on correctness and I think this is the path to do that you few including if fewer this presentation few known like 2 0 3 minutes for questions and the and please go that of mikes 1 2 3 and and I we have found many in the the common yes Napster coming from a lot of the software development world and practical experience probably differing with other customers have you got any insights into how people will often do teaching by code review a direction for people to go in reading to learn more about code learn more about the structure of code in a way that software development often is typically told you have sold to let specifically in this so I think valuable but in my experience is just not enough right so the shows of this world the able to figure out how to program by themselves essentially right but just say you know this piece of code is good that's teaching by example right this piece of code is good this peace accords battery can improve upon it is just not a constructive way of it's helpful right to shorten the sense of identity not help the chancery you facilities of which is important part of learning anything but really I think it's come from my experience it's completely crucial on to insist that in your teaching methodology you teach them steps that they can actually fall languages agree agreement but in respect of how many modern software development teams work in the code review you can go this approach will have this this problem have you thought about doing it this way would be considered uh do you have any thoughts on that process in teaching people in that process in that duration so for beginners might experience has been that it doesn't work very well right because that's a subsequent assaults so it's a it's a common educational point right that you need to teach people in honor of the dead many different approaches were going so what we're going to judge them awareness say this 1 is OK and this 1 is maybe a little better my experience has been with the vast majority of students right is if you if you use that as your main teaching paradigm the problem is they produce 0 solutions and and so it's a much better idea really insist on that 1 correct solution and you can branch out later and the thing says like that might 1 and into incitation should quick question this uh work of its short question I think you true core from going crush by brains so what you've told with windows and the 1 the very popular among among youngsters Rosy's Arduino has yet it's to cope with C and C + + you get very quickly C code so how would you Lupu put to these what you've told King right into the environment of such a popular platform like her dream so I think I would try to make their teaching languages work on an Arduino I think that's very very hard with that you really small ones but with a certain medium sized fries might actually and I actually possible alone but but yeah as you point out there's a bunch of crap in C code running on our windows on I can see attractiveness of that approach but so it's not 1 that I personally prefer good scratch fill the gap well it in Room which it was a quick answer I'm sorry we're running out of time usage and things 3 questions and it is thanks again Mike Florio wonderful too large to play here what to do this in
the this so I say it would it eked completely it to the
Expertensystem
Gemeinsamer Speicher
Mathematisierung
Gruppenkeim
Computer
Softwareentwicklung
Quellcode
Twitter <Softwareplattform>
Information
Kontextbezogenes System
Raum-Zeit
Dijkstra-Algorithmus
Selbst organisierendes System
Software
Software
Unordnung
Funktionale Programmiersprache
Grundraum
Demo <Programm>
Subtraktion
Punkt
Computer
Computerunterstütztes Verfahren
Computer
Homepage
Internetworking
Wurm <Informatik>
Datensatz
Rotationsfläche
Softwareindustrie
Informatik
Figurierte Zahl
Gammafunktion
Parametersystem
Softwareentwickler
Computersicherheit
Stellenring
Softwareentwicklung
Plug in
Software
Minimalgrad
Gruppenkeim
Hypermedia
ATM
Hill-Differentialgleichung
Fehlermeldung
Warteschlange
Datenverarbeitungssystem
Softwareentwicklung
t-Test
t-Test
Computer
Gruppoid
Automatische Handlungsplanung
Schnittstelle
Wellenpaket
Quader
Softwareentwicklung
Mathematisierung
Computer
Computerunterstütztes Verfahren
Informationsmodellierung
Software
Koroutine
Biprodukt
Addition
Informatik
Hacker
Metropolitan area network
Koroutine
Fehlermeldung
Synchronisierung
Relativitätstheorie
Rotationsfläche
Personalcomputer
Softwareentwicklung
Physikalisches System
Bitrate
Whiteboard
Gruppenkeim
Rechter Winkel
Einheit <Mathematik>
Verschlingung
Programmierstil
Term
Verkehrsinformation
Programm
Programmiersprache
Bit
Formale Sprache
Virtuelle Maschine
Zellularer Automat
Softwareentwicklung
Zoom
Computerunterstütztes Verfahren
Aliasing
Biprodukt
Pascal-Zahlendreieck
Code
Flächeninhalt
Rechter Winkel
Hacker
Informatik
Hacker
Softwareschwachstelle
Direkte numerische Simulation
DoS-Attacke
Dienst <Informatik>
Service provider
Whiteboard
Internetworking
Streuungsdiagramm
Konstruktor <Informatik>
Benutzerbeteiligung
Personenkennzeichen
Mereologie
Passwort
Information
Web-Seite
Framework <Informatik>
Umwandlungsenthalpie
Programmiersprache
Menge
Arithmetische Folge
Mustersprache
Unordnung
Speicherabzug
Passwort
Computer
Kombinatorische Gruppentheorie
Homepage
Programm
Expertensystem
Kanal <Bildverarbeitung>
t-Test
Information-Retrieval-System
Softwareentwicklung
Physikalisches System
Computer
Information
Unendlichkeit
Digitalsignal
DoS-Attacke
Verzweigungspunkt
Booten
Programmiersprache
Selbst organisierendes System
Code
Mereologie
Hochdruck
Garbentheorie
Softwareentwicklung
Physikalisches System
Extrempunkt
Web-Seite
Fokalpunkt
Raum-Zeit
Homepage
Wellenpaket
Rechter Winkel
Klasse <Mathematik>
Gruppenkeim
t-Test
Softwareentwicklung
Lambda-Kalkül
Funktionale Programmiersprache
Faserbündel
Rechter Winkel
App <Programm>
Applet
t-Test
Spieltheorie
Gebäude <Mathematik>
Softwareentwicklung
Mailing-Liste
Informatik
Schlussregel
Homepage
Programmiersprache
Kraftfahrzeugmechatroniker
Adressierung
Nabel <Mathematik>
Klasse <Mathematik>
t-Test
Ruhmasse
Softwareentwicklung
Element <Mathematik>
Physikalisches System
Zoom
Gerade
Gradient
Loop
Erwartungswert
Spezifisches Volumen
Informatik
Subtraktion
Klasse <Mathematik>
Gruppenoperation
Modifikation <Mathematik>
Formale Sprache
Statistische Hypothese
Code
Übergang
Font
Vererbungshierarchie
Flächeninhalt
Abstand
Informatik
Leistung <Physik>
Autorisierung
Beobachtungsstudie
Drucksondierung
Lineares Funktional
Kraftfahrzeugmechatroniker
Stichprobe
Softwareentwicklung
Office-Paket
Objekt <Kategorie>
Flächeninhalt
Rechter Winkel
Garbentheorie
Beweistheorie
Aggregatzustand
Instantiierung
Wasserdampftafel
Versionsverwaltung
Systemaufruf
Softwareentwicklung
Substitution
Softwareentwickler
Hacker
Metropolitan area network
Physikalisches System
Automatische Handlungsplanung
Softwareentwicklung
Physikalisches System
Lateinisches Quadrat
Softwareentwickler
Informationsmodellierung
Prozess <Physik>
Gewicht <Mathematik>
Kategorie <Mathematik>
Rechter Winkel
Mereologie
Klasse <Mathematik>
Wort <Informatik>
Kartesische Koordinaten
Softwareentwickler
Konstruktor <Informatik>
Videospiel
Lineares Funktional
Gewicht <Mathematik>
Machsches Prinzip
Softwareentwicklung
Physikalisches System
Abstraktionsebene
Kombinatorische Gruppentheorie
Code
Rechenschieber
Prädikat <Logik>
Informationsmodellierung
Softwaretest
Gewicht <Mathematik>
Formale Sprache
Datentyp
Mereologie
Meter
Zusammenhängender Graph
Programmierumgebung
Subtraktion
Gewicht <Mathematik>
Prozess <Physik>
Formale Sprache
Snake <Bildverarbeitung>
t-Test
Zahlenbereich
Element <Mathematik>
Gesetz <Physik>
Template
Übergang
Zahlensystem
Datensatz
Skeleton <Programmierung>
Arithmetischer Ausdruck
Informationsmodellierung
Softwaretest
Gewicht <Mathematik>
Datentyp
Minimum
Lemma <Logik>
Videospiel
Lambda-Kalkül
Funktion <Mathematik>
Programmiersprache
Softwaretest
Parametersystem
Lineares Funktional
Konstruktor <Informatik>
Dicke
Befehl <Informatik>
Kategorie <Mathematik>
Systemaufruf
Softwareentwicklung
Boolesche Algebra
p-Block
Ein-Ausgabe
Elektronische Unterschrift
Objekt <Kategorie>
Skalarprodukt
Menge
Formale Sprache
Rechter Winkel
Mereologie
Wort <Informatik>
Boolesche Algebra
Programmierumgebung
Aggregatzustand
Softwaretest
Prädikat <Logik>
Lineares Funktional
Subtraktion
Prozess <Physik>
Funktion <Mathematik>
Rechter Winkel
Konditionszahl
t-Test
Mixed Reality
Softwareentwicklung
Lambda-Kalkül
Elektronische Unterschrift
Prozess <Physik>
Rechter Winkel
t-Test
Bandmatrix
Ausgleichsrechnung
Normalspannung
Softwareentwicklung
Formale Sprache
Skalierbarkeit
Homepage
Arithmetische Folge
Datentyp
Funktionale Programmierung
Hacker
Analysis
Programmiersprache
Umwandlungsenthalpie
Programm
Arithmetische Folge
Relativitätstheorie
Rechenzeit
Spieltheorie
Softwareentwicklung
Übergang
Physikalisches System
Programmierumgebung
Einheit <Mathematik>
Formale Sprache
Mereologie
Information
Programmierumgebung
Faserbündel
Nabel <Mathematik>
Mereologie
Softwareentwicklung
Kantenfärbung
Punkt
Prozess <Physik>
Formale Sprache
t-Test
Kombinatorische Gruppentheorie
Systemplattform
Code
Richtung
Hypermedia
Medianwert
Systemprogrammierung
Dämpfung
Bildschirmfenster
Nichtunterscheidbarkeit
Programmierparadigma
Datenstruktur
Softwareentwickler
Hilfesystem
Konstruktor <Informatik>
Kraft
Güte der Anpassung
Napster
Kontextbezogenes System
Exploit
Rechter Winkel
Mereologie
Speicherabzug
Programmierumgebung

Metadaten

Formale Metadaten

Titel Growing Up Software Development
Untertitel From Hacker Culture to the Software of the Future
Serientitel 34th Chaos Communication Congress
Autor Sperber, Mike
Lizenz CC-Namensnennung 4.0 International:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
DOI 10.5446/34848
Herausgeber Chaos Computer Club e.V.
Erscheinungsjahr 2017
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Hacker culture overcomes limitations in computer systems through creativity and tinkering. At the same time, hacker culture has shaped the practice of software development to this day. This is problematic - techniques effective for breaking (into) a computer systems are not necessarily suitable for developing resilient and secure systems. It does not have to be this way: We can approach software development as a methodical, systematic activity rather than tinkering, and teach it accordingly. I'll review my experience teaching these methods for the past 18 years and give some suggestions on what *you* may do.
Schlagwörter Resilience

Zugehöriges Material

Folgende Ressource ist Begleitmaterial zum Video
Video wird in der folgenden Ressource zitiert

Ähnliche Filme

Loading...
Feedback