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

Programming is an increasingly important skill, whether you aspire to a career in software development, or in other fields. This course is the first in the specialization Introduction to Programming in C, but its lessons extend to any language you might want to learn. This is because programming is fundamentally about figuring out how to solve a class of problems and writing the algorithm, a clear set of steps to solve any problem in its class. This course will introduce you to a powerful problem-solving process—the Seven Steps—which you can use to solve any programming problem. In this course, you will learn how to develop an algorithm, then progress to reading code and understanding how programming concepts relate to algorithms.

Enroll now

What's inside

Syllabus

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.
Read more
Reading Code
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.
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.
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.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores a powerful seven-step process for developing and solving algorithms, empowering learners to solve complex programming challenges
Provides a comprehensive introduction to fundamental programming concepts, including types, sequences, and iteration
Taught by instructors with industry experience, ensuring the relevance and applicability of the course content
Emphasizes code reading and analysis, building a strong foundation for understanding programming concepts and structures
Builds upon each module, reinforcing concepts and providing a structured learning experience
Includes a practical project to apply newly acquired skills and solidify understanding

Save this course

Save Programming Fundamentals to your list so you can find it easily later:
Save

Reviews summary

Programming essentials

learners say the course is useful for building a strong foundation in programming fundamentals, especially for beginners with no prior programming experience. The course emphasizes the importance of planning and executing code, and it teaches a 7-step process for writing efficient and clear programs. The course also covers important concepts such as algorithms, reading and understanding code, and data types. While the course is primarily focused on C programming, learners say the concepts and skills they learn can be applied to other programming languages as well. The course materials include videos, readings, and quizzes, and learners appreciate the balance between theoretical explanations and hands-on practice. Overall, learners say the course provides a solid foundation for anyone who wants to learn programming or improve their programming skills.
The course includes hands-on practice through quizzes and assignments.
"The course is not only good for beginners to start coding, but it is also suitable for someone wants to take System course using C."
The course teaches a 7-step process for writing efficient and clear code.
"I really liked how the instructors introduced me to programming fundamentals."
"This course will give you the principles to understand how computers read, interpret and execute code."
The course is suitable for beginners with no prior programming experience.
"This is an excellent course that really does a great job of getting you to stop and think about what you're doing rather than just telling you to do it."
"I had no background in programming before attending that course."
"This was a nice experience of mine studying online with coursera."
The course emphasizes the importance of planning before writing code. It teaches a 7-step process for writing efficient and clear programs.
"All three instructors in this course are very amazing & I am willing to learn more from them & take more courses from them."
"It is very interesting course for me, because I always wanted to know a bit more about computer science and technologies."
"It really helped me to understand the importance of planning to make algorithm and not rush for programming."
The course provides a solid foundation in programming fundamentals.
"Good intro course to C programming, and programming in general."
"It made me think."
"I am very happy to finish this lesson, it is a lesson worth pursuing."

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 Programming Fundamentals with these activities:
Review essential mathematical concepts
Solidify your mathematical foundation by reviewing concepts like algebra and logic, which are essential for understanding programming concepts.
Browse courses on Mathematics
Show steps
  • Identify areas of mathematics relevant to programming
  • Review textbooks or online resources covering these concepts
Create a glossary of programming terms
Enhance your understanding of programming terminology by creating a comprehensive glossary, which will serve as a valuable reference throughout your learning.
Browse courses on Vocabulary
Show steps
  • Identify commonly used programming terms
  • Define each term clearly and concisely
  • Organize the terms alphabetically or by category
Review core programming concepts
Refresh your understanding of programming fundamentals like variables, data types, and control flow to enhance your comprehension of this course's material.
Browse courses on Programming Concepts
Show steps
  • Review variable declaration and assignment
  • Practice using loops and conditionals
  • Solve simple programming problems using these constructs
Four other activities
Expand to see all activities and additional details
Show all seven activities
Explore online tutorials on algorithm design
Enhance your problem-solving skills by exploring online tutorials and practicing algorithm design techniques, which will be crucial for this course.
Browse courses on Algorithm Design
Show steps
  • Identify reputable online platforms for tutorials
  • Select tutorials covering fundamental algorithm design patterns
  • Follow the tutorials, taking notes and practicing the concepts
Seek guidance from experienced programmers
Connect with experienced programmers who can provide valuable insights, support, and guidance throughout your learning journey.
Show steps
  • Identify potential mentors through online platforms, meetups, or personal connections
  • Reach out to mentors, introducing yourself and expressing your interest in their guidance
  • Establish regular communication and seek feedback on your progress
Solve daily coding challenges
Regularly practice solving coding challenges to improve your problem-solving abilities and sharpen your programming skills.
Browse courses on Coding Challenges
Show steps
  • Identify online platforms or resources for daily coding challenges
  • Set aside time each day for solving challenges
