adventures in the intersections of learning, design, and tech

Menu

I am a tried-and-true supporter of open coursewares. They enabled the first steps of my becoming a software engineer. So much of my knowledge today is indebted to people who have graciously shared theirs on the internet. Even more of my belief in the possibility of a new path is indebted to this generous ethos of enabling access to worlds you did not previously know.

But anyone that has actually studied with online open courseware knows it is terribly lonely and difficult, even for very motivated learners. When I was studying from Stanford’s online introductory computer science class in Taiwan, I had no access to people that could help me when I got stuck. The only thing that lessened this loneliness was the writing of a girl in San Francisco that had already self-studied through one the classes. When I absolutely needed some hints on how to progress forward, I consulted her blog’s solutions for quick and limited hints. Often, it was for trivial but bottlenecking questions like how to incorporate certain libraries. To me, lifting her solutions wholesale (or “cheating”) had no value. If I didn’t do as much of it as possible myself, the knowledge was not mine.

When I started looking for jobs as a software engineer, I put up my completed assignments as part of my portfolio on Github to demonstrate that I had studied fundamental data structures. After all, I have invested close to 300 hours for the two introductory courses and I wanted to showcase this in lieu of a formal CS education. An added benefit of that was a few people similarly self-studying had now subscribed to the repository. It’s perhaps a falsely romantic sentiment—but it really uplifted me in a small way to know that there are people all over the world wanting to learn more of their own volition; I felt connected to them.

My experience is not a rare one. Many aspects of it, especially the knowledge sharing, are common among people who have self-studied their way to life-changing paths.

This is why I was genuinely surprised when I received an email request from a Stanford CS instructor to remove my solutions from Github. He claimed that the availability of my solutions could seriously jeopardize the academic futures of the current students, as many of them had no self-control over cheating or willfully cheat because they simply did not care about learning the material. It was my responsibility to remove this “temptation” out of their way.

When I asked him if I was violating some actual legal rule of sharing these solutions (perhaps there was an honor code that I was not aware of), he confirmed that I was not. Since I was not in violation of any known rule and I wanted to uphold my principles, I declined his request. At this point, I no longer needed the material for my portfolio but still shared them for other self-learners. Understanding that cheating is a very serious offense for Stanford students, I offered to add some disclaimers/warnings to remind anybody consulting the solutions that Stanford students should not reference these assignments. Unfortunately, this proposal was considered insufficient by him—he deemed that I “could not be reasoned with” and that the availability of my solutions to be against the spirit with which such material are shared.

This was in spite the fact that the FAQ page for this open courseware clearly states that in lieu of faculty support, it hopes that students can self-form communities online to help each other for assignments without solutions and that such “support should be obtainable via a quick web search”.

While I still believed in the soundness of my motivations, his insistence got me to reflect on the unspoken paradoxes between a closed, formal education and its simultaneous attempt to be “open”. For what it’s worth, I think this instructor must care about his students an extraordinary amount to do something like this—they are really very lucky to have him. I also don’t think that his request necessarily represents the official perspective of the school (it may, it may not).

Some things to reflect on, without absolute answers.

1. How does a school reconcile the consequences of making a course open?

When the school shared their courses online, did they not predict that solutions would also be shared? Despite the instructor’s claim that he had emailed the handful of people with posted solutions and they had complied, a quick Google search showed me dozens of other solutions still posted, including solutions from the girl that had first helped me. Why did the school continue to use unmodified assignments for its own closed course?

As generous as it is to post course material, learning on your own could be extremely difficult without a reference to solutions. The articulated hope of self-forming learning communities for online classes is impossible without the allowance of sharing and discussing answers freely. It is not worth much for a school to claim to embrace open education when it cannot fully embrace the consequences of openly shared knowledge.

Coursera, which is different in nature in that students have access to TA’s and also have the potential to be certified, has a clear honor code that forbids the sharing of solutions (even so, this is the internet and a quick search reveals that solutions are everywhere). While I believe that the effectiveness of open coursewares without TA support would greatly decrease if solution sharing is forbidden, this should be spelt out in the guidelines if its is a legitimate concern. Such logistics need to be coordinated more thoroughly to defend against potential paradoxes.

2. Should a school rethink its policy on cheating?

