Computer-Science

Advice on Applying to Computer Science Internships in Entertainment

I mostly get art-related questions, but someone shot this to me, so I figured I’d make the post public:

Hello!! I don’t know if you remember me but I was the person that was really interested in a computer science internship at DWA. I’m interested in applying next summer and I was wondering if you could give me some extra advice! Thanks so much!

This is my personal advice on doing CS in the entertainment industry and not endorsed by any company I’ve ever worked for. I’ve tailored it a bit more towards my experience at DW since that’s what the person asked (but it’s been over two years since I worked there and things might have changed). The question was pretty general, so I took the approach of “What Comp Sci knowledge and skills should I cultivate to work in animation?

When it comes to a CS internship, it’s less about having a large CS knowledge base (like algorithms, automata, language, etc) but about being flexible. There’s a LOT that school doesn’t teach you. I’m going to go pretty specific with terminology here, so if there’s anything you don’t understand, just shoot me another e-mail and/or do a Google search.

For graphics (the CS sub-field most tied to games and animation), there are a couple different areas you might work in: like the renderer, or shader writing, or motion capture, or rigging, etc.  Each specialty favors a specific area of study. For example: discreet math and linear algebra for rendering geometry (and rigging and lighting), algorithms for faster rendering and processing times, and design patterns for tools architecture. Database might be useful at a game studio especially one with an online bent, but it’s not super relevant at DW which is more focused on “output a pretty image as fast as possible”.  It’s highly unlikely you will be asked to write an OS, write or go low-level into something like Assembly or C.

You will find out what your department is when you arrive and then will be expected to research the specifics during your job. Because you don’t know which specific department you might end up in, you should have a good understanding of what kind of theory goes into each aspect of the pipeline (ie - how lights use a physically-based model with Fresnel to mimic reality, that UVs are unwrapped textures converting 3D to 2D space, that quaternions are used to manage camera and character animations). Similarly, a strong basis of Object-Oriented Programming and Design Patterns will let you construct good classes and software no matter what language you are asked to use.  So yeah, bone up on your broad knowledge and your research skills! Google is a CS major’s best friend and all.

Also importantly, you need to be a bit of a people person. Enough to understand what people want. CS majors in entertainment are writing software for other people to use.  You have to go beyond asking “hey, what do you want it to do?” to the emotional heart of the matter - then you have to make a software solution for it! For example, an artist has some process they do a lot but have to go to a menu bar to access, so they ask for a button on the GUI to make their workflow faster. But let’s say you know they use keyboard commands a lot - then it might be worthwhile to ask if the client would prefer a hotkey. Because while the artist says they want a button, but they actually want a faster workflow.  Having experience designing software for someone else’s use (not just an assignment like “write a renderer”) is a precious experience. Especially at DW when the artists are king.

Generally, again, all industry is pretty cavalier compared to school: it’s more about results than process. So having a solid theory base, a willingness to look up new info, and motivation to go beyond are the biggest, most important, skills you can have!

youtube

Why Artificial Intelligence Sucks Right Now

Minor artificial intelligence may aid humans in some aspects of our lives, but the robots have a long way to go before they are really thinking for themselves.

By: TestTube Plus.

Computer Science/Engineering Masterpost

Online lectures:

