ComputerScience

The Shortest Path to Happiness

By Daniele Quercia

We all know how busy the world is today. People race around from place to place trying to shave off minutes from their commutes in order to squeeze in more time for other things. But what if you had a happier, more pleasant journey?

In a previous Tumblr post called “Can Cities Make us Happy?”, we summarized our preliminary work on which urban elements make people happy. We found that in London, for example, people associate public gardens and Victorian and red brick houses with beauty and happiness, and that cars and fortress-like buildings are associated with sadness.

In our latest research we put those insights to practical use in the form of maps and routes. Consider that existing mapping technologies return shortest directions. Now, imagine a new mapping tool that, instead of suggesting the shortest walking course from A to B, is able to suggest a route that is both short and pleasant. Based on our previous work, we were able to design algorithms that automatically map out the most beautiful, quiet, and happy routes between two points. Taking into account an average of the results of the three algorithms, our study showed that despite being 12% longer in length and roughly 7 and a half minutes longer in time, respondents preferred the option of taking more scenic, quiet, and happy routes.

More interestingly perhaps, our study participants in London and Boston loved to attach memories to places: both personal memories (e.g., “This is the street I gave my first kiss.”) and shared memories (e.g., “That’s where the old BBC building was.”) In “Remembrance of Things Past,” French novelist Marcel Proust described how a small bite of a madeleine cake unleashed a cascade of memories from childhood. In a similar way, our participants found places to be pleasant (or not) and memorable depending on the way they smelled and sounded. It turns out that these smells and sounds also play a role in the paths people take from one place to another. This point begs a new question with fascinating implications for the research community: What if we had a mapping tool that suggested pleasant routes based not only on aesthetics, but also on memories, smells, and sounds?

Our study produced one other compelling point worth mentioning — participants pointed out that the experience of a place changes during the course of a day. For example, one of our London participants commented, “Fleet street is beautiful because of its history. However, depending on the time of day, it can be colorless and busy leading to the opposite results.” The idea that the pleasantness of routes differs depending on the daily course of the sun, variance in temperature, and noise level is extremely insightful and nuanced.

As we continue to research the shortest path to happiness, we’re thinking about all these questions. If you find this concept as interesting as we do and live in Berlin, Boston, London, or Turin, then we’d love for you to share your memories around a few paths in your city here. You’ll be helping us with our research, and hopefully making people’s paths happier.

Goalr! The Science of Predicting the World Cup on Tumblr

By Mihajlo Grbovic, Vladan Radosavljevic, Nemanja Djuric, and Narayan Bhamidipati

With the 2014 FIFA World Cup kicking off on June 12, billions of fans across the world are turning their attention toward host country Brazil to root for their favorite teams. Soccer (or, if you prefer, football) fans are loud; you need only remember the last World Cup’s infamous vuvuzelas for a demonstration. But fans aren’t only loud in stadiums. They also make their voices heard across social media. And though you may assume these fans are just blowing their vuvuzelas into the social abyss, if you listen closely, you’ll discover a treasure trove of data — including possibly an answer to the most important question of all: Who will win?

As soccer fans and Yahoo Labs scientists with access to Tumblr data, we wanted to find out if we could take advantage of our unique insight to comb through an ocean of posts to predict a World Cup winner. And we have! But before we share our prediction on which nation will get to revel in World Cup glory, we’ll tell you how we figured it out.

Sifting through 188.9 million Tumblr blogs comprising 83.1 billion posts to find World Cup-related content wasn’t easy. To begin, we used two main parameters to determine which content was relevant: posts with hashtags referencing #WorldCup, #World Cup, #Copa do mundo (or other variants outlined in our technical report), and posts with hashtags referencing #soccer, #football, #futbol, etc.

However, using these parameters alone proved too broad. So once we isolated #WorldCup-related posts, we checked the bodies of the posts for mentions of country names. Then we did the same for #soccer-related posts (for Team USA, we counted only mentions in #soccer posts to avoid confusion with American football. For Team Brazil, we discounted a percentage of posts due the country hosting the event and thus receiving extra mentions — this was a percentage calculated based on an editorial evaluation on a sample of posts).

