Pointers, Arrays, and Recursion

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.

Created by: Andrew D. Hilton

icon
Quality Score

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 80 / 100

icon
Course Description

The third course in the specialization Introduction to Programming in C introduces the programming constructs pointers, arrays, and recursion. Pointers provide control and flexibility when programming in C by giving you a way to refer to the location of other data. Arrays provide a way to bundle data by guaranteeing sequences of data are grouped together. Finally, recursive functions-functions that call themselves-provide an alternative to iteration that are very useful for implementing certain algorithms.

icon
Instructor Details

Andrew D. Hilton

Andrew Hilton is an Associate Professor of the Practice in the Department of Electrical and Computer Engineering in the Pratt School of Engineering at Duke University. He has taught at Duke since 2012, and prior to that he was an advisory engineer at IBM. Among the courses Professor Hilton teaches at Duke is ECE 551, an intensive introduction to programming course that successfully prepares graduate students with no programming experience to learn programming and go on to complete more advanced programming courses. In recognition for excellence in teaching in the Pratt School of Engineering at Duke, Professor Hilton received the Klein Family Distinguished Teaching Award in 2015. Professor Hilton holds a PhD in Computer Science from the University of Pennsylvania.

icon
Reviews

4.0

30 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Andrew Z on 19-Jul-18

Wow! I took my first course that was heavy in C in college and I remember it being challenging. Eight years later, I have to say that C is still a challenging topic! I very much enjoying refreshing knowledge that I learned a very long time ago and had forgotten. I'm also pretty pleased with how much better I am at emacs :) I especially liked the clear introduction of how a program is actually organized in memory. Tail recursion explanation was very interesting as well. One thing that I would love to see improved is some of the testing exercises -- it is easy to get stuck and have several days of progress ruined without really learning anything new. This is small but extremely frustrating. Overall I really appreciate this course and think it was immensely helpful for me in my continuing studies. Very well organized and found the pace of the lectures excellent. Very happy and excited, thanks!

By Sehyun P on 30-Aug-18

difficult project but it was worth it

By Stephen L on 30-Apr-18

The content of this course was informative and very challenging. I definitely learned a few things about pointers in C that I didn't know before. If this course were on another platform I would give it 5 stars.However, this course isn't on another platform. It's on Coursera. I have never had such a frustrating time with any MOOC before this and I've completed several of them. The built-in terminal that we used to complete our assignments would often kick me out without any notice. I received no credit for most of my completed assignments due to some bug on Coursera's end. This bug was first reported months before I started the class and it persisted up until my final week of the course. I think that I completed the course but I'm not sure. It's tough to be certain when you click the link to view your certificate and it raises an error.

By Will O on 7-Mar-19

The course requires 100% perfection in order to move on from one assignment to the next in the course as well as from one course to the next within the specialization. This expectation becomes incredibly challenging based upon 1) the minimal teaching videos, 2) lack of programming examples and practice exercises, 3) requiring students to learn and implement tools not addressed in the lessons (e.g. qsort() and void * variables), and 4) heavily relying upon reading out-of-context selections from a textbook co-written by one of the instructors. The structure of this course consistently poses a problem (see the discussions) when a student struggles to understand the material or cannot figure out how to fix their program, even when submitting screenshots of bugs within the course grader. Too often, the instructors and/or their staff ignore questions and do not always provide feedback to assist the student in understanding why their code does not work (once again see the discussions). These flaws could be overlooked if auditing these courses were an option, but at $49 per month these courses should be designed to enable students to learn foundational concepts without demanding absolute perfection. For students who want to learn C Programming, a much better option would be cs50x and/or C Programming with Linux through edX. Both of these courses can be audited for free and do not possess any of the issues mentioned above.

By leekibeom on 17-Jan-19

good

By Alan-Frank V on 3-Jan-19

.

By Gastn M on 6-Mar-19

Great course. They did a great job in explaining key concepts like pointers and arrays, which are usual subjects with which students struggle.

By Jimmy K A on 2-Apr-19

Really nice and the project is really challenging.

By Rameshwar S on 24-Jan-19

Very well designed hands-on training course for developing a real software program in C.

By Douglas H on 13-Aug-18

End of course project was challenging and fun. Lots of opportunity to learn how to debug memory issues with valgrind.

By kedar h on 8-Nov-18

amazing awesome

By Antonio B B A on 1-Nov-18

I'm at the beginning, but I can assure that is really better than the programming courses in the university. The teachers here are very didactic people as long as allow students to have a complete course. Thanks you all.