Chevron Left
Back to Interacting with the System and Managing Memory

Learner Reviews & Feedback for Interacting with the System and Managing Memory by Duke University

4.3
stars
164 ratings

About the Course

The final course in the specialization Introduction to Programming in C will teach you powerful new programming techniques for interacting with the user and the system and dynamically allocating memory. You will learn more sophisticated uses for pointers, such as strings and multidimensional arrays, as well as how to write programs that read and write files and take input from the user. Learning about dynamic memory allocation will allow your programs to perform complex tasks that will be applied in the final part of the specialization project: a Monte Carlo simulation for calculating poker hand probabilities....

Top reviews

OE

Aug 2, 2019

i really loved the style of that course. the challenging assignments, depending more on reading and the continuous support through the discussion forums. i hope you make another extension to c++

YX

May 26, 2023

Well-structured course offering challenging coding projects and putting more emphasis on testing and debugging

Filter by:

1 - 25 of 45 Reviews for Interacting with the System and Managing Memory

By Stephen L

•

Jun 10, 2018

This course it the 4th and final course in the "Introduction to Programming in C" specialization from Duke University here on Coursera. This review will be for this course in particular and the specialization as a whole since I see no other way to review the entire specialization. First comes the good things. This course reinforced what I learned about pointers in the previous course and it also showed me how to get my C programs to accept input from the command line and how to make those programs read/write to/from other files in a system. If I look at the specialization as a whole it reinforced C basics (which I already knew going in), really improved my understanding of pointers in general, gave me a basic understanding of Makefiles, as well as all the other things I've already mentioned. From a standpoint of understanding the C language I was very pleased with what I learned here.It isn't all sunshine and roses however. This specialization in general, and the final projects for each course in particular, are an exercise in frustration. The general problem with this course, and the entire series, is that your connection to server where you do all of your work is prone to kick you out, seemingly at random, with no notice whatsoever. Also, once you're kicked out, there can sometimes be delays before you can get back in again. I've encountered this on multiple networks, web browsers, and operating systems. I would STRONGLY recommend setting up Cygwin (if you run Windows), or copying the project over to your computer if you're running Mac or Linux, and doing your work locally. Then copy it back to the server to submit for grading. While this is inconvenient it still isn't as bad as being in the middle of your project and suddenly losing all ability to work on it.The final projects for the courses are the worst. All grading is done automatically by scripts on the host machine. When your program fails, and it will fail, you aren't given enough information to be able to correct it. For example, prior to submitting one program I verified it against all of the supplied test cases and also verified with valgrind that it did not have any memory errors. When I submitted it the grader informed me that valgrind detected memory errors. Where were these errors? What sort of errors were they? I didn't know because I didn't have access to the valgrind output from the grader. What input condition led to these errors? I had no idea because I can't see what input the grader provides to my code. So I know that something is wrong but I don't know what it is or even what causes it to happen. And I'm supposed to fix this somehow?On another program the grader only told me that a particular line number in my code's output did not match the expected value. What was the expected output? I have no clue as this isn't listed in project documentation or grader feedback. What was my code's output? No idea as I don't know what input condition led to this problem in the first place. Once again I'm left guessing as to what might be wrong and what might have caused the problem to appear. Due to this lack of feedback I could not have passed this course or the previous one in the series if I hadn't found the instructors' email addresses and worked directly with them on the projects. This really bothers me as I've made a living for many years doing testing and QA work on a variety of hardware and software. If I submit a bug and all it says is "something is wrong" I can expect to hear from the designer/programmer asking for more information. If they ask me what input I gave the program, or what power level I applied to a device under test, and I tell them to guess - I can expect to hear from my supervisor and probably theirs too. The feedback you get from the grader is simply inadequate and unprofessional. Improving this one aspect would take this course, and the entire specialization, up to 5 star status.

By Dimitris K

•

Dec 15, 2018

The help in the forum is problematic. You are waiting many days to get a reply in case you get stuck.

By Martin H

•

Apr 10, 2019