The primary argument that the instructor gave me was that even if a student has “inadvertently” cheated through an initially casual reference, the consequence was large and irrevocable. A student did not simply get a zero, but could be suspended or expelled—forming an indelible mark on the academic record.

It troubles me deeply that a school and its instructor still act more like authoritarian parents even at the university level. What does it say about our education system when young adults could not be trusted to make their own decisions and take advantage of the world-class resources around them? What does it say about our relationship of trust for each other when we do not permit young adults to rebound from casual mistakes? Are we simply ruling them by fear?

3. Should a school reflect upon the nature of its assignments?

Of all the troubling implications, the worst was the symbolic disconnect between completing an assignment and how work is done in the real world. In the working world, knowledge is constantly augmented through open source sharing, consulting of previous experiences, and working collaboratively. This enables us to advance our collective intelligence as a whole. So little of this is evident in how we expect students to exercise their knowledge.

Cheating, in the sense of “copying”, can be simultaneously worthless and worth a lot. Copying without thought means you cannot internalize the knowledge and at some point you will be caught at a dead end. On the other hand, copying in fragments with the thought to emulate and internalize can be a way of improving—when you mimic patterns better than your own.

Should schools give more thought on how to test mastery without forbidding references to other material? There are assignments that are brittle to cheating, and others that can promote referencing and building upon existing knowledge that still require exercising your intellectual originality. Many of the coding bootcamps’ free-form projects for career day are such examples.

———

I accept that this is a topic rife with ambiguity and relative ethical grounds. (With the exception of Stanford students who cheat with no contrition, I have limited sympathy for students privileged with world-class resources that intentionally fail to take advantage of them).

In the end, I removed the solutions because I respected the teacher going out of his way to try to construct an “effective” learning environment for his students, even if such construction is a bubble. My initial refusal seemed to seriously pain him, and I do not enjoy emotionally traumatizing someone whose heart is in a good place.

It took me a long time after graduating from an Ivy League school to fully grasp the true value of knowledge without the presence of grades (I had never cheated, but the specter of grades always loomed larger in a school than learning for its own sake). Access to knowledge and the subsequent mastery of it is such a precious and beautiful thing, but it could only be truly appreciated when you are trusted as an individual to utilize it for purposes larger than impressing an artificial system.

Share this:

Like this:

The one thing that I wish I had known about computer science (and programming more generally) earlier is that it is a profoundly creative and interdisciplinary pursuit. What you choose to apply your problem-solving to is something that demands great ingenuity in how one transforms patterns of the physical world into a digital distillation. Coding is a process of both synthesis and genesis; not only is it guided by rules and syntax, but also something you create from scratch (like you would with a painting or a novel).

As someone who loves the arts as much as the sciences, I find myself like a child at a candy store–overwhelmingly excited by the possibilities of what programming can do. It took me awhile to get here, though. My interests in everything as a kid made it hard for me to imagine sticking with one discipline or career. In the midst of this indecision, I opted for something that seemed like the conventionally safer path: finance. Ultimately, this proved to be an uninspired life and I decided to switch careers before my youthful ignorance/bravery ran out. I fell in love with technology for its lack of fear for unimagined futures and its ability to sit at the intersection of many fields. To gain credibility in a field that I thus far had little formal training in, I decided to take up programming.

But even then, the story took some turns to get to where I am now–which is a few days since my graduation from Hackbright Academy (an engineering fellowship for women based in San Francisco) and the start of my journey as a software engineer. Although I decided to take up coding and found that I loved it, I felt unsure about pursuing it full time until I had the fortune of meeting someone at Hackbright who believed in me enough to talk sense into me and give me more guidance. The hesitation was rooted in a number of things: it seemed late and risky to switch into such a technically rigorous field; it seemed worlds apart from what I had known in my previous career; and I didn’t know if I would be “good enough.”

I think these are the same reasons why many people, women especially, do not pursue computer science. I wish that these stereotypes were not so pervasive–especially at high school and college levels when kids are choosing what to do. I don’t believe that everyone should be a software engineer or that all of the world’s problems could be resolved by code, but I do wish that decisions over majors and careers could be made with more information (like the profound creativity of computer science) and less stereotypes. I also wish that we spent more time making sure that women do not rule themselves out in the running based on some malformed self-perception, and that people had earlier exposure to the field to form their own opinions on it.

But it’s never too late. Many people have asked me where to get started on programming. With the abundance of open courseware and MOOC’s these days, the honest truth is that you could probably start anywhere. Find a few different recommendations from various friends or online sources, then stick with the one that works for you. The key here is to stick with it; programming takes time, but it should take time given how little exposure most of us had in our earlier years. It’s like trying to learn an entirely new way of thinking (imagine if you never learned to speak or do arithmetic until you are an adult). It will take time; but what will shock you is how fast you will ramp up once you are used to that new mental model.

Although self-learning is great, if you like coding and want to pursue it further than a hobby, go out there and engage with others who are doing the same. Whether you’re chatting up a novice or a professional programmer, these interactions will transform your involvement and learning to the next level.

In addition to Hackbright, I’ve also attended around 10 programming-themed meetups over the past year. The fun wasn’t so much for the technical content as it was to be surrounded by people who wanted to learn the topic as well, and to be exposed to other working engineers. The one thing I really love about this field is that people are really interested in learning all the time (and quite often in topics not restricted to computer science and engineering). Its rare–and refreshing–to see such a large concentration of this enthusiasm.

Many people talk about programming as being incredibly self-empowering–that the aspect they love the most is how they are able to build anything for themselves. That much is true, but the even better part is how you will also be able to offer that ability to anybody’s idea. Code is not everything, but an application can serve as the careful and intelligent distillation of someone’s vision that others can then further rally around. It is an incredibly giving and powerful skill that everyone should be entitled to have.

Share this:

Like this:

This post is going to be more personal and casual than my others— a bit self-indulgent no doubt, just as one should be at 2am in front of a computer screen. I have been going through a lot of personal reflections that come with the usual transition thing; in the last year, I went through many changes that I am only now recognizing the magnitude of. It’s my first time in a long time to acknowledge the importance of patience and to try to live that a bit more.

I have been living in San Francisco for half a year now. It was not my first choice to live here but I have come to love this city for the way it’s beautiful in that matter-of-fact, all-consuming way. Driving through the peninsula, sometimes it shocks me how many corners, one after another, are consistently breathtaking. I have come to love the genuine optimism and openness of its people, something that I was frankly not sure how to adjust to at first (two of the most influential cities of my life are Hong Kong and Tokyo— complete with their dark streaks and cold manners). One of the things that I liked to say in the beginning was that SF was too healthy for me. But since then I have learned to harbor my own healthy leanings, and I suppose, learned to be kinder to myself in the process. For that I know, no city could have changed me the way SF did.

But there are parts of the Bay Area/Silicon Valley thing that is grating. As much as I love tech and the promises that come with it, I keep getting the pesky feeling that SF feels a bit one-dimensional sometimes. I know there are always many exceptions to the rule, and I know I can find them probably even without looking too hard. But for now I am going to stick with my vague, perhaps hyperbolic, sentiment. I am tired of tech being the primary and almost only thing that is the center of the world here. It’s a cultural sentiment, it’s a paradigm of living— and it is the politically correct mantra of most that I’ve encountered here. Sometimes it feels like everybody is vaguely the same prototype of a person. I am aware that this is not an SF-only phenomenon, it happens in other cities too with their proprietary bubbles.

Tech has enclosed upon itself so much here that it has become a celebrity culture. The strangest feeling I get, and that I witness playing out, is that tech here is often inspired by tech and not real life. The Facebook for blah blah. The airbnb for blah blah. The yelp for blah blah. Granted, these are valid and useful paradigms for solving problems that may well exist in the corners of the universe that they are trying to tackle. But sometimes they feel small, stifling, and just a trifle depressing.

I am not sure what is more depressing at times: people who have blatant contempt for buzzwords like innovation, or those that claim a new photo-sharing app is innovation.

I still have a lot of faith in transformative possibilities, but I am starting to recognize now to be careful of what perception you filter life through in SF. Many here allow tech to change and intrude upon their lives completely— their routines circling around different platforms. But that is not the way that everyone wants to live, and that is not the way that everyone should live. We should design for that too.

Share this:

Like this:

