We may earn an affiliate commission when you visit our partners.
Course image
Andrew D. Hilton, Genevieve M. Lipp, and Anne Bracy

Building on the course Programming Fundamentals, this course will teach you how to write code by first planning what your program should do—an important approach for novice and professional programmers. You will learn how to compile and run your program, and then how to test and debug it. This course builds on the Seven Steps you have already learned and provides a framework for systematically testing for problems and fixing them, so you can find and fix problems efficiently.

Enroll now

What's inside

Syllabus

Writing Code
In this module, you will learn to write code and do your first assignment in the Practice Programming Environment. You have practiced the first four steps of the Seven Steps in the previous course, and you will review them here before learning Step 5: Translating Your Algorithm to Code. Expert programmers spend most of their time planning before they begin writing code, and you will learn to do the same!
Read more
Compiling and Running
Now that you know how to plan an algorithm and translate it to code, you need to learn how to compile and run it! You will learn about the compiler, which takes the code you wrote and translates it into instructions a machine can execute, which you can then run. You will also learn about different options you can give the compiler, as well as different ways to run your program that give you debugging information.
Testing and debugging
Two skills that are crucial to good programming are testing—finding problems with your code, and debugging—fixing them. In this module you will learn systematic ways to identify problems in your code, as well as how to apply the scientific method to fix your program when you do find a bug.
Project
In this module you will begin the project you will complete over the course of the rest of the specialization. At the end of each course, you will write a piece of a program that will calculate the odds of different poker hands winning with a Monte Carlo simulation—a way to calculate complicated probabilities by generating random data.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Builds a strong foundation for beginners in writing code
Develops skills that can be applied to a variety of programming languages
Taught by experts who are recognized for their work in programming education
May be useful for students who want to improve their coding skills

Save this course

Save Writing, Running, and Fixing Code in C to your list so you can find it easily later:
Save

Reviews summary

Writing, running, and fixing code in c: a good course

Learners say this specialization teaches algorithmic thinking using C language. It's described as a competitive course that can be hard but students say there's a great sense of achievement when they complete it. Students recommend this specialization to learners who have some prior programming knowledge. One area where students would like to see improvement is the lack of clarity in some of the assignment instructions and readings.
Active instructor participation in forums
"The course forum is active with a very high instructor participation rate."
Time commitment is manageable
"Really enjoying myself, learning all this new stuff. Hard work probably because I have not worked in this field ever, but the sense of achievement, when I get things right, is well worth it. And I really like that the level of time commitment is round about a month. Makes it all manageable."
Great course for learning C
"This whole specialization is one of the best for a person looking for beginners."
"This course is more competitive than the previous one in this specialization."
"it has been amazing working with andrew and all, tho discussion forrum was quite helpful. thanks to everyone for helping me to complete the course."
"Really enjoying myself, learning all this new stuff."
"Definitely a pretty big learning curve to this course if you've never done any programming before and the previous course provides a good intro to this one."
"This course was perfect and wonderful for me."
"If you are increadibly slow like me at the beggining, you will definitively become better at the end, with a very good understanding of the topic and abilities to apply that understanding in the real world."
Assignments require a lot of guesswork
"There were some parts in the teachings that were logically "broken" as well."
Unclear assignments and readings
"The Readings sections in the course need a major revision. I had to spent hours trying to understand what was being conveyed."
"Also the README files of the assignment tasks. The language used was confusing and many times the instructions were not clear."
Challenging course
"Secondly hard to beginner but very helpful."
"This course is too much hard for any beginner. I can not understand anything from this course."
"It was a great course. And we gain a lot of information from this one."
"I followde all steps of the teacher to do the first programming test, but the system doesn't let me pass. The compiler of this system is awful."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Writing, Running, and Fixing Code in C with these activities:
Review functions, conditionals, and loops from programming fundamentals
In order to successfully understand this course you should be able to apply concepts such as functions, conditionals, and loops. Take some time to review these concepts so that you are confident with them before moving forward.
Browse courses on Functions
Show steps
Organize your notes, assignments, quizzes, and exams
Keeping your materials organized will help you to stay on track and study more effectively.
Show steps
  • Create a system for organizing your materials
  • File your materials in the appropriate place
  • Review your materials regularly