The course itself is nice, but the testing is horrible. In no company in the world you would not know the testcase. In this course you have to guess them. That was crazy.

By Joris

•

Jul 31, 2019

after finally getting used to Emacs (although partially ruining my speed in Sublime Text.. grmbl), I grew increasingly amazed by the thoroughness of the entire trajectory of 4 courses. It is well-structured, in order, and the poker project once finished felt like having built my own project from scratch (of course, it was not, but in retrospect that's what it felt like). At times, the project frustrated the hell out of me, however DuckDuckGo (no Google please) and the videos/readings gave all the information needed - with some help reading other people's forum posts.

The best course trajectory I've taken, even in comparison with the Deeplearning.ai trajectory which I've also completed.

I'll be buying the book for sure. Very good.

By Levin M J S

•

Aug 23, 2019

Fucked up professors who don't give any resources to implement the skillsets.

By Igor G

•

Sep 21, 2018

Great 4 courses in C language programming. The courses cover a lot of ground - basics of C, emacs, valgrind, memory allocation, deallocation, C pointers, data structures, etc. The exercises are quite challenging sometimes, underscore importance of testing. Well done!

By Chunzhi W

•

Apr 21, 2020

Great course! Hands-on project - definitely learned a ton of C programming!

By Donglai R

•

Feb 19, 2019

This is the worst course I have ever taken.

By Omar E

•

Aug 3, 2019

i really loved the style of that course. the challenging assignments, depending more on reading and the continuous support through the discussion forums. i hope you make another extension to c++

By Changyi G

•

Jan 28, 2021

Great specialization generally. I accomplished all the four courses and I learned a ton from a newbie in C to intermediate. It started from the basics and goes harder. The docents are excellent and teach well and step by step very clear with figures. I am glad I chose it and have solid foundation with this specialization.

The linux environment PPE frome Duke is new to me and it's a strict and challenging system for home work and objective grading, unlike some other courses's peer review. The Poker-Project throughout the four course deepens what was learned, give me such a sense of achievementthe when I finished it. But sometimes it's frusting struggling on some errors or not passing the grader with less hints. The PPE is sometimes down.

By Enamul H

•

Jul 6, 2020

Really an amazing course! I have learned some excellent things, especially memory management with Valgrind. The assignments were awesome! The discussion forum has the clue of all most all hard problems. I might not complete all of the courses of this specialization if this forum did not exist. I really enjoyed the course. I express my gratitude to the course teachers as well as course designers and staff. Without their effort, we might not get such wonderful specialization.

By Douglas H

•

Sep 17, 2018

The 4th course in the specialization was great. The programming project is challenging enough to keep you interested and learning while not so challenging that it can't be completed with the skills learned. Great course.

By karthik s

•

May 15, 2023

This course made me re-learn many things. The best part of this course is challenging assignments and i completely loved it. Complete package for CS students, git, emacs, valgrind. Big thanks to course Instructors <3.

By Yueren X

•

May 27, 2023

Well-structured course offering challenging coding projects and putting more emphasis on testing and debugging

By Balachandra K

•

Jul 3, 2020

very good and it is really at professional level and definitely not an easy one.

By THEO N

•

Sep 27, 2022

It teaches exactly what a novice C programmer needs about memory allocation.

By Anass M

•

Mar 13, 2021

this course is helpful and wonderful it is helped me very much in my study

By Danjie X

•

Jun 14, 2021

It's very good for entering the world of progromming!

By Shashank K

•

May 27, 2020

Thank you very much duke for this amazing course

By Fei G

•

Dec 28, 2019

Wonderful assignments and course arrangements.

By Alan-Frank V

•

May 24, 2019

Took me a while to complete, very interesting

By Miguel A T J

•

Dec 28, 2021

Great course to learn to program in C.

By Samuel N

•

Jun 4, 2020

The best leaning experience I've had.

By Tariqul I

•

Sep 30, 2020

Thanks for such a wonderful course.

By Anurag S

•

Apr 25, 2020

Perfectly designed course for c