To get even more representative results, we checked the bodies of posts in both hashtag categories for mentions of any national team player according to FIFA’s official list of players for each nation.

Upon completion of our filtering, we were left with 27.3 million relevant posts from February through May. The fun (read: science-y) part came next.

In order to figure out how each country will stack up against each other, we needed to assign values of strength to each team. These values were calculated according to each matchup and provided a representative game score. More specifically, when two teams are positioned to play against each other, we estimated the number of goals scored by each team using a Poisson distribution with four differently-weighted parameters learned using the Maximum Likelihood algorithm on prior games (qualifications, friendlies, etc.). The four parameters included these: 1. Team mentions in #WorldCup-related posts, 2. Team mentions in #soccer-related posts, 3. The average number of player mentions per team, and 4. The standard deviation of player mentions per team.

Finally, we were left with a statistical model predicting the outcome of each successive matchup based on our calculations. Taking into account the 27.3 million relevant posts, we had a complete bracket and a winner: Team Brazil.

Do you agree with our prediction? Think some other team will win? Make sure to check back to see how well the World Cup social frenzy on Tumblr predicted the outcome.

Such a beautiful story of Ruby Robinson, Columbia University Engineering/Computer Science graduate didn’t expect her dad, an army captain deployed in Afghanistan to make it to her graduation. A last minute approval and help from the university allowed them to pull off this wonderful surprise. #blackgirlfly #bgfgrads #columbiauniversity #ivyleague #blackexcellence #achievement #classof2014 #blackgrads2k14 #computerscience #engineering #stem #blackgirlnerds #rubyrobinson

In my perspective … science and computer science is a liberal art, it’s something everyone should know how to use, at least, and harness in their life. It’s not something that should be relegated to 5 percent of the population over in the corner. It’s something that everybody should be exposed to and everyone should have mastery of to some extent, and that’s how we viewed computation and these computation devices.
5 things that Computer Science/Engineering students should focus on
  • The next billion customers: The IT revolution has probably reached a billion people of the world so far. In the next 5 years, it will reach the next billion. These will be a very different set of people. Many of them will be illiterate – so you need to focus on non-text, non-English interfaces – video, animations, voice recognition. Search for “English Seekho” to get an idea of what I mean. Most won’t have money or electricity for computers, so mobile devices will rule – so you need to start playing with mobile platforms like Android. In general, search for the “the next billion” and you’ll find some interesting material put together by the likes of Nokia, and MIT giving you ideas on what to focus on.

  • Usability: As IT touches the lives of more and more people, less and less of them will be “computer savvy”, and less and less of them will view computing devices as something that needs to be learnt. Consequently, the products that will succeed, will be the ones that are easy to use. And making something easy to use is rather difficult. It is a sub-discipline of computer science, and there is a lot of theory, and a bunch of well-defined algorithms and practices you can use to make things easy to use. The whole area is called HCI (Human Computer Interaction), and UCD (User Centered Design) is a part of it. It’s an area that you must be familiar with

  • Computer Science Fundamentals: This will never go out of fashion, and yes, when I look at students coming out of our colleges, this appears to be a rather neglected area. Far too much emphasis on specific programming languages, and specific “technologies” is a mistake. Whatever the future holds, you will be well served by knowing the basic theory of computer sciences. Learn data-structures and algorithms. If you don’t have a favourite data-structure, and an algorithm that you find beautiful, then your computer science education is incomplete. If, after seeing an algorithm, your first thought is not about the complexity of the algorithm (O(n), O(log n), etc.), then you need to hit your books again. If you’ve only learned Java and C#, and you don’t really understand pointers, heaps, stacks, you will sooner or later be at a disadvantage. Understand the basics. And while you’re at it, also learn mathematics and statistics.

  • Presentation skills: This is not a computer science skill, but this is one of the most important skills that computer science students are missing. You must treat presentation as equally important, or more important than your program, design, and algorithms. And you must spend as much time learning presentation (from books, in classes, and in practice) as you spent on programming languages, and computer science subjects. I’m sure you haven’t done that, hence this item in my list. You should know how to write well. Not just papers and documents, but much more importantly, emails, and blog posts, and facebook wall postings, and tweets. You must think about what the user/reader/client wants to know (instead of what you know and want to tell). And of course, you must know how to speak well. How to tell a story instead of listing some arcane facts about your work. How to leave out stuff that you find extremely interesting, but the listener doesn’t.

  • EconomicsScott Adams, the creator of Dilbert says: “When you have a working knowledge of economics, it’s like having a mild super power.” Basically, if you understand the fundamentals of economics, you can see and understand what drives people and technologies and success and failure a lot better than people who do not understand it. I hated the fact that I was made to study economics in IIT for my computer science course. It seemed like a complete waste of my time. Now, looking back, I think it was probably the most important course.