Develop a portfolio of solved coding problems
Create a portfolio showcasing your problem-solving abilities by compiling solved coding problems, demonstrating your understanding and application of the course concepts.
Show steps
  • Select a platform or method for showcasing your solutions
  • Document your solutions clearly, explaining your approach and thought process
  • Share your portfolio with potential employers or mentors

Career center

Learners who complete Programming Fundamentals will develop knowledge and skills that may be useful to these careers:
Software Engineer
As a Software Engineer, you will be responsible for designing, developing, and testing software applications. This course will provide you with the programming fundamentals necessary to succeed in this role, including algorithm development, code reading, and software testing.
Data Scientist
Data Scientists use programming to analyze data and build models to solve business problems. This course will provide you with the programming skills necessary to succeed in this role, including algorithm development, data analysis, and modeling techniques.
Web Developer
Web Developers use programming to design and develop websites. This course will provide you with the programming skills necessary to succeed in this role, including web design, front-end development, and back-end development.
Mobile App Developer
Mobile App Developers use programming to design and develop mobile applications. This course will provide you with the programming skills necessary to succeed in this role, including mobile app design, iOS development, and Android development.
Product Manager
Product Managers are responsible for managing the development and launch of software products. This course will provide you with the programming skills necessary to succeed in this role, including product planning, user research, and software development.
Technical Writer
Technical Writers are responsible for creating technical documentation, such as user manuals and white papers. This course will provide you with the programming skills necessary to succeed in this role, including technical writing, software documentation, and user experience.
Information Security Analyst
Information Security Analysts are responsible for protecting computer systems from security breaches. This course will provide you with the programming skills necessary to succeed in this role, including cybersecurity, network security, and data encryption.
Database Administrator
Database Administrators are responsible for managing and maintaining databases. This course will provide you with the programming skills necessary to succeed in this role, including database design, data management, and SQL programming.
Systems Analyst
Systems Analysts are responsible for analyzing and designing computer systems. This course will provide you with the programming skills necessary to succeed in this role, including systems analysis, requirements gathering, and software design.
Data Analyst
Data Analysts use programming to analyze data and extract insights. This course will provide you with the programming skills necessary to succeed in this role, including data analysis, data visualization, and machine learning.
Computer Programmer
Computer Programmers use programming to create and maintain software applications. This course will provide you with the programming skills necessary to succeed in this role, including software development, programming languages, and debugging.
Software Tester
Software Testers are responsible for testing software applications to ensure that they are working as intended. This course will provide you with the programming skills necessary to succeed in this role, including software testing, debugging, and test automation.
Business Analyst
Business Analysts are responsible for analyzing and designing business processes. This course may provide you with the programming skills necessary to succeed in this role, including process mapping, requirements gathering, and data analysis.
Project Manager
Project Managers are responsible for planning and managing software development projects. This course may provide you with the programming skills necessary to succeed in this role, including project planning, resource management, and stakeholder management.
IT Support Specialist
IT Support Specialists are responsible for providing technical support to computer users. This course may provide you with the programming skills necessary to succeed in this role, including troubleshooting, hardware repair, and software installation.

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 Programming Fundamentals.
This classic textbook provides a comprehensive overview of algorithms and data structures. It valuable resource for anyone who wants to learn more about the theoretical foundations of programming.
This monumental work comprehensive treatise on the art of computer programming. It covers a wide range of topics, from algorithms and data structures to software engineering and computer architecture.
Provides practical advice on how to write clean and readable code. It valuable resource for anyone who wants to improve their programming skills.
Beginner-friendly introduction to Java programming. It valuable resource for anyone who wants to learn the basics of Java.
Comprehensive reference for Java programming. It valuable resource for anyone who wants to learn more about the Java language and its libraries.
Comprehensive guide to Java programming. It valuable resource for anyone who wants to learn more about the Java language and its libraries.
Provides practical advice on how to write effective Java code. It valuable resource for anyone who wants to improve their programming skills.
Provides practical advice on how to write concurrent Java code. It valuable resource for anyone who wants to learn more about concurrency.
Is the definitive reference for the Java Virtual Machine. It valuable resource for anyone who wants to learn more about the Java Virtual Machine and its internals.
Is the definitive reference for the Java language. It valuable resource for anyone who wants to learn more about the Java language and its syntax.
Quick and easy introduction to Java SE 8. It valuable resource for anyone who wants to learn the basics of Java SE 8.
Beginner-friendly introduction to design patterns. It valuable resource for anyone who wants to learn more about object-oriented design.

Share

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

Similar courses

Here are nine courses similar to Programming Fundamentals.
Algorithmic Solutions: Design, Problem Solving, Reporting
Most relevant
Machine Learning with Python - Practical Application
Master Linear Programming with advanced tools
Data Structures and Algorithms in Python
JavaScript Algorithms and Data Structures Masterclass
How to Think About Machine Learning Algorithms
Data Structures & Algorithms Using C++
Soft Skills: Solve Problems w/ Creative & Critical...
The Complete Electric Circuits Course
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