All righty, welcome back to 105. So more link lists today. Everyone's most fun thing. So we get some more practice with that. So we get to create some more functions today. We've done a lot already. So we could present our link list as a library so that the user doesn't have to use nodes and then it kind of looks like Python or other languages. So what we wrote before were things like we could create a link list which initializes the head to be null. We can write a function called free that frees all of the nodes, cleans up the list, empty, length, to check whether or not the list is empty. It's length. I just renamed the function to start with link list underscores because that's how C developers usually write that but that's not the recommended way to do it in this course but I just do it here because it looks a bit better. We wrote how to insert just a value to the front. So we created node, put it at the front, played with the pointers and then there's now this function to remove an element from the front. So it'll just remove it, free the node, give you the value back and then here's some new functions we can write today. So we can write a function that returns true or false whether or not a particular value is in a link list. We're assuming our nodes just have integers and then we could write a function to remove the first node that matches the value and then another function to remove everything that matches a value. So they'll pretty much look like what we've already done before. So let's go ahead, write a function to check if a value is in the link list or not. So here is the function prototype, boolean. So it's gonna return a yes or a no whether the link list contains a value should return truth, the values in the link list false otherwise. So when we write this, typically we'll have the link list and the link list structure. Remember that structure just has a head which points to the node that starts the list and then every other node has a next pointer in it. So this kind of looks like anything else that we do that iterates through the list. So we create a temporary value probably called current set it equal to the link list head. Whoops. Wow, I can't type today. And then while current does not equal null, we can iterate through everything and update current equal to current.next and this will essentially iterate through everything in our list. So it's complaining that we don't have a return value. So what should I write here to check if a certain value is in my list yes or no? Yeah, yeah, so we can just have a simple check here. So if the current, so remember a node has like a next pointer and then the way I wrote it, it has a value but you could put whatever you want in it. But here if the value of the current node equals the value that we pass into the function that means we have found it. We can just simply return true and we don't have to check anything else we've already found it. If we make it to the end and we have not returned true so nothing matches or the list is empty. It covers both case. We can just go ahead and return false. So any questions about that? Lots of fun, right? It's just more iterating through the list and playing with values. So here's the code on the slide. So you have it. We can create more functions. Ooh, more functions, more fun. This pretty much looks like a combination of ones we've already wrote. So we can create a function to remove the first matching value. So we take a link list as a parameter and then value and we want to try and remove it from the list. Actually free the node. So we don't have any memory leaks or anything like that. And then just return true if it got removed, false if it was in the list and that did not get removed and cleans up all the memory. So, whoops, swap back. So let's think about how we would write, whoops, something like that. So, give you a little bit to think or I could just start writing it to try and remove the first matching value. So maybe I could start off and let's do the old copy paste. Oops. So if I find the current value instead of just returning true, I want to actually remove that node, right? So how would I remove the node without breaking everything else? So can I just do, I don't know, let's say I want to free the current node and then that's it. Probably not the greatest idea, right? Because while some node probably still points to current and well, that would be a segmentation fault if we had to go over it. So we have to go update some pointers and things like that. So anyone want to help me? What do I need? Anyone remember how to actually successfully remove a node from the list? So have a temporary pointer that points to that node, so like something like that and then what do I want to do with that? Okay, so I need to make the previous node point to that next one, right? So I probably need to keep track of the previous node. So let's do what we did before. We'll create a node called previous, initialize it to null and then here I can set previous equal to current. So I always keep track of the last node I had. So that's why I had two pointers. So this will make sure previous is always one behind current and initially it starts off as null. So now if I want to remove it, well, yeah, I do need to free current but what pointers do I need to change? So I have current in temp which shouldn't help me too much because if I free it, well it's the same address that I just freed. I also can't use it then. So that doesn't quite help me. Yeah, yeah, so the thing I want out of current that I want to save is it's next. So maybe I just save it in a temporary variable. Maybe I call it next. So after I get next I can free it. That's good, okay. So now what do I want to do? So now I delete it, I got it's next. So now there's kind of two cases here, right? Yeah, yeah, so there's two cases here. So if previous is null, I want just the previous next equal to next. Is that all we need? Are we good? Looks like it should be good. We free the node and then we return that. We return true. So we either update the head to point to the next that we just currently deleted or update the previous to point to the next which would just skip over the one we just deleted, right? So this should, so here is very good. And that would remove the first match value. So any questions about that? All I did is kind of make it go compact on the slide a little bit. Pretty much the same thing we had before. So now we can create a function that removes all matching values because, well, removing one thing is fun. This could be even more fun. So this should remove all the matching values and then return the number of values removed. So the function should also just like free the nodes used to store all the values. So let's think about how we would write a function like this. And let me check. So one hint might be this is a lot to think about but kind of ish like the idea of recursion. We've already kind of solved this problem with the last function we wrote. So if we remove the first element and it returns yes or no whether it has removed it, we might be able to just reuse that function instead of playing with all the list pointers again and all that fun stuff. So any ideas of what we could do to write this really simply doesn't have to be efficient at all. All right, let's just steamroll through it. All right, so easiest way to write it is just like this. So to remove everything, we could just create a variable called it removed and just since our removed first returns yes or no whether or not we have removed something, well, we can use a while loop that can just keep on removing stuff as long as we've removed an element. So as long as this function returns true means we've removed something so we can keep on doing it until it eventually returns false. And when it eventually returns false, that means we have removed every matching value. And here we just increment the number of elements we have removed each time through the loop because while each time it returns true we removed a single value. So now with that function do do do. So here's a little test function, oops. So here is our link list before. It's one, two, one, three, one, four. So if we call remove all on it and we're removing all the values one, hopefully if it works it removes one, two, three. So it removes three ones which indeed it returns we have removed three and then the link list after has the elements two, three, four in it. Fun, right? All right, it's not that fun. I pretty much beating a dead horse with just these link list things over and over again.  All right, cool. So you might also ask is there anything useful we can do with link list? So we can actually solve some problems with link list. So in general you could like implement some more complex arithmetic using link list. For instance, one silly example is we could just sum together all the values in the link list without having to explicitly iterate over everything. So if we run this algorithm which is we remove two numbers from the front of the list and then add their values together and then put their result on top of the link list we could repeat this process over and over and over again until eventually there's only one element in the link list and magically that one element in the link list will be the final sum. So this is kind of like how you would do it if you were doing it by hand and you could only add two numbers together at once. So here is the code that would do that. Actually here, let's just write it. So the code that would do it, the idea behind it is each time through this loop. So first I can check that the list is not empty. That would probably be an edge case. So if I'm computing the sum and the link list is empty, I'll just return zero. Otherwise I will have my loop that will just keep on running while the length of the link list is not equal to one. And the idea behind this is, well every time we iterate through this code, we're removing two elements. So we're removing two numbers from the list and then adding one back in. So every time we do this, it gets one smaller and the value doesn't change. We just have one less value.  So in this example, so if our list is one, two, three, four, then first time through it, if we're removing from the front, we take off a one and a two and then add them together, put a three on. And then after that, we would take off the front two. So that would be the three and the three, add them together, get a six, put it on. And then we take off two numbers. It would be the six and the four. Take them off, add them together, it's a 10. Now there's only one element in the list. And we can get the final sum. So now just doing that, which doesn't really look like a sum at all. Well, it actually computes the sum of the linked list with, I don't know, with fun. And this is how basically your computer works by like all the additions you do. C will only ever do like an addition between two numbers at a single time. So what it would do is something similar to this. So it would just keep adding numbers together, getting the result and then adding that result to another number, so on and so forth, kind of like you would do it in math. And when you use a linked list like this, just like adding stuff to the front and removing stuff from the front, kind of reminds you of like that stack of plates at like the cafeteria or something where you put one on the top, take one from the top. So this is a data structure that you will see come up and it's also kind of the same way that your local variables are stored in the function. They're kind of created and deleted in the same order you would put stuff on. So it's just put at the front, take off the front. All right, other fun stuff. So any questions about that? That's just a fun little example. All right, so other stuff that I think should be part of this. So one of the reasons to use linked lists, I know one of my third year courses loves using linked lists all the time, even though realistically, they're actually really, really slow. So you should typically not use linked lists unless you're like constantly adding and removing from the front. Arrays are generally always faster, even if you have to resize it from time to time and they use less space because they don't need to store pointers or anything like that. Arrays are packed really tight in memory. So we could think about how to make an array larger without. ["Ear Damage"] I officially have ear damage, says my watch. Oh, I have to follow up with that. All right, so now we get to resize an array. Wow, that's distracting. So if we want to make an array larger, wow, that seems like a very bad segue, doesn't it? All right, so if we want to make an array larger while keeping everything, our code could look like this. So let's just walk through it really, really quick. So say we create an array, we set its length equal to four, so we malloc four bytes. Again, we're going back to arrays. Check that malloc. Actually, we didn't run out of memory. So check that malloc did not return null. If it did, we'll just exit with a failure. Then let's say we populate our array with the values one through four. Print it, we should see just our array is one to four, right? So if I wanted to resize my array, well, it looks probably like a lot of code. So if I want to resize my array, well, then what I have to do is, let's say I want to resize it to fit seven elements instead of four. So what I might have to do with what we know right now is, well, I need to malloc at least space for that new bigger array. So I need to malloc seven ints. So I can do that. Go ahead, check that I didn't run out of memory. If I did run out of memory, well, I can just free that allocation that succeeded before, exit with the exit failure. And then what I could do is I would copy the contents of my old array to the new array. So in this case, I want to, I'm just trying to make it bigger. So I don't want to lose my first four values. So I could copy, in this case, since it's smaller, I could copy up to length elements to that new array. So I would copy index zero, one, two, three. So I copy it to my new array and then boom, I can now use up to seven because I have enough valid memory for it. In here, I put min of length and new length because if we make it smaller, yeah, we could shrink it by two. So we only want to, if our new array only has two elements, I can only copy two elements from the old array because, well, now I don't have enough room to fit element at index two and three. And then what I can do is I can free that old pointer. So now I'm done with that old array. I can free it and then set my array pointer equal to that new array. And then maybe I want to initialize all the other values to zero and then say what my new length is. So if I run something like this, before my array had four elements, I wanted to resize it for whatever reason. So I just did a new malloc with seven. I copied the old values over, so I didn't lose them and I just initialized everything else to zero just in case. So does this make sense to everyone? How I would do this? So, spoiler alert wasn't taught to you before but there is a function in the C standard library that will do this step for you. So re-sizing an allocation, it actually exists in the C standard library. The function prototype, it's called realloc instead of malloc, so it's like reallocating. So try and resize this for me, please. So it takes two arguments. One is the pointer, so whatever you got back from malloc before and then the next is the new size. So that is the total size of the new allocation you want. So you can either shrink it or you could grow it and it will deal with copying any of the old values actually for you. So you can also optionally, this pointer doesn't have to come from malloc but if you give it null, so if you set this to null then well suddenly you give it null and then a size and it behaves exactly like malloc. So you don't have to use malloc if you really wanted to for some bizarre reason. You could just use null as the first argument to this function instead but otherwise kind of behaves the same as malloc. So it will return null if there's an error so it can't do the reallocation for you. It can't grab enough memory or it can't shrink it for whatever reason. And the original pointer you gave it is not automatically freed for you so you would still have to be responsible for cleaning it up. Otherwise, if it does not return null then you have a new pointer to new size bytes and it will go ahead and copy all of the old values for you like I did previously. So it would copy up to old size bytes. You don't have to tell it. You just kind of get that for free. And the nice thing about this is C might not actually have to copy all the values. It just might make that allocation bigger because it's the one dealing with it. So the original, the pointer you might get back from this might be the same as the pointer you gave to it originally but now the memory allocator knows that okay well instead of having four ints worth of memory valid you now have seven worth. So that would make our code much, much simpler. So we could just rewrite it to use realloc like this. So if we wanted to make our array bigger well we would say realloc array. So this would be what we got back from malloc previously. And then we could say okay well we want a new length number of bytes. So we could assign the return value of realloc in the variable called new array. Check if there's an error. So if it returns null that means we have run out of memory and we didn't automatically free array. So we can free array and then exit. Otherwise if realloc actually was successful it would have freed the original memory allocation for you if it didn't just automatically resize it. And then after that we could just reset array equals to new array and length equals to new length. So any questions about that? So that will do most of the work for you. So you can resize arrays all you want. It's not really that big of a deal and computers really like memory being contiguous and being really close together. So even if things look like it might suit a link list better typically arrays are simpler and what you should go to. But sometimes link lists are make it easier to solve some problems if you really need to care about the order but you kind of need to get practice with them and kind of get some intuition behind them or you could just try implementing your solution with link lists and arrays and then seeing which one is better. So there's also other versions of malloc that actually initialize value for you.  So there's a function called caloc. Don't ask me why it's called that. I don't know. So it takes two arguments so then typically it's used to initialize like dynamically allocated arrays. So it takes two arguments the number of elements you want in your array and then the size of each element so it will do the multiplication for you. Again, don't ask me why they wrote it this way. I don't know. And the benefit of using this function is it will actually initialize all of the memory to zero. So if we look at that so we can see the difference. And I was looking at the piazza posts over the weekend there were a lot of them and a lot of them were like random memory bugs of like, hey, I tried this on ECF and it didn't work. Typically at least most of the cases I saw that were asked to me is someone didn't initialize memory and they just got lucky somehow. Probably happened, if it happened to you, yeah, it kind of sucks but this is basically like what happened. So if I malloc say for integers and I print it, well, technically it should be any old random value, I don't know what the value would be but if I do the same thing, if I use call lock so I give it length, number of int and then print that array well then the first one might be random, the second one might not be random. So if I go ahead and do that looks like the first array that I got from malloc whole bunch of random values that all happened to be the same and the second one is they're all zeros but the bad thing about using the first malloc example is all these elements could have been zero and they could have been zero just to downright luck and if you depended on them to be initialized to zero well, if you tried it on ECF which did not do that because it's not guaranteed then guess what your program didn't work and it crashed and it did some weird things. So if you need to add this so it's something else you know so if you want to make sure you initialize everything to zero you can use call lock it will guarantee initialize everything to zero for you because here let's say let me do a bit of magic so malloc all right so I just played with my operating system a little bit so that code I didn't actually touch that code right looks the same as before so I just have a malloc and a call lock all right so now when I run it now so if you depended on it now your program works by sheer luck I just tweak something in my operating system that I won't tell you about but there's basically a way to just make see screw with random values where it can so now if I depended on zeros hey my program works didn't change my code at all and well that is the bad thing with using undefined values is because they might work sometimes if they work probably won't realize it and this is what makes C programming especially really really hard so any fun questions about that so another thing to add to your repertoire so before it was just malloc and free but now you have realloc if you want to resize your allocation and have it copy all the old values and any new memory from realloc it's undefined just like malloc but if you go ahead you call the array ahead of time while all the uninitialized values will be guaranteed to be zeros no matter what all right another fun skill you should know no all right so there's another data structure because if you resize an array often you might be like oh you might want to keep track of like the current length of it maybe in some you might see this again when you look at like C++ or other languages that kind of support a dynamically sized array so a vector is basically a data structure for an array that we resize and we always keep track of the current length with it because like a link list we kind of want to keep track of everything together in a structure so we can create a structure called a vector so that can keep track of like a pointer to the array typically they just call it data maybe the number of elements in that array we could call it length and maybe just for like optimization we could have another field called capacity which just keeps track of the number of valid elements we could use and the reason we might want that is it could save us some calls to reallocation if we want to be like lazy about it so this just keeps track of the capacity and holds everything so similarly the link list we could create a vector dynamically so this looks a bit ugly because to create it we could dynamically we would malloc the structure itself so we could malloc the size of the vector so that would hold like the pointer and then the capacity and the length and then we could initialize the data to hold that number of integers so we could malloc length times the number of integers check that you know we actually had memory for it check that it's not null if we ran out of memory we'll just exit our program and then we could set the length to the length and the capacity to also the length because we can hold that number of elements and then return a pointer to the vector now if we want to resize a vector we could write some code that looks like this so we could write vector resize that takes a pointer to the vector as the first argument and the new length and this is one thing that could save us like we might want to do this for some program so if we're making it smaller so if the new length is less than our capacity maybe we want to just not tell C that we want to make this even smaller we'll just note that our new length is shorter now and we'll keep the capacity the same so that if we want to make it bigger well we don't have to call realloc or anything like that it's already there for us for free again this is like what makes programming fun because that might be a good idea sometimes might be a bad idea some other times it's just optimizations we might make and you will get more familiar with this as you write bigger and bigger programs otherwise if I want to make my pointer bigger well I could call realloc like before give it the data then give it the new length and then check that it doesn't we didn't run out of memory and then I could record the length as the new length and then the capacity as the new length because I just made it bigger so any fun questions about that? so fun things I could do with it now is now it kind of looks a bit better so here I could create a vector of length four which is basically just a dynamically sized array that's all nicely packaged together in that structure just so it's a little bit easier to use so I could create length four and then to iterate through them well we know how to access pointers in our structure so it would just be like a for loop before but now that length is actually kind of associated with that vector so we don't have like a random pointer and then a like array length int and we have to remember that they're tied together so now that they're in a struct they're tied together in the struct and probably a lot less error prone so we can actually go over the length of the vector and then to access all the individual elements well we just access the data field that's a pointer to an int so we can just use the array subscript like we used before we could set it all so that in the array at index zero it's equal to one and then so on and so forth we could print the vector and then we could resize it so we can make it seven and then print it again so it should show like one, two, three, four then zero, zero, zero then we could make it smaller we could shrink it back down to three and then it should just print one, two, three so if we run something like that whoops, should look something like that makes it a bit easier to use a dynamically resized array just keeps track of everything like LakeGlyce it makes things a lot nicer to use so any questions about that probably not useful in this course but might be useful for you later especially if you have, you know lots of different dynamically sized arrays floating around in your program all right, looks neat some stuff that is outside the scope of the course so now just to make sure we understand stuff we can do a final question on linked list because you'll probably get questions like that so here is a question from the final in 2022 says write AC function called reorder the prototype of which is given below that reorders the nodes in the linked list such that the nodes with the value zero appear at the front and the nodes with any other integer value appear at the end of the linked list while maintaining the original order of the non-zero nodes so they give you two examples so if your input is zero, zero, fifteen, zero, zero, thirteen, ten then all of the zeros should come before so there's four of them so it should be one, two, three, four and then all the rest of the numbers should maintain the same order so should have fifteen, thirteen, ten and then second example for a list has one, zero, nineteen, zero, zero, five, zero well, same idea, all four zeros should go to the front of the list and then the other one should be maintained with the same order so we should get one, nineteen, and then five so it also says you're not allowed to copy or modify the data member of any of the nodes so you should be able to just reorder them without creating new nodes, without deleting nodes just by rearranging their next pointers or the head of the linked list in order just to reorder them so they tell you that the prototype is just reorder, link list they like doing type defs with like capital letters I like to, most C programmers like doing them in lower case with underscores between them and then underscore T at the end again, personal preference up to you this is more of the case you'll run into in like Java or C++ but just comes down to personal taste doesn't really matter let's think how we would solve this for a second and then we can try and take it up all right anyone want to describe an idea don't have to use code or anything for it so I could go through the list keeping track of the last non-zero pointer and then if I encounter a zero I put it after that one okay so that sounds good so I could go through the list as soon as I encounter a zero I could be like okay well I need to move that to the front of the list or behind the last non-zero so in this case there wouldn't be anything before it right so I could be like oh well if it's already at the front of the list shouldn't really matter that much I probably don't have to touch it if I have a zero here well I could move it to the front of the list in this case I could leave it alone if I have a 15 okay it's already ahead of the zero so that's good hit this zero and then yeah easiest thing to do I could try and move it before the 15 or what might be a bit easier is just to move it to the front of the list so I could like the order doesn't really matter so in that case yeah I could and if I hit another zero I could move it to the front of the list and then make sure that I keep track of the last non-zero value which should just be whatever the last previous is if I moved it to the front so it should be 15 so then yeah I just keep updating it like that and that seems like it should work so let's try coding that in the last five minutes so I went out and I wrote a test thing so it gives the two examples so our input and then our output after the reordering right now we haven't written anything so it does the same stuff so now here in our reorder well let's keep track of previous and then current can start at the list head so we could have our normal while loop so while the current does not equal head or sorry null could iterate through things check if the current value is zero if it's zero then I want to move it to the front of the list right so if I want to move it to the front of the list well what should I check so first thing I should probably check is if if previous is null well I probably don't need to do anything right previous is null means it's the first thing in the list means I don't really have to do anything at all so I can just kind of ignore that so I only have to do something if previous does not equal null right which means that well I've actually encountered something it's not the head of the list or it's not a zero so if previous does not equal null what do I need to do so some things I could do is well current is like I might want to do what I did before and take the next of current save it in a variable so that's currents next right and then I also want to move that to the front of the list so if I want to move current to the front of the list well then I have to set the currents next equals to the linkless head whatever it's currently pointing to right and then set the linkless head equal to current and then I want to set the previous nodes next equal to the old next of this current right so I'm just throwing if it's a zero and there is a previous I'm just throwing it to the front of the list over and over and over again right am I missing anything does this look good so one thing we could do that unfortunately don't have the benefit for in the exam is we could just run it if we run it we have been looped ourselves since we only have a minute you might have to think of this later when you watch it we have to be careful it what's happening here so what's happening here is change the current kind of incorrectly so current is currently head of the list yes so the current node currently still the head of the list is now the head of the list and then here we're pointing to the next element and then eventually we'll run to a zero again because essentially restart the beginning and just keeps throwing itself at the front of the list over and over again so we need to kind of update current to be next and then we could actually use the keyword continue so we don't accidentally run this code that sets previous to current and current equal to current next because here if we move the current node to the front of the list then we don't have to update its previous value because the previous node is still the previous node because we move the current node to the back so we don't have to update the previous anymore so we keep it the same and then we set current equal to next and if we run that it works yay sorry we are out of time so I will leave you with that you can ask any questions later I will be around so just remember phone for you we're all in this together