Source

http://punetech.com/5-things-that-computer-science-engineering-students-should-focus-on/

"Game programming is really fun. It is a great way to envision, design and create." - Rasheeda Yehuza

Do you have any female friends who play video games? Yes? Ok. How about females who develop video games?

According to Forbes, “the International Game Developers Association (IGDA) released a new report about the state of the industry, one that covers many interesting angles from average salary to number of employers and projects. But perhaps the most important point of data has to do with gender. The IGDA report shows that the number of female developers in the industry has doubled since 2009. Great news for the male-dominated industry, but even with that development, it still is largely male-dominated.”

 

The percentage of female developers at 22% is more than double what it was (11.5%) in 2009.

The figures are quite encouraging. But what are our female programmers in Africa up to? Are there any to begin with? Google “African female game developers”,and you will find close to nothing on that. 

More females in the game industry will definitely better represent and appeal to young girls and women. But, more importantly, is there a way we can encourage education through game development, in our African setting, to get more of our women involved in technology, and the game industry?

Today, we acknowledge a Ghanaian female Computer Scientist and Game Programmer forging her own path into the industry. She also happens to be co-founder of CNN-featured Tech Needs Girls, Ghana.

 Meet Rasheeda Mandeeya Yehuza.

 

Computer Scientist/Game Developer, Rasheeda Yehuza

Rasheeda attended St. Mary’s High school in Accra, Ghana, where she studied General Science. She continued her tertiary education at the Kwame Nkrumah University of Science and Technology (KNUST) where she majored in Computer Science. Rasheeda is currently pursuing an MPhil in Computer Science also at KNUST.

Rasheeda at the 2015 Engineers Without Borders National Conference in Montreal, Canada.

  • What prompted your interest in Computer Science?

“I have always been curious about computers and how humans interact with it. I was fascinated by automated programs and I wanted to build my own website when I was 8 years old after learning about the World Wide Web. After high school, I was determined to study Computer Science. However, my family wanted me to study Medicine or Nursing. I knew I didn’t want to be in the health sciences even though it’s super cool and all. I was at a crossroad and my friends encouraged me to choose Computer Science. I secretly chose to pursue it and was offered admission at KNUST. I was also offered admission to study Nursing at a different university. I was pressurized to study Nursing (in fact it wasn’t even a choice). But when I received money to pay my fees, I paid for Computer Science at KNUST. I finally informed my family about my decision, and surprisingly, they were cool and told me to do what I wanted to do even though they clearly thought I made the wrong decision.”

  • What have been some of your achievements so far?

“I’m hoping mentioning some of my achievements will inspire a reader. I have a burning desire to improve systems in Ghana through technology as well as an entrepreneurship spirit to be a leading force in technology in the country and Africa as a whole. I started an online platform called Click Trade Ghana with a friend, now deprecated. Click Trade Ghana was an online application to connect sellers and buyers in Ghana. Even though Click Trade Ghana didn’t work out, I still view this as an achievement because it was the first huge project I ever worked on, and personally engineering it from design to deployment, I learnt a lot as a project lead as well improving my tech skills and unlearning and learning new tricks.

While working on Click Trade Ghana, I was running a free software brand called Snapso and built a couple of free programs under the brand. Snapso was a fun project and from that I improved my skills in game programming. Among the products I released under Snapso include, the Snapso Shutdown Manager and Web Browser, the 3D Buju Hunt Game and Sphere Attack games among others.