2012 was the year that I learned to code for real. I started with the Stanford 106 courses and moved myself through a few online tutorials on Python, then Ruby on Rails. But I didn’t really feel that I had a tangible skill until I started making things of my own. A few weeks ago, I was told by a former software engineer after a code review of my work that I could probably get a entry level software engineering job now if I wanted to. It all feels kind of incredible— yet not. What I have learned from this experience most of all is that coding is a lot of ongoing hard work, but it’s hard primarily because most people have no had the proper cognitive exposure to it early on enough in their lives. Like language or arithmetic, it demands a different type of pattern recognition on your brain which you learn to adjust to with time. It is not magic or talent, it is simply learning to think differently. That always takes time.

Most people who program are not and don’t want to be software developers. Most of the people that I teach (non-CS majors, high school teachers) have zero interest in becoming programmers. They don’t want to be “addicted to code.” They don’t want a career that requires them to code. They want to use coding for their own ends…

The problem is that we in computer science often have blinders on when it comes to computing — we only see people who relate to code and programming as we do, as people in our peer group and community do. There are many people who code because of what it lets them do, not because they want the resulting code.

“You should be learning to write as little code as possible. Ideally none.” And people who want to do interesting, novel things with computers should just wait until a software developer gets around to understanding what they want and coding it for them? I could not disagree more. That’s like saying that the problem with translating the Bible is that it made all that knowledge accessible to lay people, when they should have just waited for the Church to explain it to them. ”Please don’t learn to code” can be interpreted as “Please leave the power of computing to us, and we’ll let you know when we’ll make some available to you.”

The last part of Guzdial’s arguments sums it up perfectly for me. Programming is a power for solving problems— it should not be reserved for only certain segments of the population that have deemed themselves worthy. Programming is also only the beginning and, in a sense, rather small part of any problem solving process. It wasn’t until I built my first web application prototype that I understood quite vividly that getting something that works and responds to you is only such a small part of the puzzle— there is the larger question of what the purpose of this software is and how do you get it be actually useful in the world and not simply resting on your server somewhere. The problem does not end with the code. In that sense Atwood is right to advocate for a greater understanding of the problem that you are trying to solve.

But one can’t ignore the fact that at the end of it, code is still what makes it possible. You can design all the solutions that you want, but if you can’t make it a tangible working concept– it stops there. Code, even imperfect snippets of it, enable that first inkling of possibility. Going back to my side comment on Michael Bloomberg: he was an electrical engineering major whose fortune was founded on a financial software company! You do not have to be a genius to appreciate that, surely, his technical background gave him an advantage in understanding what possibilities existed. He probably did not code a thing himself, but I find it hard to believe that his background would not have been at least a bit helpful.

In the end, I understand what Atwood is trying to get at. People shouldn’t assume that coding is easy and that they should make at least a respectable effort at it if they want to pursue it seriously. But I do believe that everyone should at least try to learn to code; for most, it is not even something that they realized they may enjoy or be good at or may be able to use for other purposes— simply because they never had exposure to it. I strongly wish now that I had majored in CS back in college; I simply didn’t understand enough about it at the time.

Share this:

Like this:

In this age of vlogs and Youtube, I am definitely a little bit behind on being comfortable with the video camera. But I had a humble breakthrough the other day when I forced myself to record what was basically a monologue; the footage ended up being only about 5 minutes long, but I got my first taste of executing and filming a (tiny) video. More important— I cringed and wanted to faint every time hearing my voice played back to me, but then realized that I was still alive afterwards and that life goes on. What I am trying to say with a melodramatic flair is: I supposed I crossed an important mental hurdle of some sort.

Despite my inexperience of being a filmed subject on video camera, video was the medium that got me to start thinking about education technology in the first place. While at a public policy think tank in Hong Kong, I came across the work of John Liu, who filmed the environmental video, Lessons of the Loess Plateau. It was a transformative experience that really got me to think about how persuasion and storytelling worked; as someone who had written and fallen asleep in front of a lot of papers, I felt drawn and somewhat inexplicably liberated.

Fast forward to this year and the high hopes for edtech everywhere. When you take many of the ‘promising technologies’ apart, video is at the center of it all (or a cynic could say, they amounted to little less than recorded videos). This includes, of course, the MOOC’s like Khan Academy & Coursera, but also platforms like Educreations, Knowmia, and ShowMe. I am still curious to see how it all plays out. For the MOOC’s, I wonder if teaching can find a new model beyond recorded video explanations; for all of the platforms, I wonder how the proliferation of generated content means for effective content discovery and curation.