Discrete Mathematics (x) (x(x) (x) (x)

Data Structures (x) (x) (x) (x) (and Object Oriented Programming (x) )

Software Engineering (x)

Database (x)

Operating Systems (x) (x) (x) (x) (x) (x) (x)

Structure and Interpretation of Computer Programs (x)

Computer Architecture (x)

Programming (x) (x) (x) (x) (x) (x) (x)

Linear Algebra (x) (x) (x)

Artificial Intelligence (x) (x)

Algorithms (x)

Calculus (x) (x) (x)

Tutorials (programming) and other online resources:

Programming languages online tutorials and Computer Science/Engineering online courses

Java tutorial

Java, C, C++ tutorials

Memory Management in C

Pointers in C/C++

Algorithms

Genetic Algorithms

Websites for learning and tools:

Stack Overflow

Khan Academy

Mathway

Recommended books:

Computer organization and design: the hardware/software interface. David A.Patterson & John L. Hennessy.

Artificial intelligence: a modern approac. Stuart J. Russel & Peter Norvig.

Database systems: the complete book. Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom.

Algorithms: a functional programming approach. Fethi Rabbi & Guy Lapalme.

Data Structures & Algorithms in Java: Michael T. Goodrich & Roberto Tamassia.

The C programming language: Kernighan, D. & Ritchie.

Operating System Concepts: Avi Silberschatz, Peter Baer Galvin, Greg Gagne.

Study Tips:

How to Study

Exam Tips for Computer Science

Top 10 Tips For Computer Science Students

Study Skills: Ace Your Computing Science Courses

How to study for Computer Science exams

How to be a successful Computer Science student

Writing in Sciences, Mathematics and Engineering:

Writing a Technical Report

Writing in the Sciences (Standford online course)

Writing in Mathematics, Statistics and Computer Science Courses 

youtube

An untethered miniature origami robot that self-folds, walks, swims, and degrades has been created by a team of the department of informatics, Technische Universitat in Germany and the computer science and artificial intelligence lab at MIT!

Unfolded, the robot has a magnet and PVC sandwiched between laser-cut structural layers (polystyrene or paper). When placed on a heating element, the PVC contracts, and where the structural layers have been cut, it creates folds - so this is how the origami part works. Kelsey Atherton in Popular Science, said, “Underneath it all, hidden like the Wizard of Oz behind his curtain, sit four electromagnetic coils, which turn on and off and makes the robot move forward in a direction set by its shape.”
The authors also wrote such autonomous ‘4D-printed’ robots could be used at unreachable sites, including those encountered in both in vivo and bionic biological treatment. read more here

youtube

Colossus & Bletchley Park

Colossus was the first electronic computer. We visit Bletchley Park, home of the code breakers, and TNMoC, The National Museum of Computing. Professor Brailsford shows us the Colossus replica.

By: Computerphile.

learn how to code!

everyone should learn how to code. it’s a lot of fun, its a useful skill in any field, and its a really easy skill to learn if you have a good place to learn it, and in my experience it’s learnt best when its self driven!

notepad++ and atom are really good applications for writing code

i’ll add to this more when i find more links (feel free to send them!), and i’ll probably make posts about the theory behind coding languages, human-computer interactions, and algorithms but i’m sure you can find stuff on academic earth if you look under computer science!

3

Life is hard for women in tech — but a new documentary may have the solution 

Female programmers are sorely underrepresented in tech. Women are afraid to speak up about the discrimination they see because they worry about their jobs. Even CEOs of giant media companies who do speak up, like current Reddit CEO Ellen Pao, see their complaints minimized. It’s a cancerous problem affecting one of the fastest-growing industries in the world. Luckily, there are women fighting back.

2

What Happened To Women In Computer Science? 

For decades, the number of women in computer science grew faster than the number of men —until you get to 1984. At that point, the percentage of women began to plunge (even as the share of women in fields like mechanical engineering, math and physics kept rising).

So what happened? What was going on in 1984?

NPR’s Planet Money tried to untangle this question and the answer is complex.

One of the big changes to happen around 1984 was the introduction of small personal computers into the home. Early computers weren’t much more than toys (think pong and space invaders) and they were marketed almost exclusively to boys. 

In the 1990s, UCLA researcher Jane Margolis interviewed hundreds of computer science students at Carnegie Mellon University, which had one of the best programs in the country. She found that families were much more likely to buy computers for boys than for girls — even when the girls were the ones who were interested in computers. 

The pattern was pretty consistent. One student told a story of having to ask her brother for the key to use the computer because it was actually locked away from her in his room. This may be an extreme example, but Margolis never heard the reverse — no stories of boys having to go into their sister’s room to use the computer.

This was a big deal when those kids went to college. As personal computers became more common, computer science professors increasingly assumed that their students had grown up playing with computers.

By the mid 90s, the Carnegie Mellon computer science program was 93% men. Half the women who went to school for computer science ended up quitting the program. As Margolis explains:

“Because if you’re in a culture that is so infused with this belief that men are just better at this and they fit in better — a lot can shake your confidence. You can be sitting next to a male student who could say, ‘You don’t know that? …And you’re a computer science major?’” 

And these types of slights add up.

In her research, Margolis discovered that a lot of the women who were dropping out were great at computer science — more than half were on the dean’s list.

So how do we get women back in to computer science?

Margolis did her research with Allan Fisher, the Dean of the Computer Science program at Carnegie Mellon. The two ended up using what they had learned to make adjustments to the program.

They paid a lot more attention to teaching and added an intro course for students who didn’t have a lot of informal computer science experience.

And it worked. In 5 years, they turned the school around: 42% of computer science students were women (and the drop out rate was the same for men and women).

Top Image: Planet Money

Bottom Image: Two women operating the ENIAC’s main control panel

I heart nerds

You can have an extensive vocabulary with impeccable grammar, explain to me theories of computing, or just share your dream of what you hope to accomplish when you’re in the lab working to make your first discovery. These things may not sound romantic, but talk to me nerdy and you’ll wake up in my arms.