While working on my final year Computer Science project, I saw the need to turn my project into a business and started a web platform for easy information dissemination via SMS called Nasara Mobile. I was and still am passionate about improving systems in Ghana through technology and decided to expand the Nasara brand by introducing a “mother” company called Nasara Tech in early 2013. Nasara Tech currently has two in-house products, Nasara Mobile and the Nasara Voting System. The team has grown to 4 members, including myself, and we also build custom web applications and provide consulting to organizations.

As part of my initiative to empower females in the technology sector, I co-founded Tech Needs Girls Ghana where I mentor girls at workshops we organize to encourage them to pursue Computer Science or other Science, Technology, Engineering and Mathematics (STEM) related fields. We also introduce them to female mentors who help to inspire them.

I am currently a Software Engineer at VOTO Mobile. VOTO Mobile is a technology that bridges the gap of communication between organizations and the people they serve, by using voice and SMS technology to connect with people via the mobile phone while providing an interactive menu for decision making and real time results to users.”

  • Do you feel that women are underrepresented in the gaming industry?

“Yes, I strongly feel females are underrepresented in the gaming industry. There are barely a handful of females you can point out as a game programmer in the industry and I think that needs to change.”

  • When you decided to enter the field of Game Programming, did you encounter any resistance based upon your gender? If so, how did you deal with it?

“I did encounter resistance mainly because of the game programming industry in Ghana. I heard of one company building games and I was discouraged by my friends because I thought there were no jobs out there in Ghana for game programmers and they were right, however, I didn’t start game programming because I wanted to get paid, so it made it easier to just keep doing what I enjoyed.”

  • Do you think that having more female Game Developers will change the types of games made and the characters in these games? If so, how?

“I do think so, because no one outside the female triangle can understand how females think and feel. Most of the games out there are gender biased, and even though I enjoy playing hard core games like Call of Duty, I do believe there are lots of females who don’t play video games because it is difficult to identify with the plots and characters. There is so much females go through, and more female designers will mean transcending these qualities into likeable and related characters in games.”

  • What is your advice for women hoping to enter the gaming industry?

“Game programming is really fun. It is a great way to envision, design and create. I advise women to venture into the field. We need more women in this industry to create relatable games in different dimensions. There is a huge industry out there and it’s time more women step up for a piece of the cake.”

  • If you could use Game Development to solve any African problem, what would this problem be and how would you go about it?

“I have been thinking about something similar for a while. I love playing real time strategy games and so I will design and build a strategy game that allows players to simulate a country. The game should load the current problems in the country and the user would be tasked to solve the problems in the country. The game will be intelligent enough to know how decisions affect the economy, the citizen’s happiness, migration and lots of factors influencing the country’s development. I think this will be a huge game and project and if I ever come close, I would be the happiest.”

  • What are your plans and goals for the future?

“I have so many plans and goals for the future, but I will summarize everything in a sentence or two. I plan to continue building Nasara Tech Company Limited and releasing an addictive game in the near future, as well as helping build VOTO Mobile and empowering females in technology through Tech Needs Girls.”

Check out Nasara Mobile here: http://www.nasaramobile.com/

You can also check out Rasheeda’s first 3D game, “Buju Hunt” here:

https://www.youtube.com/watch?v=L26znMKT7eI

CS is not for me

Eugene Wallingford:

Of course, using a powerful, fun language in CS1 creates a new set of problems for us. A while back, a CS educator on the SIGCSE mailing list pointed out one:

Starting in Python postpones the discovery that “CS is not for me”.

After years of languages such as C++, Java, and Ada in CS1, which hastened the exit of many a potential CS major, it’s ironic that our new problem might be students succeeding too long for their own good. When they do discover that CS isn’t for them, they will be stuck with the ability to write scripts and analyze data.

With all due concern for not wasting students’ time, this is a problem we in CS should willingly accept.

(via Jens Ohlig)

When I was seven years old I took group swimming lessons.

I didn’t learn to swim.

When I was eleven years old my family joined a local health club and went nearly every morning for years. They had a pool which I would horse around in.

After many months in the pool I taught myself to swim, quite by accident.

※ ※ ※