But anyway, I started this post mainly because I wanted to talk about edtech that I have really enjoyed which utilize videos: the Teaching Channel, and the Odyssey Initiative. I have been thinking a lot about how to understand more of what educators are doing on the ground, to not abstractly conclude a judgment for current education institutions but understand that is is made up of a variety individuals, many of them are striving to do great things. I am deeply appreciative for projects that go out and do the legwork for us to collect the individual into a grander movement, and that allow me to see this creativity firsthand.

So now, I have a new new years resolution— which is to use my camera a bit more. Lots of great things happening around us.

Share this:

Like this:

One of the most interesting and useful ideas that has come out of my UX Design class is the concept of “the core loop,” which originates from the vocabulary of Game Design. What I have is probably a somewhat simplified version of it— but arguably that is what makes it so great: the essence of it compressed & inescapable. Its barebone guidance is sort of a crutch beacon when realities and frameworks clutter and conflict.

The idea is dead simple— given any game, there are core activities that you do, which form a loop that plays over and over again. There can be complexities and additional features or gimmicks in between, but the core activities are straightforward. Like the illustration on the left for FishVille,the heart and soul of the game is no more than players buying fish, growing fish, then selling fish. Very simple activities that you can conceptualize and verbalize in a few words; the rest of the messiness in between and separate from the core drivers.

I’ve been thinking more about this in relation to online learning platforms (I should just call them for what they are–MOOC’s) and the high drop-out-rate which plagues not only them, but most forms of distance learning. When you think about it in terms of the core loop concept, it always seems to me that the loop is not strong enough, that components of it are not very reinforced.

Take the basic concept of “Learning”, for example. Let’s say that the loop goes something like: Receive the material –> Digest/Practice the material –> Receive assessment/feedback on our learning. In most of the MOOC’s I have experienced, the loop breaks down on the last two steps. In my personal experience (and I am aware that it is not applicable to everyone), the assignments are often not adapted well enough to the format of the MOOC’s. Even though the massive scale of such yields interesting creative insights to professors and course participants, I feel that these insights are fundamentally serendipitous, and it’s hard to say if students consistently get a rigorous and systemic educational experience. The feedback part is usually troubling for me, in that I don’t always receive feedback that I trust the quality of. There are parts of this that give me metaphysical pause to my own thinking too, though, because I sense that it is modeled after an authoritarian paradigm of teaching & learning (entrusting a “teacher” or “expert” with the righteous voice of education), and I don’t want to give that idea too much credence either.

What I find even more fascinating is the core loop of social mechanisms within online learning communities. I have strong faith that the differentiating gem of online learning lies in harnessing the massive, horizontal communities embedded in each course. But when you apply the loop to “socializing” in online learning, it is even more frail than the learning loop (I suppose predictably so given that that’s not usually the first emphasis). Let’s say a (successful) social loop usually goes like this: Encounter new people –> Find common ground of interaction –> Deepen connection. The loop breaks down quite easily in most MOOC’s, starting with it being pretty contrived and difficult to “meet” new people unless you make extra effort to keep up correspondence. There isn’t a really good way of “meeting” the classmates that are most relevant to you unless you stake out the forums or proactively rotate through people’s profile. Finding common ground of topic/experience is slightly easier in the context of a shared academic interest, but the “conversations” are usually stretched out monologues on each side rather than true conversing.

Of course, I know I may seem unfairly critical given the early days (& already many interesting insights emerging) of this new medium. But my intention is actually not to criticize or point out shortcomings for the mere sake of negating— it is more to understand which part of the loop breaks down and how we can begin to think about reinforcement through interface and learning design.

I always thought, for example, that it would be cool to have some sort of commenting mechanism that goes with each segment of the video. This already happens in Khan Academy videos and the “lecture chapters” of Zed Shaw’s Learn (Whatever) the Hard Way. But could it be even more interesting if we could further pinpoint finer segments of the video (lecture) and share insights or questions anchored to those moments— much like what Soundcloud is doing with audio files currently. My hunch is that this would make conversations easier, more spontaneous, and more contextual to discover common ground.

There are other important considerations in this idea of core loop. For one: what is the location/context that this loop is taking place in? The learning loop taking place in a physical space is much different from a learning loop taking place in front of your computer, at the solitude of your own home. In a physical space, there may be greater sense of social obligation to stay, to press on, or there may be encouragement from the subtle social dynamics between people. In an online situation, it may be easier to exit the loop without guilt. Another thing to consider is the duration cycle of the loop– is it frequent quick iterations, or does it stretch out to lengthy cycles? The social interaction between people in real life is instantaneous, but online social interaction often involves wait between replies via messaging or email. How does this affect stickiness vs fatigue? If we want to help people persist through the loop, can we design for relief, anticipation, or patience when the loop iterates too fast or too slowly?

Share this:

Like this:

I am not sure how this only came across my radar this morning given its publication 2 weeks ago, but Union Square Venture’s “research”/investment thesis on online education was an interesting development for me to observe given my previous background in finance. The “research,” which has been widely noted as rather slim (and not so much research of any sort but rather a scattered collection of media articles), was not all that original given the existing chatters of the space— but obviously it provided a good anchor point for the “tech/product/investment” community to share their thoughts a la Techcrunch style. Rarely would one see 100+ comments on any of the popular education tech news and blog sites, when 10+ already signifies unusual momentum. So, there is some silver lining to this thing: at least it got some people talking and perhaps thinking a bit more about the space, even if it can be uninformed enthusiasm layered on top of an uninformed starting point.

Kudos to USV because as is the case in many, many sectors, there are plenty of folks who argue that you must keep this sort of knowledge locked up and proprietary.

I think that is generous, and perhaps also a little naive. There are two things to note here 1) USV is not doing this out of some altruistic purpose to inform others; there is a very strong PR element to what they are doing and also in shaping how they want the sector to develop. 2) An investment thesis in a few dozen words is not truly proprietary; an investment thesis exposited with data and knowledge that only you have access to is truly proprietary. On this, USV divulged little (and I doubt they would share much); this is where the true value of their knowledge lies and it will not be given away easily.

I am sure that educators and perhaps even entrepreneurs, heck, anyone that hasn’t been in the industry, would be appalled to learn what really goes on in financial industry to “evaluate” and “predict” investments. There is a lot of art that we comfort ourselves as science: a weak linear regression based on <10 data points, a heavily guesstimated financial model, some words extracted from periodic publications. But even that presents the more effortful side of the “research” that takes place; on most days it is an opinion disguised as some revelatory trend that can only be derived from “industry experience”. Worse still, even when there is much research effort that takes place at times (usually in consulting, not as much in finance), the research is either forcibly interpreted to fit the bill rather than fully exposited for its ambiguity, or built upon a scientifically questionable methodology. But consulting houses and banks and funds will continue to publish their research: because they want to be seen as thought leaders and indirectly have a hand in influencing the way the sector forms (through partially self-fulfilling prophesies; psychology and PR drive more Wall Street fluctuations than actual financial happenings).

Finally, I want to comment on Christina Caciopo’s response to Greg Wilson on the quality of their research. To USV’s credit, they responded very politely and constructively to these criticisms. One thing stood out to me in their defense of why the research consisted mostly of popular media articles.

Busy people won’t read narrowly-focused papers reporting micro-progress on nano-topics — they need overviews they can absorb in a hurry, because they have nine other meetings this week to prepare for.

This is true, but this does not logically prevent a research house to do the proper research then digest it for people to read. You can sift through papers and still produce informed, succinct summaries. What she really means (but perhaps doesn’t realize) is that “busy” people have a hard time tolerating ambiguity. It doesn’t make for feel-good investment thesis, and it doesn’t make for the emphatic positing of a thought leader. (And on the nomenclature of “busy”: not for a second do I believe that a partner at a VC fund actually produces substantially more work than, say, a Georgia Tech professor. I am not saying he produces less. But certainly the two are on par).

What I am left wondering by myself is— why is it that it is the “busy” but “uninformed” people that get to shape the biggest decisions? We cannot always rely on “them” to be informed; perhaps what we should be asking ourselves is why we try not to ask for a larger voice in choosing what gets support—or not, in the sector.