Programming Fundamentals
An introduction to the core logic behind every computer program: variables, control flow, functions, and the concepts that carry over to any programming language.
60-Second Review
Express reviewA condensed, point-by-point summary of the module, for reviewing right before a test or exam.
- Core Building Blocks: Variables, Operators, and Control Flow. Programs, variables, operators, conditionals, loops, and functions form the basic vocabulary of code.
- Scope, Collections, and I/O. Scope, arrays, strings, input/output, and comments round out how a program handles and explains data.
- Debugging and Recursion. Debugging, error types, planning tools, and recursion versus iteration shape how programmers solve problems.
- Programming Paradigms. Classes, inheritance, paradigms, and functional techniques offer different ways to structure a program.
- Data Structures and Memory. Exceptions, files, stacks, queues, dictionaries, sets, and matrices are core data-handling tools.
- Type Systems and How Programs Run. Typing systems, compilation, memory allocation, and pointers explain how programs actually run.
- Logic, Algorithms, and Collaborative Development. Boolean logic, bitwise operations, algorithmic efficiency, randomness, and Git underpin real-world coding.
- Writing Good Software. Style, testing, the development lifecycle, and choosing a language shape how good software gets built.
This is the starting point of Programming Fundamentals: you don't need any prior knowledge of this subject to begin.
Key points
Visual module map
Alternative visual view: a simplified sequence of some of the module's key points, in their order within the syllabus.
Your module mastery
0% (overall measurement)A rough estimate based on the key points reviewed, not an exact measurement of actual mastery.
Final test
You need to review all key points to unlock the final test.
Optional mini-games
Extra practice, with no penalty, to reinforce the module's content.
Further reading
Bibliography and cited sources used to create this module.
- Sedgewick, R. and Wayne, K. (2011). Algorithms (4th ed.). Boston: Addison-Wesley.
- Abelson, H. and Sussman, G. J., with Sussman, J. (1996). Structure and Interpretation of Computer Programs (2nd ed.). Cambridge, MA: MIT Press.
- Cormen, T. H., Leiserson, C. E., Rivest, R. L., and Stein, C. (2009). Introduction to Algorithms (3rd ed.). Cambridge, MA: MIT Press.
- Martin, R. C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Upper Saddle River, NJ: Prentice Hall.
- Chacon, S. and Straub, B. (2014). Pro Git (2nd ed.). New York: Apress. https://git-scm.com/book