Interacting with the System and Managing Memory
Instructor: Andrew D. Hilton , Anne Bracy , Genevieve M. Lipp
Beginner Level • 9 hours to complete • Flexible Schedule
Skills You'll Gain
Data Import/Export
Program Development
System Programming
Data Structures
Software Engineering
Simulations
Command-Line Interface
User Interface (UI)
C (Programming Language)
Programming Principles
Operating Systems
Maintainability
Software Development
Debugging
File Management
Shareable Certificate
Earn a shareable certificate to add to your LinkedIn profile
Outcomes
-
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
So far, our programs have had a rather limited interaction with the user or rest of the system, printing some results to standard output (typically to the terminal). Now that we have learned about topics such as strings and arrays, we are ready to learn how to write a program that takes input from the user, takes arguments on the command line, accesses files, and does many other things we typically think of real programs as doing.
So far, most of the memory we have used has been located on the stack. Dynamic memory allocation gives a programmer much more flexibility, in that it allows you to request a specific amount memory to be allocated on the heap, so that it will not disappear with the stack frame of the calling function.
So far, we have focused exclusively on programming in the small—designing the algorithm for a small-sized task, implementing it, testing it, and debugging it. This module discusses three main differences that "real" programs exhibit. 1) They tend to be much larger than those we have written. 2) More than one person works on them, sometimes teams of hundreds to thousands. 3) Real software has a long life-span during which it must be maintained. Now that you have an understanding of the basics of programming in the small, we are ready to begin learning about programming in the large!
In this module, you will complete the Poker Project! Now that you know about dynamic memory allocation, user input, and how to program in the large, you can write the final parts of the program. You will write code to read in a file with a hand of cards and code to choose unknown cards from a shuffled deck. As you program with more sophisticated data structures, the importance of drawing good pictures will increase. Happy programming!