Complete the 'Writing Simple Programs' section in the practice programming environment
The practice programming environment will provide you with an opportunity to immediately apply the concepts learned in the course. Completing these drills will reinforce what you have learned and ensure that you have a strong foundation.
Show steps
  • Go to the Practice Programming Environment
  • Select the 'Writing Simple Programs' section
  • Complete all of the exercises in the section
Four other activities
Expand to see all activities and additional details
Show all seven activities
Watch the 'Introduction to Compiling' tutorial
This tutorial will provide you with a clear and concise overview of the compilation process. It is important to understand this process in order to be able to debug your code.
Show steps
  • Go to YouTube and search for the 'Introduction to Compiling' tutorial
  • Watch the tutorial in its entirety
Join a study group and discuss the course material with your peers
Talking about the course material with other students will help you to reinforce what you have learned and identify areas where you need additional support.
Show steps
  • Find a study group or create your own
  • Meet with your group regularly to discuss the course material
  • Share your understanding of the material and help others to learn
Use a debugging tool to identify and fix errors in your code
Debugging is a critical skill for programmers. This activity will provide you with an opportunity to practice debugging your code using a real-world tool.
Show steps
  • Choose a debugging tool such as GDB or LLDB
  • Set breakpoints in your code
  • Step through your code and examine the values of variables
  • Fix any errors that you find
Create a simple program that implements the seven steps of programming
This project will allow you to apply all of the concepts that you have learned in this course. It will also give you an opportunity to demonstrate your understanding of the programming process.
Show steps
  • Choose a problem to solve
  • Design an algorithm to solve the problem
  • Translate your algorithm to code
  • Compile and run your program
  • Test and debug your program

Career center

Learners who complete Writing, Running, and Fixing Code in C will develop knowledge and skills that may be useful to these careers:
Computer Programmer
Working as a Computer Programmer, you will translate ideas and translate them into instructions that a computer can execute. The Writing, Running, and Fixing Code in C course can help future Computer Programmers obtain a solid understanding in the coding languages and principles behind modern computer systems.
Web Developer
Web Developers enjoy the opportunity to design and develop web pages and applications. Not only does the Writing, Running, and Fixing Code in C course provide an introduction to this exciting field, but it also helps Web Developers gain essential knowledge in coding that they can utilize to bring their concepts to life.
Software Engineer
Professionals working as Software Engineers design, develop, and test software systems, including those that are used to operate computers and mobile devices, as well as software that runs cloud computing applications. Taking the Writing, Running, and Fixing Code in C course can help aspiring software engineers build foundational skills in programming, as they will learn how to originate code and translate it from an idea into reality.
Information Security Analyst
Information Security Analysts identify and address an organization's information security risks. While the Writing, Running, and Fixing Code in C course may not be directly related to this career, it can still be helpful for those wishing to enter this field as it can help build a foundation in programming and debugging.
Computer Hardware Engineer
Computer Hardware Engineers design, develop, and test computer hardware. While the Writing, Running, and Fixing Code in C course may not be directly related to this career, it can still be helpful for those wishing to enter this field as it can help build a foundation in programming and debugging.
Information Technology Manager
Information Technology Managers plan, implement, and maintain an organization's computer systems and networks. While the Writing, Running, and Fixing Code in C course may not be directly related to this career, it can still be helpful for those wishing to enter this field as it can help build a foundation in programming and debugging.
Systems Analyst
Systems Analysts study an organization's current computer systems and procedures, and design changes to make them more efficient and effective. While the Writing, Running, and Fixing Code in C course may not be directly related to this career, it can still be helpful for those wishing to enter this field as it can help build a foundation in programming and debugging.
Computer Support Specialist
Computer Support Specialists provide technical assistance to computer users. While the Writing, Running, and Fixing Code in C course may not be directly related to this career, it can still be helpful for those wishing to enter this field as it can help build a foundation in programming and debugging.
Database Developer
Database Developers design and develop databases. While the Writing, Running, and Fixing Code in C course may not be directly related to this career, it can still be helpful for those wishing to enter this field as it can help build a foundation in programming and debugging.
Webmaster
Webmasters design, develop, and maintain websites. While the Writing, Running, and Fixing Code in C course may not be directly related to this career, it can still be helpful for those wishing to enter this field as it can help build a foundation in programming and debugging.
Software Quality Assurance Analyst
Software Quality Assurance Analysts test software to ensure that it meets the requirements and specifications. While the Writing, Running, and Fixing Code in C course may not be directly related to this career, it can still be helpful for those wishing to enter this field as it can help build a foundation in programming and debugging.
Information Technology Project Manager
Information Technology Project Managers plan, implement, and manage information technology projects. While the Writing, Running, and Fixing Code in C course may not be directly related to this career, it can still be helpful for those wishing to enter this field as it can help build a foundation in programming and debugging.
Database Administrator
Database Administrators are responsible for the performance, integrity, and security of an organization's data. While the Writing, Running, and Fixing Code in C course may not be directly related to this career, it can still be helpful for those wishing to enter this field as it can help build foundational skills in coding and debugging.
Network Administrator
Network Administrators manage the day-to-day operations of an organization's computer network. While the Writing, Running, and Fixing Code in C course may not be directly related to this career, it can still be helpful for those wishing to enter this field as it can help build a foundation in programming and debugging.
Data Analyst
Data Analysts help organizations understand data by creating visual representations and reports for insights. The Writing, Running, and Fixing Code in C course can be useful for this career field because it helps Data Analysts build foundational skills in programming and debugging.

