Showing posts with label computers. Show all posts
Showing posts with label computers. Show all posts

Friday, July 26, 2019

What advice would you give to a young woman in high school considering computer science?

Subject: Question: Young women in computer science
To: Keith Winstein <keithw@...>
Date: Fri, 26 Jul 2019 08:47:14 -0400


I am a senior at XYZ High School in Pennsylvania and the only young woman taking our AP computer science courses. My principal wants my thoughts on increasing computer science interest level among young women. I am asking a number of professors the following question:

What advice would you give to a young woman in high school considering computer science?

If you can spare a few minutes to respond via email, it would be greatly appreciated.  


Thank you.



Subject: Re: Question: Young women in computer science
From: Keith Winstein <keithw@...>
Date: Fri, 26 Jul 2019 12:53:10 -0700

I guess I would say "welcome"!! I hope you find computer science rewarding and look forward to reading your contributions to the field over time. There are so many diverse ways to be a computer scientist and to do computer science. I hope your early years in the field end up exposing you broadly and sparking your interest.

One thing I would say is that it's valuable to find good mentors, people you look up to and whose examples you can try to "live up" to and from whom you can learn as much as possible. A lot of undergraduates unfortunately become fixated on their own classmates, and worry about trying to "keep up" with these people or "catch up" to their level of preparation. In the grand scheme of things, these people are not so important -- in my experience, it's more valuable to have goals, and mentors and heroes who embody those goals and serve as an example for you to try to "live up" to over the many years of your (hopefully long) education and career. Of course it may take you a while to figure out what kind of person you want to become and who you want to look up to. :-)


And a different interview about graduate school here: https://cs.stanford.edu/~keithw/interview-2015-guo-wu-winstein.html

