Wednesday, July 23, 2014

New Course: Software Development Life Cycles

Software engineering is much more than programming. It encompasses a wide range of systematic tasks from gathering requirements up to testing and shipping the final product.

We are very excited to introduce Software Development Life Cycles, a course created in partnership with Georgia Tech as a part of the Online Masters Degree in Computer Science. Taught by Professor Alex Orso, the class covers software phases, requirements engineering and software testing methods.



You will go through all the stages of software development as you design and build your own Android app for the final project. You will also learn about:

  • Integrated Development Environments (IDE)
  • Git (and Github!)
  • Unified Modeling Language (UML)

Ready to get started?

Monday, July 21, 2014

NEW! Earn a Certificate for Intro to Java Programming!

Learn Java from Cay and Sara
Today, we are excited to announce that you now have access to coaching support and can earn a certificate for Intro to Java Programming!

Java was initially released in 1995 by Sun Microsystems (now part of Oracle). It was designed to be platform-independent, with the slogan “write once, run anywhere.” Java is also an object-oriented programming language, meaning you can use code written by others to create your own programs.

Intro to Java Programming teaches you everything you need to know to get started as a Java programmer. With the paid course experience, you’ll have access to a personal Coach to help you tailor your learning goals and answer any questions that you might have about the course material. After passing an oral exam, you’ll also earn a certificate verifying your new programming skills.

Java is a great language to learn if you’re looking to become an Android Developer. Upon completing the course, you’ll be perfectly poised to continue on to Developing Android Apps.

We’ll see you in class!


Friday, July 18, 2014

New Statistics Courses: Understand & Make Predictions Using Data

Quick, how long is your daily commute to work? (or to school, coffee shop, or favorite breakfast hangout)?  If you came up with an answer, then you already are a statistician!

If you came up with an answer like “It usually takes me 30 minutes,” then you are already using the subject of our new course, Descriptive Statistics, to describe and summarize data.  

If you came up with an answer like “It usually takes me 30 minutes, give or take about 5 minutes,” you are already constructing confidence intervals, a topic covered in our second new course, Inferential Statistics!  

Why should you learn statistics? Statistics is formalized intuition.  Most people already use it on a daily basis (most people...that sounds like a statistics word, right?).  In these two introductory courses, you will learn the difference between probability and statistics, and see how statistics is pervasive in our personal and professional life.  

Even better, you can apply concepts learned to every industry, subject, and passion in your life. Statistics forms the underlying prerequisite skill set for careers in Data Science, Computer Science, and many more technical and non-technical sectors.  

In Descriptive Statistics, you will learn to gain insight from data by calculating sample statistics that summarize central tendency.  Learn to visualize data using histograms, quickly compare sample distributions to the Normal Distribution, and calculate variance, skew, and kurtosis.  

In Inferential Statistics, learn to construct 95% and 99% confidence intervals, test statistical hypotheses using the Standard Normal z-score, and expand out of normality with the Student’s t-distribution.    

If this is a completely new subject to you, begin with Descriptive Statistics and continue on to Inferential Statistics.  See you in class!

Wednesday, July 16, 2014

Awesome Student Projects from Web Performance Optimization

The sample portfolio you'll optimize in class.
I’m Cameron Pittman and I love helping you make better websites. A few weeks ago I launched my first Udacity course, Website Performance Optimization, powered by the expertise of Ilya Grigorik from Google. 

Today, I want to celebrate my amazing students and the awesome portfolio projects they’ve been optimizing.

I taught high school physics and chemistry for four years and I miss being a high school teacher. There’s an intimacy in the classroom that isn’t possible online. I loved watching my students’ faces light up when new ideas clicked, and I loved seeing their scrunched faces tilt sideways when concepts didn’t make sense. I miss the immediate feedback. If (or rather when) I screwed up a lesson, I had a chance to make changes and try again a few minutes later.

Online? It’s not quite the same (yet!).

But! This is why I love Website Performance Optimization. I purposefully inserted a few questions that ask you to post your answer on the forums even though your answers could have been graded programmatically. I wanted to regain a bit of that sense of immediate classroom feedback. I wanted to dissect and probe your thinking. And the response has been tremendous! So many great answers and conversations. One of my favorites is the Optimized Portfolios discussion where students are showcasing the websites they’ve made lightning fast.

A few projects really stand out.

First of all, special recognition to students Md. Chowdhury and WojciechJ for reaching perfect scores on PageSpeed Insights for their portfolios! This was not an easy task and it took quite a bit of creativity to work around some of the limitations of GitHub Pages.




Next up, students Aliaksei, Nikita Pecasa, Nitish, julesflwr, Tamas_2713, Geoffrey-63, Hayden Pierce, Cloud-5, Daniel Magro, stefan--, Jan Sedlak, deepix, and Leyu Sisay all deserve credit for going above and beyond the project’s requirements and reaching at least an average of 95 on PageSpeed Insights! Awesome job everyone!