Reading list

We've selected 16 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Writing, Running, and Fixing Code in C.
Is considered a classic in the field of software development. It provides a comprehensive overview of the software development process, from planning and design to coding and testing. It valuable resource for anyone who wants to learn more about writing high-quality code.
Practical guide to writing clean, maintainable code. It covers topics such as naming conventions, code formatting, and refactoring. It valuable resource for anyone who wants to improve their coding skills.
Classic in the field of object-oriented design. It provides a catalog of design patterns that can be used to solve common software design problems. It valuable resource for anyone who wants to learn more about object-oriented design.
Practical guide to refactoring code. It covers topics such as identifying bad code, refactoring techniques, and automated refactoring tools. It valuable resource for anyone who wants to improve the quality of their code.
Practical guide to test-driven development (TDD). TDD software development process that involves writing tests before writing code. It valuable resource for anyone who wants to learn more about TDD.
Visual introduction to design patterns. It uses diagrams and examples to explain how design patterns can be used to solve common software design problems. It valuable resource for anyone who wants to learn more about design patterns.
Practical guide to agile software development in C#. It covers topics such as agile principles, design patterns, and testing. It valuable resource for anyone who wants to learn more about agile software development.
Comprehensive reference for the C# programming language. It covers topics such as syntax, types, and operators. It valuable resource for anyone who wants to learn more about C#.
Comprehensive reference for the C# programming language. It covers topics such as syntax, types, and operators.
Beginner's guide to the C# programming language. It covers topics such as variables, loops, and arrays. It valuable resource for anyone who wants to learn the basics of C#.
Comprehensive reference for the C# programming language. It covers topics such as syntax, types, and operators. It valuable resource for anyone who wants to learn more about C#.
Practical guide to the C# programming language. It covers topics such as variables, loops, and arrays.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Writing, Running, and Fixing Code in C.
Competitive Programming for Beginners
Econometrics
Using probability distributions for real world problems...
Start the UX Design Process: Empathize, Define, and Ideate
Programming for Data Science
Java Programming: Arrays, Lists, and Structured Data
Preparing for Your Retail Customer Service Role
Preparing for Your Call Center Customer Service Role
Six Sigma Part 2: Analyze, Improve, Control
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser