This specialization develops strong programming fundamentals for learners who want to solve complex problems by writing computer programs. Through four courses, you will learn to develop algorithms in a systematic way and read and write the C code to implement them. This will prepare you to pursue a career in software development or other computational fields.
Successful completion of this Specialization will be considered by admissions as a demonstration of your skill and enhance your master’s application to Duke’s Pratt School of Engineering.
What is the refund policy?
Can I just enroll in a single course?
Yes! To get started, click the course card that interests you and enroll. You can enroll and complete the course to earn a shareable certificate, or you can audit it to view the course materials for free. When you subscribe to a course that is part of a Specialization, you’re automatically subscribed to the full Specialization. Visit your learner dashboard to track your progress.
Is financial aid available?
Can I take the course for free?
Is this course really 100% online? Do I need to attend any classes in person?
This course is completely online, so there’s no need to show up to a classroom in person. You can access your lectures, readings and assignments anytime and anywhere via the web or your mobile device.
Will I earn university credit for completing the Specialization?
This Specialization doesn't carry university credit, but some universities may choose to accept Specialization Certificates for credit. Check with your institution to learn more.
How long does it take to complete the Specialization?
Each course is designed to take 4 weeks of study, with 6–8 hours per week. Some learners may work through the specialization more or less quickly.
What background knowledge is necessary?
This specialization is for learners who have an interest in learning how to program, for people with no programming experience or for people with some experience who would like to gain solid fundamentals and a deeper understanding of how to program effectively.
Do I need to take the courses in a specific order?
If you are new to programming, you should take the courses in order. Otherwise, you could start with Course 2 or Course 3, depending on your previous experience. Intermediate programmers new to C may like to start with Course 1 to learn the basics of syntax (and review algorithm design relevant to all languages).
What will I be able to do upon completing the Specialization?
You will be able to approach a programming problem systematically, from designing an algorithm, to implementing it in code, to thoroughly testing your code. You will have a strong foundation in programming principles and be able to use C syntax fluently. Your final project will prove you can write a sophisticated program of intermediate scale—a Monte Carlo simulation to calculate poker hand probabilities.