Programming is an increasingly important skill, whether you aspire to a career in software development, or in other fields. This course is the first in the specialization Introduction to Programming in C, but its lessons extend to any language you might want to learn. This is because programming is fundamentally about figuring out how to solve a class of problems and writing the algorithm, a clear set of steps to solve any problem in its class. This course will introduce you to a powerful problem-solving process—the Seven Steps—which you can use to solve any programming problem. In this course, you will learn how to develop an algorithm, then progress to reading code and understanding how programming concepts relate to algorithms.

SS

I love the focus of this first course in the specialization is about problem solving and developing a mindset for programming. The course is well thought out and concepts are clearly explained!

AM

Apr 08, 2019

Filled StarFilled StarFilled StarFilled StarFilled Star

Really great course. Took this as a refresher. I feel that the content of this course was significantly higher quality than the programming tuition I received in first semester of university.

Из урока

Project

You have learned a lot about designing algorithms and the programming concepts that will help you implement them. For this project, you will develop and test your own algorithm for sorting data. This module will reinforce the importance of being specific when you write an algorithm and provide an opportunity for you to do so yourself, for a very common computational task: sorting.

Преподаватели

Andrew D. Hilton

Associate Professor of the Practice

Genevieve M. Lipp

Assistant Professor of the Practice

Anne Bracy

Senior Lecturer

Текст видео

Your final project in this course is going to be to write a sorting algorithm. That is an algorithm that takes a sequence of numbers as input and puts them in ascending order from largest to smallest. For example, if you had the following input data, you would want your algorithm to rearrange them so that you have this sequence: the same numbers, but ordered from smallest to largest. Of course, what we did here, just reshuffled them all at once in a way that is very hard to generalize. You will want to think of a more step-by-step way to sort your data for any sequence of numbers. Okay, so why think about sorting? Well, for one thing, sorting is an important and ubiquitous algorithm in Computer Science. For example, my email client lets me sort my messages by subject, date, or a variety of other criteria. Sorting data makes it easier to find what you need. When I am on Facebook, there is a list of trending stories. How would you get the most popular stories from a list of all stories? You would sort by popularity, then take the top items from the list. Likewise, if I search google for something, it has many search results that might match my query, but sorts them based on its ranking of them, putting the results that are most likely to be the best at the top of the results it displays. And of course, there are many other examples. Another reason why we picked sorting for you to work on, is that there are many different correct ways to do it. It is good to learn that many problems have a lot of different solutions. As you peer review other peoples solutions, you will hopefully see approaches that are different from what you thought of. And lastly, it is easy to verify that the answer is correct. When you peer review someone else's algorithm, you can easily check if they got the right answer for some input data by looking to see if they put the data in the right order. So now let us put the seven steps to use and write a sorting algorithm.