Some advice you may want to read: Justine Sherry's (https://people.eecs.berkeley.edu/~justine/advice.pdf) or Michael Ernst's (https://homes.cs.washington.edu/~mernst/advice/) or Jennifer Rexford's (https://www.cs.princeton.edu/~jrex/advice.html). The basic truth is that "imposter syndrome" is very common (among both men and women), and it can be helpful to recognize that.

The second thing I would say is that there are a lot of great events for women in computer science, and a lot of people I know really enjoy and are inspired by attending them! So, attend the Grace Hopper Celebration (https://ghc.anitab.org/), both while you're in high school and continuing in college, at least if you can make it and if it looks interesting to you. (This is probably the biggest one.) Consider attending an ACM-W event or starting an ACM-W chapter (https://women.acm.org/category/celebrations/).

The third thing I would say is to read a lot of books. Computer science is a broad field, and there are so many ways to experience and enjoy and contribute to it. It's helpful to have some exposure to different parts of the field. Some of the great ones include:
  • Hofstadter, "Godel, Escher, Bach" (can be a life-changing book)
  • Hofstadter, "Metamagical Themas" (also a really fun read if you liked G.E.B.)
  • Gardner, "aha! Gotcha" -- fun book about paradoxes
  • "How to Design Programs," and do the assignments (free online: https://www.htdp.org/)
  • Abelson and Sussman, "Structure and Interpretation of Computer Programs," also free online
  • Levy, "Hackers: Heroes of the Information Revolution" by Steven Levy (this is a fun story about the history of "hackers" and a bit about Silicon Valley)
  • Steiglitz, "A Digital Signal Processing Primer: With Applications to Digital Audio and Computer Music" -- this was a life-changing book for me when I read it the summer before college. Computer science (and EECS) is about more than just programming!
  • Sipser, "Introduction to the Theory of Computation" -- this is a junior-level textbook but you might be ready for it and enjoy it -- it's a great book
Number four, read these famous (and semi-depressing?) essays that every high-school student should read:
Good luck, and please feel free to get in touch again if I can be helpful,
Keith

Thursday, July 11, 2013

“Is Computer Networks a boring area?”

Over on Quora, the question-and-answer Web site, my hackles were raised when I saw this question that seemed out of left field:
Is Computer Networks a boring area?
I'm asking this question since I'm looking at possible areas to do Masters in, and one of them is Computer Networks. [...] I've never met anyone who's been passionate about this field as of yet. I've met people from areas like data mining, AI, computer vision, robotics etc. who're fiercely in love with their subject. Thirdly, the very nature of this field made me ask this question. Innovation seems slow in general, especially hardware, and it appears that you get lost in a sea of implementing protocols and going through a lot of fine lines of code, instead of working on the next big thing.
I'd be glad if someone proves me wrong. Am I missing something here?
I couldn't help myself from piping up to defend the honor of computer networking (and discuss my own work in the process).

My answer:

Monday, October 29, 2012

Q: What is it like to have the process of video encoding or transcoding bring you to tears?

In 2005, we built a system to do the first amateur ATSC HDTV broadcasts. We broadcast MIT sporting events and the January "Integration Bee" (with play-by-play and color commentary, etc.) on the MIT cable TV system. (http://broadcastengineering.com/newsrooms/mit-sportcast-plan-calls-hd-telecastshttp://sportcast.mit.edu)

The plan called for us to build our own live HD switcher with wipes and other transitions, score overlay and ATSC encoder -- a commercial system was several hundred thousand dollars at that point. We had four HDV cameras connected via Firewire to a head-end computer, and used an array of 1U servers with nVidia cards to render an arbitrary scene with OpenGL (using a pipeline through four machines to paint the video from four cameras on the frame), then overlay the score and time, and finally encode with A/52 audio in ATSC-conformant MPEG transport stream and send out in QAM256 over the MIT cable system (http://web.mit.edu/sportcast/checkout/).

Some of the technical challenges proved especially difficult and I was up all night with them before a game. Getting four Firewire HDV cameras to talk to the same computer was a real pain, since these cameras generally have cheap chipsets and all want to talk on the same broadcast channel. (We got this working, but it was quite brittle since unplugging one camera would freeze the whole Firewire bus for about 1 second. In year 2 we switched to connecting the cameras to small Mini-ITX computers and then running them to the switcher over UDP on Ethernet.) Showing up at 10 a.m. at a volleyball game and having to explain to my colleagues that we STILL didn't quite have working video was painful!

The most challenging part was writing the MPEG systems stream encoder that would be ATSC-complaint -- in other words, writing a program to stitch together Dolby AC-3 audio and MPEG-2 video that would actually PLAY in sync on a real store-bought television without glitches. (The MPEG-2 video elementary stream was compressed by libavcodec, and the audio by liba52, but getting a compliant audio-video multiplex is a different story.)

This was difficult because those TVs do not exactly give you a lot of helpful diagnostic information. If you do it wrong, you see glitches, but these can be very rare (like once every 20 minutes!) and it's not like you get a debugging trace. 

ATSC has a lot of requirements you have to comply with, like you can't send a frame of video more than 0.5 seconds before it will be displayed, and if you break these you will see undefined behavior from the TV.

Getting all those pieces put together, so we could actually WATCH our sports broadcasts on a real HDTV in 2005 via the cable TV system without hiccups, was very satisfying and a great payoff for all our work. After spending umpteen all-nighters doing it and breaking numerous promises to my friends and colleagues to have it running earlier, I am sure I was brought to tears (of exhaustion and/or joy) when it finally worked.

Friday, October 5, 2012

Q: How many unique Tweets can ever be posted?

At least 2^{4200} (a number with 1,264 decimal digits), using the contents of the tweet alone. Plus there is all the metadata, which probably adds at least a thousand bits.

See https://blogs.oracle.com/ksplice... . It turns out that Twitter allows almost 2^31 choices per "character," at least when a tweet is first posted. (They decay over time...)

Unicode itself is a 20.1-bit system, but Twitter doesn't allow literally all Unicode scalar values. (E.g. it messes with < and >.) On the other hand, Twitter does allow the huge characters above the first 2^20, that is to say not Unicode, but below 2^31. (This is almost 31 bits anyway.)

Disclaimer: I have not checked this myself since writing that blog post in March 2010.

Saturday, June 18, 2011

Q: Is there any technical data available to support claims of “best HD picture quality” when choosing a satellite, cable or IPTV service provider?

I have done a real-time comparison between the HDTV signals transmitted by local broadcasters in the Boston area (NBC, ABC, CBS) over broadcast ATSC and the corresponding signals transmitted over Comcast service in QAM digital cable.

The two streams were bit-for-bit identical.

I'm sure it is true for at least some and maybe most "cable-only" channels, the different providers do vary in signal quality and how much they "re-compress" the signal.

But I can tell you that for the over-the-air channels, at least in Boston on Comcast, there is no difference between getting the signal over the air and getting it from cable. The two streams were exactly the same.[*]

A rigorous comparison of "cable-only" channels would be more difficult because it's hard to get these in unencrypted form from any provider. Just counting the bitrate (if available on a set-top box) is probably a reasonable proxy, but keep in mind that some providers (like DirecTV) use H.264 (aka MPEG-4 part 10) for at least some channels. That's much more efficient than the MPEG-2 part 2 used by digital cable and broadcast HDTV channels.

[*] The MPEG-2 video elementary stream was bit-for-bit identical. I didn't examine the audio but suspect it was the same. The systems-layer framing and other streams were different, if only because Comcast's channels are at 38.8 Mbps and broadcast ATSC is 19.4 Mbps and because the program IDs were rearranged.

Wednesday, March 2, 2011

Q: How many read/writes does Twitter do a second?

It depends how you count. I'm no Twitter expert, but here's my understanding from a tech talk by Raffi Krikorian and colleagues in September 2010. Would happily correct this if anybody from Twitter wants to chime in.
  • The volume of actual tweets is relatively small -- the most ever in a single second was fewer than 7,000 tweets, which is a peak load of less than 8 Mbps. Average load is about 1.6 Mbps, or 17 GB a day of tweets, and about 1,300 tweets per second. This is about 2% of the average trade frequency on Nasdaq.
  • Twitter's architecture generally writes a reference to each incoming tweet immediately to the "timeline" structure of each recipient. Lady Gaga has 8.5 million followers, so when she tweets to the world, that causes 8.5 million updates to the recipients' timelines.
  • Twitter's real load is not from tweets, but from changes in the social graph. "The rate of operations in the social graph is actually much faster than the incoming tweets we have," they said, meaning follow and unfollow events occur more often than tweets. Their flockdb graph store, built on MySQL, handles peak load of about 20,000 writes per second and 100,000 reads per second as of April 2010. (Apparently a common pattern for Twitter users is to sign up, follow a bunch of people, but rarely tweet themselves.)
  • One difficult task comes from how Twitter handles "directed" tweets. Twitter only shows the tweet to people who follow both the sender and recipient, so the service has to compute the intersection between both groups at post time. "A bad case for us is if Lady Gaga responds to Justin Bieber. We have to compute the intersection between 6.xx million followers and 5.1 million followers. So you know Flock is having a bad day when celebrities start tweeting each other."
  • The volume of tweets is only 17 gigabytes a day, but Twitter stores a lot more data than that -- the company tracks user behavior comprehensively, generating 12 terabytes of data a day. (I assume not all of this is stored for very long.)

Sunday, June 13, 2010

Q: Did MIT's decline (outside of biology and life sciences) begin shortly before WW2?

The democratization of electronics -- made possible by transistors and integrated circuits, among other things -- surely contributed to a decrease in relative prominence for MIT, but the institution and people in close orbit had many groundbreaking accomplishments in electrical engineering and computer science since World War II.

Looking at EECS only, consider MIT's dominant postwar role in:
  • Magnetic core memory
  • Navigating to land on the moon (http://www.technologyreview.com/...)
  • Chaos theory and the "butterfly effect" (which earned Edward Lorenz the Kyoto Prize in 1991)
  • Time-sharing and operating systems (Corbato won the Turing Award in 1990)
  • Artificial intelligence and neural networks (e.g., Minsky's groundbreaking work)
  • Object-oriented programming, information hiding and abstraction (considering, e.g., Liskov's 2008 Turing award and 2004 von Neumann medal)
  • RSA
  • GNU
  • X
  • The packet-switched Internet (consider, e.g., Bob Kahn's Turing award in 2004)
  • LOGO
  • E-Ink
  • The spreadsheet (Bricklin and Frankston's VisiCalc)
  • High-definition digital television (including the work of Lim and Schreiber, and MIT's role as one of four voting seats on the Grand Alliance)
  • Languages and automata (e.g., Chomsky's work)
  • Information theory and coding, including Shannon's revolutionary master's thesis in the 30s and his work as an MIT professor from the 50s on
  • The rise of "hacker culture" (see Steven Levy's "Hackers") and the digital video game ("Spacewar!", much later "Rock Band" and "Guitar Hero")
  • Programming languages, including McCarthy's LISP (still used more than 50 years later)