4.6
635 ratings
139 reviews

#### 100% online

Start instantly and learn at your own schedule.

#### Approx. 16 hours to complete

Suggested: 4 weeks of study, 6–8 hours/week...

#### English

Subtitles: English, Vietnamese

### Skills you will gain

AlgorithmsProgramming Language ConceptsProblem SolvingC Programming

#### 100% online

Start instantly and learn at your own schedule.

#### Approx. 16 hours to complete

Suggested: 4 weeks of study, 6–8 hours/week...

#### English

Subtitles: English, Vietnamese

### Syllabus - What you will learn from this course

Week
1
2 hours to complete

## Introduction

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....
8 videos (Total 33 min), 9 readings, 3 quizzes
8 videos
Stepping Through An Algorithm4m
Testing an Algorithm for a Numerical Sequence3m
A Pattern of Squares4m
Testing a Pattern of Squares2m
Drawing a Rectangle4m
Closest Point5m
Generalizing Closest Point5m
Programming: Plan First, Then Code3m
Overview of the Seven Steps5m
Algorithms10m
Step 1: Work an Example Yourself5m
Step 2: Write Down What You Just Did4m
A Pattern of Squares6m
Next Steps4m
3 practice exercises
Steps 1–46m
Algorithm Practice6m
Algorithms30m
Week
2
4 hours to complete

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....
12 videos (Total 38 min), 17 readings, 8 quizzes
12 videos
Declaring and Assigning a Variable2m
Examples of Expressions2m
Using Functions for Abstraction4m
Execution of Function Calls4m
Printing Example2m
Execution of If/Else3m
Execution of Switch/Case3m
While Loops3m
Equivalent For and While Loops2m
Execution of Nested Loops3m
Execution of Continue2m
Declaring a Variable10m
Assigning a Variable10m
Expressions with Common Operators10m
Anatomy of a Function10m
How to Evaluate a Function10m
Scope10m
Printing10m
Conditional Statements10m
If/Else10m
Switch/Case10m
Shorthand10m
Loops for Repetition10m
While Loops10m
Do/While Loops10m
For Loops10m
Continue and Break10m
Higher-level Meaning10m
8 practice exercises
Variables and Expressions8m
Functions4m
Printing4m
Logical Operators4m
Conditional Statements4m
While Loops2m
Loops4m
Week
3
4 hours to complete

## Types

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....
7 videos (Total 19 min), 18 readings, 6 quizzes
7 videos
Types and Formatted Output4m
Type Conversion2m
Everything Is a Number2m
Struct for a Rectangle2m
Uses of Typedef3m
Enumerated Types3m
Converting between Decimal and Binary10m
Looking under the Hood10m
Basic Data Types10m
char10m
int10m
float and double10m
Printing redux10m
Expressions Have Types10m
Type Conversion10m
Casting10m
Overflow and Underflow10m
"Non-numbers"10m
Strings10m
Images10m
Sound and Video10m
Structs10m
Typedef10m
Enumerated Types10m
6 practice exercises
Decimal, Hex, and Binary8m
Basic Data Types8m
Expressions Have Types6m
"Non-numbers"6m
Complex, Custom Data Types6m
Types20m
Week
4
1 hour to complete

## 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....
2 videos (Total 4 min), 1 reading, 1 quiz
2 videos
Introduction to Sorting1m
Sample PB&J Algorithm with Feedback10m
1 practice exercise
Writing a Sorting Algorithms
4.6
139 Reviews

## 40%

started a new career after completing these courses

## 37%

got a tangible career benefit from this course

## 13%

got a pay increase or promotion

### Top Reviews

By MMDec 27th 2017

Well worth it! Hated it in the beginning, couldn't wrap my head around the algorithms, but the course studies helped, kept reading, watching the videos, FINALLY got it!\n\n100% can recommend!

By VVNov 11th 2018

Best Course I've taken on programming. Special thanks to the mentors, very clear and patient to explain each thing elaborately! Course is in great detail and made easy for Beginners. Thanks!

## Instructors

### Andrew D. Hilton

Associate Professor of the Practice
Electrical and Computer Engineering

### Genevieve M. Lipp

Electrical and Computer Engineering/Mechanical Engineering

### Anne Bracy

Senior Lecturer
Computer Science, Cornell University

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....

## About the Introduction to Programming in C Specialization

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....