Hey everybody, Dr. O here. I want to talk about the skin on and in your bones called the periosteum and endosteum here. So the periosteum is going to be this connective tissue skin on the outside of your bones. This is, it's going to help the collagen fibers are going to help actually attach bone to other tissues like the joint capsules and tendons and these kind of things. So it's very important there, but as pre three primary functions, it does isolate bone from surrounding tissue. So it's the skin that goes around the outside of the bone. A number two, it does provide a route for nerves and blood vessels. There's actually a lot of pain fibers in the periosteum, which is why like a hairline fracture where this gets torn, especially kind of jagged Lee can be so painful. Sometimes a hairline fracture can cause more pain than a, than a complete compound fracture can. It also plays a role because as you see there, the periosteum is going to be right next to, and there's going to be some bone cells here. So it plays a role in bone growth and bone repair. We'll learn about bone growth later, but if there's a fracture, the osteocytes in this area can actually become osteoblast and participate in, in bone repair. So those are going to be the primary functions of the periosteum. Just think skin around your bones. We covered a couple of chapters ago that this is dense, irregular, connective tissue. The endosteum is going to be the skin that lines the inside of your bones and the, and especially your spongy bone here. It's incomplete. It's an incomplete layer, but it does have a lot of these bone cells. The osteoprogenitor cells, your bone stem cells, osteoblasts, et cetera. So it plays a large role in bone growth and repair, but we generally don't talk about that as much. So the periosteum thinks skin on the outside of the bone. Endosteum, this incomplete skin on the inside of bone, and they both play a role in providing nutrition to bone, playing a role in bone growth, repair, and protection. All right. I hope this helps. Have a wonderful day. Be blessed.


