When you enroll in this course, you'll also be enrolled in this Specialization.
Learn new concepts from industry experts
Gain a foundational understanding of a subject or tool
Develop job-relevant skills with hands-on projects
Earn a shareable career certificate
There are 4 modules in this course
Embark on your programming journey! This introductory course teaches you the fundamental principles of programming in C that are applicable to any language you might want to learn. Master a powerful seven-step problem-solving process for developing effective algorithms. Learn to read and understand code, transforming complex challenges into manageable solutions. No prior experience needed. Develop core skills for software development and enhance your career prospects in diverse fields. By the end of this course, you will be able to develop algorithms that are specific and correct.
This module introduces a powerful process for solving any programming problem—the Seven Steps. You will learn how to approach a programming problem methodically, so you can formulate an algorithm that is specific and correct. You will work through examples with sequences of numbers and graphical patterns to develop the skill of algorithm development.
What's included
8 videos10 readings4 assignments
Show info about module content
8 videos•Total 33 minutes
Why You Should Learn to Program•4 minutes
Stepping Through An Algorithm•4 minutes
Testing an Algorithm for a Numerical Sequence•3 minutes
A Pattern of Squares•5 minutes
Testing a Pattern of Squares•2 minutes
Drawing a Rectangle•4 minutes
Closest Point•5 minutes
Generalizing Closest Point•5 minutes
10 readings•Total 66 minutes
Programming: Plan First, Then Code•3 minutes
Overview of the Seven Steps•5 minutes
Algorithms•10 minutes
Report a problem with the course•10 minutes
Step 1: Work an Example Yourself•5 minutes
Step 2: Write Down What You Just Did•4 minutes
Step 3: Generalize Your Steps•10 minutes
Step 4: Test Your Algorithm•9 minutes
A Pattern of Squares•6 minutes
Next Steps•4 minutes
4 assignments•Total 120 minutes
Algorithms•30 minutes
How to Write a Program with the Seven Steps•30 minutes
Steps 1–4•30 minutes
Algorithm Practice•30 minutes
Reading Code
Module 2•7 hours to complete
Module details
In this module, you will learn to read code—this means you will be able to execute a piece of code by hand, and clearly illustrate what each statement does and what the state of the program is. Understanding how to read code is the only way to be sure you can write correct code. By the end of this module, you will be able to read and understand code with functions, conditional statements, iteration, and other fundamental techniques.
What's included
12 videos17 readings8 assignments
Show info about module content
12 videos•Total 38 minutes
Why You Should Learn to Read Code•3 minutes
Declaring and Assigning a Variable•2 minutes
Examples of Expressions•2 minutes
Using Functions for Abstraction•4 minutes
Execution of Function Calls•5 minutes
Printing Example•3 minutes
Execution of If/Else•3 minutes
Execution of Switch/Case•3 minutes
While Loops•3 minutes
Equivalent For and While Loops•2 minutes
Execution of Nested Loops•4 minutes
Execution of Continue•3 minutes
17 readings•Total 170 minutes
Declaring a Variable•10 minutes
Assigning a Variable•10 minutes
Expressions with Common Operators•10 minutes
Anatomy of a Function•10 minutes
How to Evaluate a Function•10 minutes
Scope•10 minutes
Printing•10 minutes
Conditional Statements•10 minutes
If/Else•10 minutes
Switch/Case•10 minutes
Shorthand•10 minutes
Loops for Repetition•10 minutes
While Loops•10 minutes
Do/While Loops•10 minutes
For Loops•10 minutes
Continue and Break•10 minutes
Higher-level Meaning•10 minutes
8 assignments•Total 240 minutes
Reading Code•30 minutes
Variables and Expressions•30 minutes
Functions •30 minutes
Printing •30 minutes
Logical Operators •30 minutes
Conditional Statements•30 minutes
While Loops •30 minutes
Loops •30 minutes
Types
Module 3•6 hours to complete
Module details
Everything is a number to a computer, but types determine the size and interpretation of numbers. In this module you will learn about types beyond integers, both their conceptual representations, and their hardware representations in binary. You will learn basic data types, "non-number" types, and complex, custom types, as well as some important caveats, so you will avoid type-related programming mistakes.
What's included
8 videos18 readings6 assignments
Show info about module content
8 videos•Total 23 minutes
Introduction to Types•1 minute
Types and Formatted Output•4 minutes
Type Conversion•2 minutes
Everything Is a Number•3 minutes
Struct for a Rectangle•2 minutes
Uses of Typedef•3 minutes
Enumerated Types•3 minutes
A Duke Software Engineering Student on the Importance of Planning•4 minutes
18 readings•Total 180 minutes
Binary Numbers•10 minutes
Looking under the Hood•10 minutes
Basic Data Types•10 minutes
char•10 minutes
int•10 minutes
float and double•10 minutes
Printing redux•10 minutes
Expressions Have Types•10 minutes
Type Conversion•10 minutes
Casting•10 minutes
Overflow and Underflow•10 minutes
"Non-numbers"•10 minutes
Strings•10 minutes
Images•10 minutes
Sound and Video•10 minutes
Structs•10 minutes
Typedef•10 minutes
Enumerated Types•10 minutes
6 assignments•Total 180 minutes
Types•30 minutes
Decimal, Hex, and Binary•30 minutes
Basic Data Types•30 minutes
Expressions Have Types •30 minutes
"Non-numbers"•30 minutes
Complex, Custom Data Types•30 minutes
Project
Module 4•1 hour to complete
Module details
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.
What's included
2 videos2 readings1 assignment
Show info about module content
2 videos•Total 4 minutes
Importance of Writing a Specific Algorithm•2 minutes
Introduction to Sorting•2 minutes
2 readings•Total 20 minutes
Sample PB&J Algorithm with Feedback•10 minutes
Share your learning experience•10 minutes
1 assignment•Total 60 minutes
Writing a Sorting Algorithm•60 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructors
Instructor ratings
Instructor ratings
We asked all learners to give feedback on our instructors based on the quality of their teaching style.
Duke University has about 13,000 undergraduate and graduate students and a world-class faculty helping to expand the frontiers of knowledge. The university has a strong commitment to applying knowledge in service to society, both near its North Carolina campus and around the world.
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."
Learner reviews
4.7
7,010 reviews
5 stars
74.73%
4 stars
20.03%
3 stars
3%
2 stars
0.82%
1 star
1.38%
Showing 3 of 7010
V
VV
4·
Reviewed on May 6, 2020
Very in-depth and detailed explanation in introoductionto programming.If you are a beginner,I recommend you start with C.Some background is crucial or you will be confused in the later lectures.
M
MK
5·
Reviewed on Jan 27, 2021
It's a very good as a beginning with programing language. It helped me to think like a compiler and how it exactly works. I've finally understood the saying "Everything in computer works in logic".♥
T
TK
5·
Reviewed on Sep 23, 2019
This is an excellent introduction to programming in general.It gives the building blocks towards professional programming regardless of the programming language or industry you are aiming at.
Will I receive a transcript from Duke University for completing this course?
No. Completion of a Coursera course does not earn you academic credit from Duke; therefore, Duke is not able to provide you with a university transcript. However, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.