Programming Fundamentals
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Programming Fundamentals
This course is part of Introductory C Programming Specialization
236,409 already enrolled
Included with
Learn more
Ask Coursera
7,021 reviews
7,021 reviews
What you'll learn
Apply the Seven Steps problem-solving process to develop effective algorithms.
Analyze code with functions, conditional statements, iteration, and other fundamental techniques.
Identify data types beyond integers and some important caveats for avoiding programming mistakes.
Skills you'll gain
Tools you'll learn
Details to know
19 assignments
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- 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
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
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
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
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
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
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
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
Offered by
Explore more from Algorithms
- Status: Free TrialU
University of California, Santa Cruz
Course
- Status: PreviewS
Simplilearn
Course
- P
Packt
Course
Why people choose Coursera for their career
Learner reviews
- 5 stars
74.76%
- 4 stars
20.01%
- 3 stars
3%
- 2 stars
0.82%
- 1 star
1.38%
Showing 3 of 7021
Reviewed on Nov 25, 2025
compared to other courses each module felt a bit long, to many lessons for one module, there was also a lot of reading, i would have liked more videos and excercises. The content was very good
Reviewed on Aug 13, 2020
The instruction provided in this course are very clear and anyone who can learn coding by this course. But the course has more readable content for you to take notes and reading it may take more time.
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".β₯
Frequently asked questions
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.
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.
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.
More questions
Financial aid available,