My first programming course was BASIC on an IBM PC. While not full-blown computer-sciencey is was structured.

I hated it and didn’t want anything to do with programming after the first lesson.

Years later we bought a used Mac Plus with this thing called HyperCard. I explored it intensely and taught myself to program, again quite by accident.

※ ※ ※

I came to computer science from the wrong side of the tracks. Other have before me, and others will after me.

Attempting to weed out entrants is a disservice to the whole of computer science: its teachers, students and practitioners.

Weeding out entrants has a noble intent to help students discover that computer science isn’t for them at an early stage, however it is insular and conceited.

Many — perhaps most — entrants will do well to jump directly into the deep end of the computer science pool. However room should be allowed for those who want to splash around in the shallow end first.

Ten Things Every Computer Science Major Should Learn

1. The basics of economics - An introductory course covering topics like complements and substitutes is vital for working in the greater economy, or just simply understanding it. While the concept of a Giffen Good won’t necessarily help you, knowing about externalities will. It might also help you appreciate that more situations are win-win than you might have realized.

2. How to write a proof - All computer science majors should know how to write a proof. And discrete math, while a part of a well balanced breakfast, doesn’t count. [Induction is just one proof technique, and you can get by without actually knowing much about proofs.] A course in algebra or real analysis is necessary to really write proofs. And by algebra I mean group theory or abstract algebra, not the course you took in high school. For the full benefit, take algebra and real analysis in the same term.

Why is proof writing essential? Because it’s programming! Think about when you first learned how to program: if a task required an “if” and a loop, you might not have had any intuition on where to put them in relation to each other. But now the same task would feel completely natural. Writing a proof is very similar. There is a set of tricks that you learn, and once you learn them things look quite different.

3. How to write - Written communication skills are essential, whether you’ll work in the industry or academia. It’s best if you can find a mechanics course, and not a writing course that is effectively about a different topic. That is, many schools will try to make the writing courses more relevant or interesting by making it be about a special topic. Try to go for the “boring” version of the course.

4. Probability and statistics - There are some things that you’ll only pick up properly by taking a course. Together with the CS major requirements (which should give you discrete math, single variable and multiple variable calculus, and linear algebra) and algebra and/or real analysis, picking up statistics will probably give you a minor in math. Learning statistics can help you work with other scientists on their projects.

5. The current hot topic - In previous decades, it might have been databases, or object-oriented programming. Today it might be web programming or service-oriented architecture. Whatever the current fad is, be sure to take a course in it. If only to see what the fad is about.

6. The halting problem - Most problems cannot be solved by machines. This is a fairly deep idea that our culture has absorbed so well that it no longer sounds shocking. The same goes with radio, Goedel, and the atomic bomb; it wasn’t until postmodern art and the cold war that we could once again cope with these concepts. However, taking a course in computability theory can re-sensitize you to this pretty amazing proof.

7. Pure functional programming - You most likely won’t go into pure functional programming, unless you do research in it or work for a select few companies, but knowing it will help you be a better programmer. The reason is that you will learn many new forms of abstraction, and concepts like Church numbers and continuations and monads and, yes, recursion, and these tools can be applied to your next Java program too.

8. P and NP - OK, this one is already on your critical path, but pay attention anyway. You want to be sure you can correct someone when they incorrectly call NP “non-polynomial.” As if!

9. The topics from the course you’re sure to hate - This could be a CS course you find too-low-level, too-theoretical, or a non-CS course you find too-objectionable, too-hard, or too-boring. If a course like this seems to be an issue for you, and you find yourself explaining to others why you’re so glad you don’t have to take so-and-so, it should tell you that you’ll learn a lot by taking the course! Perhaps you won’t learn the materials of the course, but you’ll learn about your own limits and perhaps more about the justifications you make to yourself. [Hint: They are usually weak.]

10. The non-CS course you’re sure to love - In the end, you should have some fun. This is the course you’ll probably get the least out of, but take it anyway. Do it once. If you happen to love many courses, then good for you, but be sure it doesn’t get in the way of covering the rest of the courses on this list.

Source

http://profshonle.blogspot.com/2010/08/ten-things-every-computer-science-major.html