Lastly, I want to recognize student gosukiwi for a few reasons. (1) He was the first to post his optimized website, (2) he improved his personal portfolio’s PageSpeed scores to a strong 87 on mobile and an impressive 93 on desktop, and (3) he provided clear, step-by-step explanations of his improvements alongside the Timeline data that informed his optimizations. Great job gosukiwi!

Do you see any potential optimizations in the portfolio source code?
Thanks to everyone else who’s taken the effort to improve their page’s performance! I can’t wait to see what you do next :)

Tuesday, July 15, 2014

New Course: Android Fundamentals by Google

The wait is over! After offering a sneak preview a couple of weeks ago, we’re now releasing the entire course on Developing Android Apps: Android Fundamentals that Google developed with us.

Together with Google's Reto Meier, Katherine Kuan and Dan Galpin, you’ll learn the tools and best practices behind mobile and Android development, all while building your own Android app.  

The time for learning Android is now. 

Android is growing - one billion Android devices activated, and counting - and Android developers are in demand. We worked with Google to determine what successful Android developers should know and this course is their answer.

Meet your instructors: 



Check out the weather app you’ll develop in the course, which will familiarize you with Android development in preparation for developing your own app as a final project: 

You’ll also learn Android history! Throughout the course, Reto tells you stories from the early days of Android.


We’ll see you in class!

Summer Special: 15% off our 2 most popular introductory Computer Science courses

Learn Python with your instructor Kunal in Programming Foundations with Python
The FIFA World Cup is over (congrats Germany!) and Summer is in full swing, at least for the great majority of our students.

For some, it means vacation time. For others, things may be a little slower at work.

So this may be the perfect time to prep for a more tech-powered future and to learn the fundamentals of Computer Science.

Here’s a discount* of 15% on 2 introductory courses, valid until Monday, July 21st:


Simply click on the links above to unlock the offer. Our free two-week trial still applies.

Happy Learning!

*Offer ends Monday, July 21st 2014, at 11:59pm, PDT. Spots are limited and offer is subject to availability. One offer per customer, while there are open spots. Not valid on previous purchases. No substitutions allowed, and cannot be combined with any other offer. Offer only applies to authorized purchases. We reserve the right to modify or cancel this promotion due to unforeseen problems. Other restrictions may apply.

Monday, July 14, 2014

Lifelong Learning - Or - How I Learned How to Code

Hi, I'm Cameron!
I’m Cameron, a Udacity Course Developer and lifelong learner. I’m inspired every day by Udacity students who challenge themselves to learn programming, and I recently shared my own journey to becoming a coder - as well as some major revelations about how to learn - on my blog

Here’s how I learned to leverage projects and goals to become a programmer: 

I dabbled in code when I was in college working on my minor in astronomy. For my stellar astrophysics course, we had to simulate a star for the final project. Throughout the semester, we worked through assignments that required some kind of code to solve. I squeaked through class by pushing Excel and its ability to iterate formulas over rows to its limits. For the final project, I had a set of seven differential equations I needed to iterate over at least 100,000 times. I realized that learning a little bit of code might make solving the project way less frustrating. I’m not sure why, but I went with C++ (probably because I thought it had a cool name). After a week of playing with online C++ tutorials, I could throw together some math into int main() and see results (and yes, I did score an A on the project).

Flash forwards four years and I had forgotten pretty much everything I had learned about code. I was working for a web startup and felt silly that I had zero understanding of the platform on which my product was being built. So I decided to learn.

I didn’t have a goal in mind at first besides “learning,” which is a terrible motivator. I’m lucky that my addiction to learning kept me going, but I felt a distinct lack of direction. It was just an intellectual exercise. As soon as I felt satisfied that some new type of thinking had creeped into my brain (which happened shortly after finishing a few coding exercises) I lost momentum and motivation to learn. My progress slowed and stalled. That is, until I figured out how to redouble my efforts to actually become a programmer.

I had to define a problem for myself. At the time, we were comparing different online education websites. I wanted an automated way to learn about lots of websites very quickly and I wasn’t thrilled at the prospect of clicking through thousands of links to copy and paste millions of pieces of information, so I decided to build a web crawler (and, wow, I wish I had known about Udacity’s Intro to Computer Science course then). All of a sudden, I had this project that was clawing at my brain, pushing me to learn at an ever accelerating rate. I started writing programs with functions. I started implementing objects. I learned how to pull in the Beautiful Soup library. I started poring through inane details of Python documentation. I started learning about HTML and the purpose of tags and classes and hierarchical relationships. I got obsessed by the problem and got some help from the engineers at work. They helped me put together my code and I got the chance to see how real engineers work and think.

And, holy cow, did it feel good when it actually worked.

Long story short: if you want to learn how to program, give yourself a project and a goal. What do you want to be able to do? Something outlandish like “make the next Call of Duty from scratch” isn’t going to work. But “I want to make a box appear on the screen and make it move” could be perfect. Or maybe you could just automate one part of your day. Try a fun, small project and it will only lead to more interesting problems.

Give yourself a problem and get started!