 we can leap into some questions with Cathy since we're here. I come from a non-traditional background where I didn't go to university. However, I do have a lot of friends who attended different universities and I've heard a lot of them express a lot of frustration with like how outdated they say the curriculum is and how they're not learning anything useful and blah blah. And I wonder, do you think that your data-centric intro to computing curriculum and focusing on the data could be a tool to soothe these frustrations? Yeah, I mean, that's certainly what we seem to be seeing. The course that I've put together around this is extremely popular from students across campus. The students that I work with, they know that data is playing a huge role in their lives, whether it's their academic lives or their personal lives. Like they're on social media. They're concerned about algorithmic bias and Facebook and all of these issues. So by teaching this course centered through data, we bring those issues up. When we're looking at the tables, we talk about metadata and privacy. We talk about how does inference get made from a large data set. So I think we are able to connect these to the kinds of concerns that students have both academically and personally. And I think that that takes a lot of that stale feeling out of the curriculum. Yeah, yeah, that makes sense. I guess the follow-up question to that is, also I really liked the slide where you said, you don't pick a language and teach to it. I think the question needs to also be asked that is it necessarily the responsibility of a university to teach these like constantly evolving frameworks and languages and ecosystems so that a student leaves the university with a bachelor's prepared to start the workforce? Or is that something that should be done in an internship or should be done on their off time or? So when I look at the typical student population, not all of my students are headed the same place. So if I wanna teach the language that appears everybody for the workforce, what the heck do I teach them? I've got students going into everything from building a low level systems to doing data analysis, to doing graphics and animation. You can't center an intro curriculum around the needs of industry because your students aren't all going to the same place. Now, maybe if you're in a bootcamp and you're trying to prepare students for a very specific industry, that calculus is different. But at the university level, there isn't a one place they're all trying to go. And I also think that we need to get students to have a flexibility to adapt to different languages. I'm a strong believer in having students use multiple languages in the first semester or first year so that they begin to appreciate what it takes to take something they've learned in one language and move it to another language. And then I think industry and internships, those are places where you start to learn the conventions of the subfield and the work you're trying to go into. The other thing we tell students when they come in as first years is that, the average hype cycle of a language is about seven years. So if I teach them now what's in the hype cycle, within a year or two of them graduating, it's gonna be dead anyway. So I'm not serving them well by teaching to the hype cycle. Right, right, the fundamentals are really what's important there. So I see we have, has Dragon joined us now? Hello, hello, can you hear me? Dragon, okay, all right. So we have all the talkers in the panel. I have heard that there is a raised hand. Oh, Ethan, hi, Ethan. Do you wanna go ahead and ask your question then, Ethan? Yeah, sure, it's for Kathy. I really love the talk. I was just having a conversation with Elena Makasova. I can't pronounce her name very well. She's at University of Minnesota and also interested in teaching functional languages. And I did a computer science minor when I was in college like 20 years ago and it was all object-oriented. Right. And then I've gotten into functional. It's just amazing to kind of like realize how different that would look now. And this was really illuminating, kind of like helped me understand what the road I've traveled. But yeah, I guess I had so many questions but I think maybe one that most, yeah, you mentioned that data engineering gets overlooked. And I've always, I've kind of like, I've noticed that too and I was wondering why? Because as somebody who programs like regular programming, kind of like full stack or whatever, one of the things I like about it is there's this kind of like carpentry aspect of like designing a system. And when I think about data science which also interests me a great deal, sometimes it's like that path of like design, training a model seems kind of repetitive. And I miss the carpentry aspect. And I kind of wonder if, I've always wondered, it seemed to me like data engineering might be a place where that exists more. And so I wondered why it doesn't get more attention. I wonder if you have like more to say about what, why that is or, you know, yeah. The same way you have legacy languages survive in software projects, you have legacy curricular designs serve in university departments, right? There are conventional ways that we have taught programming for a long time. And you have to, at some point you have to decide that it's time to throw out the way you've been doing it and revamp what you're doing. So a lot of places I think are still stuck in the 70s, frankly, that basic C programming, maybe we do basic C programming in Python syntax, but we haven't fundamentally changed the way we think about the topic sequence. And data engineering doesn't really align with a topic sequence that says first we teach variables, then we teach while loops, it just, they don't line up right. So you have to come at curricular design by asking yourself, what do I want my students to learn how to do? What do I think is feasible for them to learn given what they know already and then kind of break it down and construct it back up from there? But if your curriculum is kind of in an older way of looking at the world or older set of those decisions, you have to make a conscious decision to break that. So I think we saw that jump happen once in the early 90s when people started jumping to say, let's do objects now and things changed around to what they were doing. Now you're getting, you get some jumps around scripting. There's kind of been the scripting jump that's happened. And now I think we're getting ready for a data science jump. Yeah, it's just, it's the nature of the beast. Just maybe a quick follow up for that. Is part of your argument that maybe the functional mode of teaching is particularly useful for that last jump? I'm arguing that, so given, if you look at a data science library, it's very heavily functional, right? It's higher order functions, basically. They don't might have the same syntax, but that's the concept of what we're doing. So the functional style of thinking about code aligns very naturally with many data science libraries, right? And that's the perspective from which I'm saying I think functional is a good platform from which to launch this. Wonderful. That's great. Thank you. Thank you for responding to that. So going to loop dragon back in here, I know you think you got lucky and we were gonna figure it out too, but we're not. Start with the ice breaker question that I am particularly interested in. I would love to hear about your interest in Cuban salsa dancing and how you got into that. And also whether you've talked with Chris Nuremberger about his passion for dancing, because I know y'all are, I know y'all know each other in the same spaces. So yeah, let's break the ice with you. Oh, so I got into salsa maybe 12 years ago or something like that. And it was, well, in Belgrade, Serbia, there are lots of Cubans because they don't need visa. So they use it as a kind of a jumping point for emigrating to Europe. So there are lots of them and they introduced salsa maybe 20 years ago into the city and it got relatively popular. So there are lots of schools, lots of parties and that's how I got into it. And I didn't know Chris also dances. So that's another great thing about him. Yeah, do you think it relates to that style of dancing? Do you think it relates to the way you think about programming or is it just completely different? Well, perhaps it's, let's say, it's pretty improvisational style of dancing, like a street style. It's not competitive, it's a social dance. So it's important to enjoy yourself and with your partners and friends and just have a great time not to compete with each other. So maybe there are similar things in programming because the point in programming is not that there are winners and losers. The point is that, at least in open source programming, the point is that we all help each other and learn from each other and work together. Yeah, so the community aspect sounds like it's what draws you to that and also what draws you to open source work. That's really wonderful. Okay, since we're doing round Robin style, we can go back to Kathy now, kind of do a follow-up question about what we were just speaking about with Ethan. And what do you think of the recent boom of data science as a chosen major and a career path? And do you think that that is sustainable or do you think it's just hot right now and it'll eventually settle down? Do you think it's just gonna keep going up? I hear the market's very competitive and it's very trendy in that space. It's certainly trendy. But I think there is a fundamental grain of truth there that we are collecting volumes of data and many industries and disciplines are making decisions based on data. So if data is gonna be a fundamental bit of organizational infrastructure, then people need to know how to work with it. So I don't think the need to have students prepared to work with data is going away. I think what might go away is the feeling that this is the thing that you major in because you wanna make sure you get a job, right? People don't run around getting degrees in English because they need literacy, right? At some point it becomes a literacy that we figured out how to get to everybody and it doesn't have kind of the trendiness that it has now. But I think there's something healthy to the trendiness when it's bursty like this because it really forces us on the education side to stop and ask, am I serving people well with this? You know, I've been teaching for 25 years. When I started, you majored in computer science because you were going to be a computer scientist. You didn't have people who kind of picked up a little computer science in an intro class because they thought they should have it as a job skill. So you could teach your intro classes assuming that the people who should be in there were the people who were gonna go all the way to a major. And if you lost out the people who weren't gonna major that was okay because that wasn't who the course was for. Now we have been forced to reckon with the idea that our intro courses have to serve the entire campus. People who will take one course and stop and still wanna do something useful with it. That's a paradigm shift in how you think about teaching your courses. So I think there's a real value to these trendy spikes if they force us to rethink the population we're trying to serve with our classes rather than just try to figure how to get everybody through an intro programming class and see. Yeah, yeah, that makes sense. And increasing literacy when it comes to data and when it comes to computer science is super important. And that can kind of take us into our next question for Dragon here. And I'll take this time to do a quick shout out to Jacob who has been so forthright with questions in the chats. You've been a great role model. Thank you so much as hosts and organizers. We really appreciate you putting in these questions. Everyone's wondering. So Jacob says to Dragon that if I want to learn to use machine learning for my work problems but I don't know anything about machine learning or data science, what learning path can I take? And I assume if you wanna consume your content Dragon if there are particular books to start with what to pre-study. Yeah, thanks. That's really a great question because probably every developer not only closure programmer but any Java programmer or any C sharp programmer or even any Python programmer would ask themselves. Okay, I see that machine learning is somewhat popular. I see that lots of people are talking about it. I see that lots of big companies are pushing some impressive applications that they say use machine learning for. So I want to know more about it and probably to upgrade my skills and someday use it in solving practical problems. But what is usually the problem for us developers? There we go. Okay, let me see what are the most popular books or most popular courses that deal with machine learning? And there are two kinds of one kind is directed primarily towards researchers in machine learning and data science. So people who probably have lots of math background lots of statistics background. So that content is heavily based on theory and has almost no applications and no code. The other big chunk of the content that is available is written from people and four people who maybe don't have much background in maths and don't have much backgrounds in computer programming but have a background in some scientific field or some specific fields that machine learning is applied for. For example, statisticians or biology majors or maybe business people or something like that. So that content is heavily directed towards applications of a black box. So machine learning and data science without proper understanding but just put into context with some recipes how to solve these particular kinds of business problems or scientific problems with machine learning. So developers are neither of these typical archetypes. So we have problems. The theoretical literature is too abstract for us we don't see how to apply it easily without majoring in maths and statistics. And on the other hand, the business side is too superficial for us because we immediately see how to apply it and maybe understand how it works on surface but we still don't understand how exactly this work and how we would apply for different problems. So my approach was to offer something that is targeted for developers. So takes developers perspective, assumes that a developer has some background in maths a long time ago, everything is forgotten. We have this something like a skill that is underneath but we don't really have it, it's a bit rusty. So we need a refresher for that. We may know some basic statistics but usually we didn't understand it properly even when we attended these courses and let alone five or 10 years after that. And we need something that is that we can run on our computers immediately and see how each part develops. So my point is when we build something we start to understanding that's the way that we think about problems. When we program something, for example, we may not understand accounting but when we program an accounting system as a part of that we start to understand something about accounting, we may not be experts but we know a lot of it. Or about, for example, inventory management. When we program such system, we start to understand how this being business functions. So the point is that I try to do something like that for machine learning specifically deep learning and for linear algebra and the math background that is needed for all kinds of machine learning that is based on linear algebra. Oh, so to come to that. Oh yeah, yeah, what about what book, what path? How do we, let me, is there something about the Cycloge group maybe? I don't know. Yes, so now the actual answer. The answer is regarding my books. They are, both books are self, can be used independently of each other. So the Deep Learning Book is a primer of how to build a deep learning library from scratch and apply it to some typical problems that are used for teaching deep learning and how to integrate with the Intels and NVIDIA's mainstream high performance tensor libraries. So we start assuming that you don't know much and in each chapter we learn one or two things and we build these things and that's how we build understanding. So most programmers could follow it without referencing the numerical linear algebra book but at some point, most programmers will be a bit more, confused with the details because they forgot about linear algebra and math. So at these points, they could go to numerical linear algebra book and learn these specific things. So deep learning is more like a novel and numerical linear algebra is more like a collection of short stories that build on each other. And this is more concentrated on the actual core of machine learning and deep learning and linear algebra, not with so much with the other aspects that the cycle libraries or other integration libraries are concerned, which is more like, okay, how do I consume CVS files and web services and different databases and how do I do these different kinds of data sources. My books deal with, okay, we have a data source and how do we get it into closure and how do we build a system that can learn these functions from data because deep learning is basically, neural networks are basically function approximators. And can people contact you on the Zulip or email you for, if they would like to know more, I assume? Yes, of course, I'm active on most of the closure communities so they can contact me. Awesome, all right, we are going to do one last question to Kathy here and then ended off so we can have a five minute break before our keynote. So Kathy, do you think that programming is a life skill? Should this person be teaching their wife and their kids to code or do you think it is more of an expertise? That the literacy shouldn't need to be considered if you're not going to specialize in that domain professionally? Yeah, so I think through this question because I've been on several organizations in different states in the United States that are developing their learning standards in computing for K-12. So that's kind of the frame from which I think about this. I don't think everybody needs to know how to program. I think everybody needs how to live safely in a digital society where data is collected about them and shared about them all the time. You need to understand the life cycle of data. You need to understand what people do with information, what people can do with phones all the time, right? So I think that's actually the life skill is living in a digital world. Programming is a medium that works for many people to learn that skill and to express that skill. But I don't think programming is necessarily the end skill especially if you look at the small amount of programming that one could fit in say to an elementary school curriculum, you wouldn't get to do enough of it to turn it into a life skill. So I'd rather see us thinking about just literacy of data and citizenry as it were. And if programming becomes part of that because your school district can fit it in, that's great. But otherwise, you know, being able to move sprites around the screen which is where a lot of students get it might feel powerful which is itself a good thing but I don't think that's the life skill. Yeah, I agree that there is a difference between computer literacy and programming literacy. You should know how to navigate a file using a GUI but maybe not need to open the terminal for everything. So with that, that was Dragon and Kathy. We're going to take a quick five minute break so everybody can use the bathroom, stretch your legs, grab coffee, do anything you need to do before our very, very, very exciting keynote speaker. And I'd love to hear more questions from y'all because we need some questions from Mr. Wolfram. Okay, see you soon.