Hi everyone, thanks for coming for the first lecture on the MS-CDP Conversations with Practitioners lecture series For those of you who don't know me and it looks like there's a few so there's a good amount of potentially AAD students here My name is Adam Vosberg and I am the assistant director of Computational Design Practices along with Laura Kurgan Who is the director of the program and then for those of you who don't know the program itself? CDP is an MS program and only a second year they introduce as students to a range of possibilities for design work at the intersection of architecture urbanism and computation It mixes critical perspectives on computation and practice with a commitment to design and action in multiple dimensions social political technical aesthetic or This lecture series is designed to introduce students to practitioners who are working with computation and various media and subject matters At a wide variety of scales and the spirit of recognizing exciting practitioners that are doing this work There is no better person to kick off the lecture series than Currie J. Hackett Currie Hackett is a transdisciplinary designer public artists and educator his practice wayside synthesizes cultural and ecological narratives to envision meaningful work in the public realm Noteworthy projects include the Howard Theater Walk of Fame and the DC High Watermark project Hackett began his academic career in 2019 at his alma mater Howard University in a sense taught at Yale University Carlton University City College of New York University of Tennessee Knoxville and as a core member of the anti-racist design justice school dark matter you Currently Currie is completing his master's of architecture and urban design at the Harvard Graduate School of Design in 2022 Hackett was named the inaugural Journal of Architectural Education Fellow and a finalist of the Harvard GSD Wheelwright Prize and 2023 Hackett won the Association of Collegiate Schools of Architecture Creative Achievement Award for his subjective water studio which explored black culture and water and was named a grant See by the Graham Foundation for his ongoing research project try long so which explores relationships between blackness geography and land Personally after seeing his High Watermark project in a couple of places I first consciously came across Currie Hackett's work and his collaborative essay with Charles Davis the second on E-Flux architecture Since then I have been following of the AI black history series on Instagram Which really stood out to me among the low deluge of content created by genre of AI tools as an exemplary example of what this could do for us So without further ado, we'll get we'll have a we'll get started We'll have a brief Q&A afterwards to make sure to take the opportunity to ask some questions or share thoughts about Currie's work Thanks for good for coming and join me again and welcoming Currie Hackett Everybody good afternoon everybody There we go. All right Thanks again Adam for that lovely intro. I'm the guy on the poster. You didn't know I'm gonna talk to you all for a little bit about I'm a start off kind of just talking about what Who I am where I'm from why I think the way why I'm like this And then I'll get into a little bit of the work Some of the built work that Adam mentioned that kind of situates how I've been thinking about How data both qualitative and quantitative starts to show up in my work and then I'll maybe kind of wrap up with a Few thoughts on some AI experiments that I've been doing you might have seen some of those on Instagram Yes, let's get in So I always like to start with Just to be a bit autobiographical for a second and and it I think will help to kind of Situate the work a bit But I grew up in a small town in southern Virginia called Farmville It's probably about 20,000 folks in the county My I grew up actually near my my family's farmland that we've owned Since about the reconstruction era of 1870s or so at least to my to my knowledge This is a photo me on the right of me. I guess me helping my great-uncle feed the chickens But I I really love kind of starting off with talking about this place because It really kind of stitches together so much so many of my thoughts around place memory Imagination resistance agency all of those things in my kind of fascination with plants all of that Is kind of collapsed onto this hundred acres or so of land? That you know this stretches several generations And so this is this is just a very special place for me I Left Farmville in 2008 to go to Washington, DC Which is another special place Went there to go to Howard University For those that don't know Howard is predominantly an historically black institution in the kind of heart of DC Was founded in 1867 and I went there for architecture school, but was really fascinated with how You know, this is just this I kind of almost like a magical place where so many different kinds of black folks Show up from all the aspects of the diaspora black folks that are speaking five language languages black folks playing chess black folks from Kansas black folks from the projects black folks, you know Literal African royalty. I'm not kidding You know, you might be sitting in class next to someone. There's their father is you know the ambassador to Jamaica And so this is like all these different aspects of blackness that kind of kind of get collapsed into this You know a few acres of campus in the middle of the it's just a funny moment That was hilarious when Drake Kevin came to campus That kind of you know against this together so many aspects of Blackness and really kind of expanded my understanding of what blackness is and can mean and I like to put these two places farmville and Howard and contact with each other because They constitute what I and I think many others have called a black landscape. So essentially the idea is This land or a place that's designed and built For and by black folks right for for a variety for kind of that Enable sort of a multiplicity of things to occur But also I think for me it's it's useful to not think of landscape the black landscape not necessarily is something as just flowers or farming or plants or The literal land But it's I like to think of the black landscape as a kind of repository or a substrate for memory and imagination And and meaning and and memory and all that good stuff. So this is just me kind of starting to Think into Thinking to like why like how and why I want to have research and practice and teach right a Lot of that thinking on the black landscape has kind of shown up in a lot of different ways particularly in My teaching of the last few years both the how and the what I you know was teaching I In 2020 joined The dark matter you a network several of those members actually teach here at G-SAP Jalisa Bloomberg Is one Jerome Hayford who used to teach here is another I co-taught classes with both of those folks The one on the left was a studio module that Jalisa and I co-taught at Carleton University in Ottawa That was called for with an individual practice towards collective expression The other was called fugitive practice and these are both sort of I'll focus on the studio the first iteration of that studio, but these are both looking at sort of Putting that idea the black landscape kind of into practice right and and looking at in the studio's case looking at black Diasporic modes of performance to kind of unpack new sort of emergent means of thinking about place about urban space And then on the right was more so looking at black sort of in the knit and indigenous material culture like craft We looked at quilting and a bunch of different things This this is some of the outtakes I guess from the syllabus of the studio where we gathered a bunch of Black sort of means of performance from all over the diaspora Jalisa is coming from the Panamanian context, so she was bringing some really cool like Afro-Latino Tropes from from South to Central America. I'm from obviously the American South So and she has been a good time and amount of time in Texas We were we were having a lot of fun inviting the students to find value in the black every day or the so-called mundane the so-called banal these were some of the Some of the drawings that the student we had the students do to sort of impact the Sociospatial sort of sociocultural potential of these different tropes double Dutch This student created a notational system for go go or beat beating your feet Which is a a dance done to go go, which is a very hyper regional Genre local to DC And then I landed at the University of Tennessee in Knoxville Which was very very different than teaching at Howard Which is where I started my career teaching career Mostly black students actually all black students mostly black women Teaching you know at Howard and then a very white state school in the mountains You know in Tennessee, but nevertheless was still Invited and empowered to Think really critically about how again this black landscape idea kind of gets put into practice and also just having fun with the idea of This notion that black city is kind of beneficial for everyone it's beneficial for for for every aspect of the discipline and we can think really We can think really radically about what You know how we produce place how we how space gets transmitted into place And there's a lot of richness and sophistication and looking at the black every day In other words every day means of culture production and kind of every every day black life How like what is the value inviting the students to find value in that in that those cultural kind of products? Typically, you know in a lot of black culture diaspora diaspora culture. There's less concern for Sort of hard boundaries between indoor and outdoor Public and private individual and collective And so these were two of those courses that I taught at the University of Tennessee The one on the right, but I'll focus on a little bit. This is the subject of water studio In which we looked at Water and how water shows up in different ways in black culture be it the You know things like pearls and waves and sorry waves and hair Or is drip you think about ice and jewelry and kind of decadence and a lot of black especially southern culture but also Water as a kind of as a geographical feature and and how loaded Things like the Atlantic Ocean is for instance and in black history We used a lot of kind of collage as a verb that semester it was a lot of fun getting the students to Think and kind of world-build in a way that was Liberated from you know Euclidean geometry and and and things like perspective and scale and Really just kind of be dreaming and optimistic. We and we started off with this kind of curated playlist of different songs by black artists that mention water in different ways and All of this is just to get the students kind of comfortable with Working in these kind of messy live Ways on top of each other hyper collectively and again kind of like using Black means of culture production kind of mapping that on to Contemporary sort of or traditional architectural Education methods to kind of crack open new ways of learning new ways of making And then finally we ended up with this sort of We ended up imagining like a community for like 500 people from scratch and The final review actually was still kind of a charrette And this is just funny the students surprised me by putting me in all their drawings That that was the thing Anyway moving on So I have been since about 2015 Started a practice wayside which as the name maybe suggests is ultimately a kind of ongoing effort to unpack Value of you know the everyday a value of Trying to surface under recognized narratives marginalized narratives As I've been saying more recently I think of wayside as a kind of celebration not only of the margin but also of the marginal and the marginalized and so that typically ends up showing up in Public art city commissioned public art up to this point in DC The first major work of that was the Howard Theater walk of fame. This was a Major or the city's second largest public funded project In recent memory. This was down the street from Howard's campus in front of the Howard Theater The Howard Theater you can think of it's kind of like the Apollo Theater of DC It was like a that kind of anchor of this black cultural record or used to be known as black Broadway at that time And so the city wanted to honor that history with a series of 15 bronze medallions that Depict likenesses of folks like Ella Fitzgerald have Calloway So it becomes this sort of wayfinding Device and in the Shaw This is my first sort of foray into trying to Consider culture in a really robust way and then trying to translate that directly into the streetscape I think this second project the high watermark project, which is sort of ongoing I think this is really the first time we're like big D data shows up in my work We were commissioned I was working with with a fellow Patrick Madonna fellow educator and artist Patrick Madonna We were commissioned by the city the Department of Energy and Environment to Envision a system of Wayfinding kind of markers that would be installed at various points within the DC 100-year floodplain And so these are actually one-to-one kind of sculptural infographics that are actually showing the both historic and future Flooding scenarios and so they're kind of color-coded to show just different different histories and Possibilities to kind of bring promote Environmental literacy and and flooding awareness in DC for those red ones there are actually historic Markers, whereas the yellow blue and black are future scenarios This is the more recent one that was installed at the wharf This one this one. I think it's like 15 feet high off the ground. So the water could get that high at a 500-year storm And so this was I'm a really fascinating project to work on we actually end up we're working really closely with the Army Corps of Engineers They supplied a lot of Data that they had modeled like a lot of like depth grids and stuff to try to And we you know work with us and we our goal of the project was ultimately to You know consider ways to like how do you image? Flood risk, right? It's ultimately a kind of It's an unseen thing, right? You don't see a line along the ground that says this is the hundred year This is where the hundred year flood line is so how do we how do we try to communicate a parent risk? But also, you know invoke action So this is these are one of three that are installed in the flood in the floodpline really fun project Next is Dias Flora, which I think was the first opportunity for me to try to braid these The previous project was sort of like an ecological concern this than the one before that was a kind of More forwardly cultural narrative that we were trying to bring forward whereas this one tries to do both of those and so we were using plants and The census data to Try to illustrate Certain migratory patterns within DC namely the movement of black folks Into and out of DC over the city's founding So what you're seeing is this kind of linear contour in the background creating a sort of fence is Actually the census data for the black population in DC since its founding in 1790 all the way up to I think 2010 Was the most recent census at the time and so what you can see at the beginning This would have been you know kind of the colonial area era of DC And then rose to almost 70 something almost 80 percent at its at its height in the in the 70s So DC at a certain point. I think in the 50s became I believe the first majority black city sort of affectionately known as chocolate city in in the country and You can see as the last couple decades has been tapering off And so we were trying to make a comment about gentrification and who actually has a right kind of to the city Yeah, and so each of these bars indicated a decade that profile there and then to simulate that movement of people We invited people we invited community members to kind of come up and take Plants away take home take plants home with them. So it was kind of trying to simulate this sort of regional diaspora That we were that we were sort of speculating on And that takes us I think to this sort of ongoing project that That I've been working on dry long. So dry long. So is derived from the gala gucci language down in Mostly in well in South Carolina, but this word also shows up and lose music throughout the the Gulf Coast and It basically just means same old or every day. I Sort of this is me sort of trying to draw a line around where I think the south is But I have kind of interpreted the dry long so as the ordinary black every day right and and all the stuff that is bound up within everyday black life There are quite a few folks that have been thinking or have invoked this term to think about black Ordinariness and and the sophistication and the kind of profoundness of of those activities the first one This word actually was introduced to me through my professor at Howard My theory professor Howard William and Wesley Taylor and he was looking at Everything from jazz clubs to porches and trying to unpack The sort of sociocultural potential in those those spaces John Langston Waltney was also looking at He interviewed a you know a bunch of what he called dry long so black folks across kind of working working-class black folks to try to constitute this multi-valent account or multi-valent registration of Blackness in the country and then Colleen Smith who has a film of the same name who? Is basically sort of grappling with the messiness and the complications of black life specifically in Oakland this project Ultimately landed in sort of my first iteration of thinking about the specific ways that black folks interact with land and and in this case I end up Being you know sell a bit self-referential and situating this work directly in my hometown back in Farmville or in Prospect which is sort of a village outside of outside of Farmville And was essentially did what John Waltney did which was call back home literally phone calls Back to several members of my family all women To try to unpack, you know what it meant for Certain members of my family to grow up near that farmland and what does it mean? What did it mean for them as women as mothers as daughters? and and what Can that offer us for me? I guess it was it was more so like a Me inviting myself to try to discover value and what does it mean for black folks to occupy space? What does that mean for the discipline? What kinds of? things can be learned from from from black folks just kind of occupying space on a college anything And so I called my grandmother, you know everyone from my grandmother who was 95 at the time down to my sister who was 25 at the time And created these translated these oral kind of histories these yes, you would think of that as kind of qualitative data To try to understand or try to unpack this sort of or create a kind of thick description of Black what it meant for a black landscape in the south and then sort of just created this Exhibition it was part research part exhibition in this gallery space Projects really personally And then I guess So I went back to school. I'm in school now. I'm at the GSD and What's been funny is I've been having I've been having a lot of fun as I was saying earlier not sort of performing as a student and also thinking about ways that I can Ensure that this time of you know that I'm back in school is Ultimately relevant to all the stuff that I've talked about And so every opportunity that I've been given or have taken has been an opera it has been sort of a case study in me co-opting sort of assignments and prompts to to think really critically about like how black folks take care of Ourselves how black folks show up in the world how black folks Just just how we how we gather how we how we share and produce knowledge This was a project that I did with the classmate Kiki Cooper in which we sort of sourced the black GSD what's that and Just asked this mind all of that all those conversations for the different ways that black folks For the GSD in particular care for themselves. So everything from obviously Boston at the most diversity Where do you go? Where do black folks go to get their hair done? Where do black folks get their nails done where you get their hair cut?  To socialize and then we started to try to think about how do you map? How do you map this? How do you map essentially what is kind of an epistolary? format Over over space and over land and so this was our attempt of trying to map What we were calling kind of black networks of care in the Boston region using the GSD kind of as a data set And then this was a set of journey maps where we literally looked we interviewed Various peers of ours and think you know just to try to get a sense of What does it mean for them to come from all the way from Cambridge to get all the way down to Matapan to get their hair done? sometimes often taking hours because of the it started to really show lack of transit access and just the amount of labor right that you have to do that to Take care of one's black body in a city like Boston So this was this was really just us I think trying to on the one hand celebrate the means that black folks take care of themselves But also highlight the barriers that that show up when when we when we do have to show Kind of take care of ourselves within a kind of white or non-black context this project I think I'm hoping I have an opportunity to keep studying a lot But this project was actually part of a course that I just finished with Daniel Choi Who was in teaching in the landscape department at the GSD taught environmental histories archived landscapes and this class Was ultimately an invitation for us to sort of demystify the archive and demystify these kind of hyper institutional spaces that don't really seem inviting and ultimately kind of historically have been these kind of gatekeepers of Information and to not only you know take up space in those in those kind of institutions of those those aspects of of the institution but to Start to think critically about what we can find in some of these collections that are sort of tucked away into these kind of dark and dusty parts of the Libraries and so I ended up finding this Set of letters that was written by a black family the Carter family in the 19th century Actually between back and forth between Gloucester, Virginia and Richmond, Virginia, so not just an hour from my hometown Polly Carter, which is what this letter here is from was actually an enslaved woman and a plant on a plantation in Gloucester, Virginia Who was writing to her son? Hamilton Carter this gentleman And so there's this collection of like this kind of consolation of people It was almost just like writing reading emails I but like written in the 19th century at a time when actually black folks weren't allowed to read or write and I was really just kind of fascinated by the different means of Sharing that became kind of emerged in the reading of these letters So in one case the mother asks her son if she can if he can send his father a bit of tobacco On the other hand she mentions that you know her white mentions her white family, which I thought was really interesting And so as I'm studying all these letters And I'm like kind of looking through the the the artifacts themselves. It becomes apparent to me that this Act the act of writing And the paper and the ink that was implicated in this this this collection Certain aspects of this would have been illegal or would have been hyper political because of the illegality of You know, not only black literacy, but the sharing of black of information in this in this way And I wanted to just see what have what kind of questions what happened what would emerge if I just tried to map The mobility of these letters So this is me sort of just trying to understand the collection and index the collection. So in this case the the dotted lines are Where letters are leaving from the dash lot the solid lines are where letters are coming in you can see most of the letters Are going from Gloucester to Richmond with a few outliers And in this case, I'm trying to actually map the kind of this is like a sociogram of like Who's sending letters to whom against a Hamilton Carter is the is the main person in this the system of exchanges? The lines that are coming into the left of the names are like, you know Those are the letters that are received once to the right of the names are like the ones that are going out So you can see in this case like a lot of people are writing to Hamilton But he's kind of leaving a lot of people on red so to speak that many letters going out And so this is you know I'm just really fascinated by like how all these black folks were able to Write to and from each other over such a long period of time again Some of these letters were stretching from the 1850s pre-American Civil War all the way into well into the realm read the reconstruction era And I'm again getting fascinated with the characteristics of the paper itself and it occurred to me You know, how do you how would I what is how do you surface? the Elephant in the room, which was like how the black folks getting paper to write this stuff in the first place and that kind of became the impetus for this Final study, which was what if black folks made their own paper? And so I ended up trying to speculate on that question when I end up making my own paper Out of things that they might have had on hand things like collard greens and okra and mugwort The one on the left is the one without Recycle paper at it. So it was almost like dried kale was very fragile and lacy the one on the right Incorporated recycle paper and resemble something more like paper But it occurred to me that there's so many things in the making of this process There were so many things that you could encode the paper with without even having to write anything you could alter the color You can alter the amount of recycle paper you can alter the fragility and so, you know, I think It was for me this project illustrated how sort of just the act of indexing the act of trying to Make something make it make data out of apparently not something that doesn't feel like data How that can kind of pose some really interesting questions and how that can sort of invite speculation Which is what I think kind of sets sets us up for the what I'll what I'll speak on the last which is AI stuff So I've been I've been really fascinated by Stephanie Dinkins work who has been I think thinking really critically and has been Doing some really timely writing and practicing on the intersections of race and Artificial intelligence and how we can use AI to I think kind of repair Narratives as they pertain to blackness, but also speculate on features that aren't there were not That black folks just for one reason or another were not are not able to realize or we're not able to realize and so this this this This idea that we can kind of you know speculate freely She refers to as sort of an Afro now is I'm like speculating on the current She says how do you know what like after this idea of Afro now is I'm asked is how we can liberate our minds from the infinite loop of Repression and oppositional thinking that America imposes upon those of us forcibly enjoying to this nation And so the question that she's posing is not only what injustice are you fighting against but what do you in your heart of hearts? Want to create right so that's the for me That was the paper that was kind of an analog act of Afro now is we try to speculate on the current I've been putting that idea of Afro now isn't meant to practice by Again looking at that my own lived experience looking at home looking at certain tropes of black culture That for me Well, I think for many maybe seem kind of banal again or mundane or but for me actually seem quite profound and if not cut You know although customary. This is a photo from Farmville from Prospect from that farm And this is a common shrub that you see throughout the South of folks just black folks just repurposing things as planters So this is a bathtub a sink being in prickly pear which Yeah, just growing growing out of out of these fixtures And I thought what if this was Just a custom. What if this was a custom that you would see in Harlem? And I end up creating these scenes using mid-journey. So this is me just trying to think again like what? What life looked like if black folks were left to their own devices and allowed to live in abundance and I think what what I've been realizing is that this is Is I think different than say Afro-futurism, which a lot of folks have used to describe this series of work Futurism, I think for me Extent like is trying to look at the distant future At which point everything is kind of on the table for speculation We can kind of make up what people will be wearing We can make up what people what the world will look like what the politics will look like with the governance We'll look like what what what languages people will be speaking we can even look to the distant past like historical fiction and and and So to speculate on what already happened I think for me it's a more interesting and maybe even harder project to think that what does it mean to be nostalgic of the Now and what does it mean to speculate on the present? And I think that's that's really what I have been Having a lot of fun with kind of braiding past present and future and kind of collapsing them into this moment These scenes that are kind of hard to place in time Another gala-gi-chi reference this is a common custom again in South Carolina this practice is done Where these these women are mostly women are braiding baskets these really ornate baskets out of Sweetgrass, but sometimes also pine needles and other plant-based matter and I Was thinking like if these women have this this knowledge that they've been carrying that can be traced back that is traced back to the Actual continent that they've been harboring for for centuries Why why keep this this knowledge at the scale of the object of the scale of the basket? Why can't this knowledge be scaled up to let's say a wall assembly? Or I like wicker homes or a wicker wicker facade or sweetgrass This is a Gordon a lovely Gordon Park's photo just showing I think or highlighting the richness and the importance the prevalence of the front porch and southern black culture And obviously this is a kind of a natural sort of Customary extension of the of the home using the same materials in this case wood But what if it was something else like inflated plastic? So again, just having fun sort of being a little bit absurd but not by much like these are all things that are plausible again if black folks were allowed to Just kind of live sort of on their own terms and then lastly I'll share this trip that I've been I've been thinking about a lot which is stemming with stemming from the sort of prevalence of watermelon as a kind of shorthand for black laziness black Audacity as it's been kind of weaponized in the 20th century and in the Jim Crow South in particular Watermelon has kind of been used in this like you know racist way to the point that it almost becomes Shameful in certain contexts for black folks to consume watermelon in public and so I I To kind of push back against that trope and that in that history I sort of used mid-journey to envision Obviously watermelon spoke because they're mostly air and water What if they were just you know hundreds of these were just floated down the Anacostia River and it's kind of joyous Occasion so I For me, I think this is these are opportunities for For black folks also to imagine I think for folks that are not black to even imagine To think of ways that they might feel hindered by some certain aspects some aspects of the world or how they show up in the world and And think of ways that they can kind of push back against against that Against those forces and then to I guess to wrap up here. I'll just share about 50 seconds or so of audio from the dry long so oral history project. This was the conversation with my mother That I think helps to he she shares a lot of the sentiments. I think that for me animate a lot of Sort of importance of this work and why I like you're kind of illustrating what's at stake I think for me and a lot of the work that I've shared all the day It's Sitting here talking with you run, of course brought back so so many memories and Questions along with it and the food It's not over till it's all said I'm still growing. Yeah. Yeah, I love that Yeah, still going to instill the instill things in you and instill things and care So that you won't forget Thanks so much for the presentation curry from my point of view It's like it's so great to see some of the back story behind some of these images But then also just like there's a bit of a through line through your work at least for me of Whatever kind of subject matter that you encounter tools or data sets whether that be water lines or you know Census population statistics or even tools like AI. There's like a an impulse in you And always to like route it back to kind of like place and people and culture and that's like it's great because it's like that kind of tools the subject matters the Collaborations they never dilute the kind of central focus which I find super interesting Okay, so Then I'm gonna turn it to the room I have a mic over here if anyone who has a question could please raise their hands and I'll run The mic over to you. Hi. Thank you for your presentation Thank you for your presentation I Have a question before you mentioned after Afro futurism as being Something more speculative and being in a distant future But for Afro now is him I would I would ask like aren't don't those two concepts that go hand-in-hand because A lot of it is like what is a scenario so I Want to hear like what you would say like the biggest similarity for you are between those two concepts Yeah, I think that's a good point. I mean I think It's really more it's a it's a matter of scale, right? I think it's Sometimes I feel like these things the series that I'm doing they could happen tomorrow Happen next year. They could have happened 30 years ago But there's there's this kind of plus or minus, you know 30 30 years, but it's relative to the present. I Think Afro futurism for me at least how it shows up in kind of pop culture like what kind of obviously kind of comes to mind as this kind of almost otherworldly like we It just it feels like Like a place that we have to invent the kind of access, right? It's not something that I could like I couldn't I don't feel I don't have the sense that I could get on the plane Light of a condom, right? That being said, I think what is important is the intent behind both of these kind of schools of thought Not that they're even mutually exclusive exclusive, which is not really how I want to frame them But it's really like they're both in but like they're both sort of Giving permission for black folks to dream. I think is really what the underlying point is there Because I think to imagine what liberation can look like for black folks You kind of have to think beyond what is possible or what is actual and so I think There's certainly in dialogue with each other. I think for me, you know, it's it's really helpful to use It's really helpful to use what we already do and Just scale them or place them in ways that are a little uncanny to sort of unlock get folks that may have not seen this or may have You know kind of just kind of brushed off the the significance of being able to grow plants in a bathtub or that you know Or the place making us to say the place making potential of growing plants in the pet and in a bathtub for me That's a useful device for us to think in a kind of futuristic way The answer your question. Yes. Thank you. Hi. Thank you so much. That was really beautiful to watch I had such a similar question. So I had to quickly formulate another one But I'm really curious how you reconcile both this now is him and this futurism and the overall black narrative in the context of broader issues that take something like climate change And I'm asking this coming from a place of a lot of the work I do is around looking at like indigenous and black economics And thinking about how that might be applied to say like post-capitalist modes of being at a hyper local level my question is how do you reconcile that and recognize the lessons that are to be that are that we can learn without fetishizing The black experience because I think that's something that comes up a lot and to give like a very specific example In my work even this question of like we can learn from indigenous practices still feels like an other ring And so when you have conversations like this in broader contexts I'm thinking of like the work that you did in DC with the water levels and stuff like as your Those concentric circles of impact get larger and larger and what you're studying becomes relevant to other issues Non-black issues if there's such a thing How do you avoid that fetishization? How do you continually have that dialogue in a way that is? Reflective and accurate and and dynamic. I don't know if that makes sense. I hope that makes sense I think so. It's a really great question. It's something that I thought about a lot For some of the reasons that I mentioned right and I'll use an anecdote as I in a way that I hope answers your question but when I first got there and I was first saying, yeah, we're gonna be talking about black stuff That's just what we're gonna be doing this this semester and The first question in almost every class was so are we creating black architecture? And I was like, no, I don't think that's possible Because no one here is black So The point is like that's not actually the point is to like make a black architecture, right? It's it's more so to like study what? Study with rigor and with care You know histories and kind of these these tropes of cultural production and try to unpack What is What what is working and what can be kind of extrapolated to a kind of more generic populace So again, I think for me, it's it's it's it's useful for us to think in ways that again those blur those lines between public and private Domains or indoor and outdoor that means that that's for me that you could easily like map that onto like an architectural context and that means all of a sudden we have to start thinking about property and Do we give up on on property and models of ownership? Do we give up on hard encodings of space, right? So I think there's ways to distill what black folks are doing in certain contexts and and and Just think really smartly about How they could be useful and getting us to think really radically about again modes of governance modes of our ownership modes of stewardship I don't know that it has to be a kind of one-to-one I think it almost has to be a kind of maybe a necessarily appropriate of act Hi, yes I just wanted to reiterate how beautiful this presentation was and how awe-inspiring and I've never heard of the term Afro-analysm and now I want to use that in everyday conversation But I really appreciated your dedication to Visualizing data in the beginning of your earlier projects kind of our rendering graphs as fences kind of as like playground material And this like very specific. You have this very specific attention to like visualizing Data, but also kind of like climate risks, and I just as someone who's in architecture school I'm just very curious like what is the next step beyond visualizing We're seeing these beautiful moments of just like what it looks like to experience afro Afro-analysm and these images We're seeing sort of this extrapolated data where you're kind of zooming out to the scale of like a map And it feels like I want to find that space in between from going from like visualizing these very specific moments to I Don't want to say action because you're taking action, but like what is the next step after visualizing? Has come up or those thoughts have come up more so with the AI work because at the end of the day these are all Visual speculations I do think as you're suggesting there is a lot of richness and maybe timeliness to the act of imagining So but a lot of folks what I The detractors in the comments making the hot takes on Instagram One of the main commentary towards the beginning of this series was that oh there's real history that you know what you know Like you shouldn't be fabricating blah blah blah But I was like well no there's there's Black folks in the future too and so we kind of have to imagine we have to kind of imagine those and so I am Fascinated with the possibility of these things actually just becoming These scenes is becoming real of the potential for these to become real I When I first started just putting these out in the world. I thought that they were just kind of stay Sort of objects like or images they wouldn't you know folks wouldn't actually literally be inspired to Literally do this in Harlem, but a lot of folks have been saying actually no I want color greens in my wedding bouquet or I you know, I'm really interested in using quilts now as a tent church in the woods So a lot of these are other series that I have on the Instagram series, but I think What my suspicion is from the I guess what what my sort of thought is now on we need to kind of imagine in order for Action to become possible or real is kind of starting to bear out I think folks are really just wanting to find ways to put these scenes Directly into practice. So for me, that's enough if literally any one of these or any aspect of these became true Then the kind of moot the the point of like we have real history You should be doing that that becomes moot because then the thing becomes history, right? Is that Okay, okay. Thanks. Thanks so much. It was really inspiring as it can hear from all the questions, but I'd like to for a minute bring it back to since we're the Masters of computational design practices and you know, I think the The reason we invited you was twofold right one because of this amazing practice that you've just defined yourself in terms of your own identity and How there's all kinds of things that are necessary in the world for you to be able to do, you know, too Yeah, and then but the second is about Computation and and all of these tools and so I notice on the one hand a backlash against computation in in you know going back to the basket weaving and the right right all of these reclaiming tools of indigeneity or Decolonization all of right all of that that range of things but on the other hand, you're very excited about this Instagram network and and the You know and the images are so powerful and fresh and lively and you know, so This this I would love to know The why you're so excited about that that on Because there's so much harm. That's also been done through right these networks right polarization and racism and Hey, hey, you know hate the probably you you don't only get positive comments, right and so I Want to get to the question though, which I'm not sure exactly what it is, but just how you reckon how you reconcile Those those things because for me, it's not about taking this image making it real, right? That's the power of art is not only about It is real and and there's so many things about it that are real enough, right? It's right and like so So I'm just curious in terms of moving forward and especially right you're at the GSD There's all these computational methods and you say I'm going to map that like how do you how do you see these tools as? Amplifying what you're doing or how do you see yourself? rescripting Some of those codes and tools to be able to turn something into a different kind of reality So it's a it's a kind of an abstract question, but I and I don't expect one one answer, right? But I'm just curious like What were some of the bad images that you got before the ones that you liked? You know, maybe right so that so that you sort of get into into the nitty nitty grittiness of the yuckiness of the tools Yeah, I love the you know where we we kind of landed actually is Something that I'm very transparent about on Instagram is I Can put you know, we I end up with these like kind of slick images, right? But there is a lot of labor behind the scenes Not only curating the slickest of the images images, but there's dozens and dozens and dozens of iterations that go into this Yeah, this This is actually a really funny example because when I first tried to make this series Mid journey would not allow me because I thought I was being racist. Yeah Because it's AI powered moderation Was concerned that black and watermelon in the same prompt meant that there was a bad actor that was trying to create some sort of racist And so, you know, there is there's so much labor and and I've been DMing with Stephanie Dinkins actually about this We kind of have shared this frustration is That so much labor to get here is actually just finding ways to either push through or sneak past the kind of problematic defaults or Black folks you put in black people defaults to black men mostly you put in black children. It's mostly black boys So there's like there's still a lot of things that Need to be done my sort of position is specifically to AI is I Don't know that we can put the toothpaste back in the tube So to speak like that this is the technology that we're almost certainly going to have to live with and it's going to touch in the next several years and so I feel like black folks at the very least need to kind of be literate and The complications of how this technology is developed how it's deployed and I ideally influence how it's governed And and so I think for me like if there is an opportunity to use AI and this kind of use case or have you know kind of Invent these kind of use cases for AI. There's a potential Yeah, use cases.  I think are wary of how history is authored And how black folks show up and don't show up in So there isn't I think the tools that we are developing Ideally or ostensibly would also mean that we have more sophisticated means of repairing harm But or I think it's got to be a kind of feedback loop right where there's there's there's ways that black folks have been sharing stories and Share knowledge and produce knowledge that should also be informing those tools that I don't know I have very complicated feelings about this. It aren't fully resolved, but my Sort of takeaway, I guess is that there's there's room for There's a lot of need obviously for repair, but I think It also just means that we kind of need to black folks also need to give ourself permission to be in the room so that we can kind of be Either inventing our own tools for that repair or influencing the decisions that that may or may not kind of Yeah, thanks, okay, so what did you say to me? How did you get my journey to let you like to African-American and watermelon to melon? Oh And it was like being cool. Yeah, it's great Anyway, those stories are great. Yeah, hello. Thank you for Sharing this. Yeah, this beautiful work in the stories with your family and stuff. It's very inspiring I guess I've been trying to like formulate this question in my head Kind of off the back of that like How do you think about like I think a lot of your work has like touched on the relation of Like black people to do digital space through communication means sort of, you know in this work with mid-journey of and how How We sort of show up in systems that are like biased and You know sort of centering how you know systems that like are making a way when there is sort of like the way I guess and You know thinking about how black people also show up, you know other places on like, you know social media and Yeah, I guess I'm curious to like hear How you think about I Guess like black people in digital space You know more I guess like expanding not just from a place of Inspiration like inspiring, you know things to come about but And it was great to hear like You know like also the sense of ownership and I guess authoring systems and spaces that can sort of skirt at like a higher level the The The biases that like disadvantage, you know us from you know creating images like this for example Yeah, I'm curious to hear you like expand on I guess like the role of like black people and Not the role, but I guess like the relation of black people in digital space Just black people in digital space, but what did I say before that? Digital digital space. Yeah. Oh, I say, okay. Okay. So you're saying like what is the role of black folks that? Sort of in creating digital spaces or um, I Don't make sure I understand your question. Yeah Yeah Yeah, you know Like going back to where you know in your class in South Carolina or Virginia or wherever it was of like charting the movement of you know blackness is like this very kind of impromptu sort of like raw organic thing And how that was like how you know you work with students to kind of help like codify that and You know to your project with you know exploring how other GSD members sort of you know like Access other networks of you know people and other parts of the black experience and how you know you were beginning to get at like how You know digital space and Communication tools help connect us to to those Things Yeah, like I guess like do you maybe have a more You have more like thoughts I guess on how You know like that sort of impromptu nature of making Systems work that weren't you know sort of Developed for you know to help I guess create a connection through those communities How does that extend to? Digital space where you know a lot of you know blackness of you know black Twitter or thinking about like Inspiration of the things that help power, you know tick-tock and the black dances and how that you know algorithms disadvantage Creates and stuff like that like I Guess do you have an extension of that thought into digital spaces? Sure the answer is probably no But that's mostly because I'm still Like this work is like so digital. I mean there's also like a lot of kind of work that I'm bringing to myself that Kind of curated or have banked in my head already that I'm just trying to like Recast in a different way And it just so happens that social media has been like a really What I What I think though is that there's always going to be a Kind of emergent or there's always going to be a kind of scrappiness That I think black was already kind of comfortable with kind of making a kind of making do Attitude towards towards life That will kind of that gets mapped into a little space I don't think that those two are able to be troubled and I think when you I think When you even look at it like black Twitter is a really good example because I feel like there's It's it's funny how Like analog black life will get recast into the digital space Things will happen in the digital space on say in on Twitter and then we'll jump back out and Back into the analog. There's this kind of really fascinating feedback loop. I think that happens In the round And so I think that there's I Mean in a way, that's that's Yeah, I'm still I'm still thinking through What the potential is for black folks to kind of exist in the digital and what it means? real real in black But I but I feel like I'm I'm personally fascinated with again like the the potential and How often like black kind of cultural black digital cultural artifacts jump into and out of the digital I don't know if there is ways that we could think more intentionally about what those interfaces could be But it's it is kind of hilarious that like That I'm just kind of living online But also just to see like that a a b e African-american vernacular English gets shaped almost in a daily Almost reshaped on a daily basis because of some silly thing that somebody said online, right? That then gets like jumps back out So I think that there's The same ways that I think black folks have managed to Kind of navigate certain systems of oppression or surveillance or what have you Don't see that being really a hindrance it seems to be almost like a bug But I think that that being said there's it's a real Black culture still black cultural Thank you Unless anyone else has a question Thank you so much for sharing your work with us, and I guess reminding us that the imagine Imagination is more than just an escape and it can actually Physically affect our world I was just referring to your discussion with Laura about the defaults in Artificial intelligence and the tools related to that And approaching these tools Sorry approaching these tools and Technologies critically as we work towards being in the room and towards being more literate Are there ways of thinking or working or interacting with these tools that you think might be helpful in Retraining or dealing with the biases whether intentional or unintentional Recorded into the way that these tools work and conceptualize our world Yeah, that's something That's something that she's actually actively working towards there seems to be at least some interest in a Black AI. I don't know what that it looked like, but I don't know like folks have been testing You know language models basically that are that are based on you know black ephemera Or you know that may be crowd sourced which would be really interesting And maybe we have to start maybe inventing loads of archival practice and maybe even just Thinking differently about what is worth Maintaining or sorry preserving and curating and into a like what what is the data set basically? I think it's like a big question. And what does that mean or what does that mean for black folks? I? Think that's something that I would love to see maybe even be a part of something that I Didn't think about until more recently Is that mid-journey is also learning from the outputs of people it's I Think a fact that this work is at some small level working to kind of train You know mid-journey to do better and and and how it's depicting black folks, right? I think if Black joy black agency black abundance of black liberation was a default, right? and and that that kind of multiplicity that abundance also cuts across gender age geography, etc. And that That probably spells like a really, you know for like that probably creates like a really interesting way of Rendering black life as it as it I Think that's yeah, that's kind of how I've been thinking about it recently I think I would love to kind of rehearse You know ways of using this heck these tools And a pedagogical in a teaching like an academic learning environment Especially at a place like say Howard where you know, I think Yeah, I wonder what Given the right prompts or given the right kind of learning learning environment Like what what might be what might be billed when students are kind of invited to imagine worlds. We're not reacting So I think that there's there's probably like analog like real life Impacts for using these tools like that can actually kind of impact and influence how we think about the world But I think there's also Just the use of the materials in these kind of emergent ways likely also has an impact. Thank you Great well, thanks everyone for coming. Thanks for the fantastic conversation and thanks curry for the lecture


Hi, in this video I will show you how to download and install WPS Office for Windows, WPS Office is formerly known as Kingsoft Office. To download it, let's go to the website WPS.com and in product section let's choose WPS Office Free 2016 version, let's click to this download button and let's save it to our computer, we need to wait 2 minutes. Okay, now let's open our installation, it has agreement I do WPS Office open by default and free version program, but this is WPS Office has successfully been installed on our Windows machine, that's all in this video.