C Programming is still a very valuable skill - and its also surprisingly easy to pick up. Don't be intimidated by C's reputation as scary - we think this course makes it easy as pie!
- Conditional Constructs: If/else and case statements have a surprising number of little details to be aware of. Conditions, and working with relational and logical operators. Short-circuiting and the order of evaluation
- Loops: For loops, while and do-while loops, break and continue. Again, lots of little details to get right.
- Data Types and Bit Manipulation Operations, again full of little gotchas that interviewers and professors love to test.
- Pointers: Memory layout of pointers and variables, pointer arithmetic, arrays, pointers to pointers, pointers to structures, argument passing to functions, pointer reassignment and modification - complete with visuals to help you conceptualize how things work.
- Strings: Strings, Character pointers, character arrays, null termination of strings, string.h function implementations with detailed explanations.
- Structs and Unions: These seem almost archaic in an Object-Oriented world, but worth knowing, especially in order to nail linked list problems.
- Linked lists: Visualization, traversal, creating or deleting nodes, sorted merge, reversing a linked list and many many problems and solutions, doubly linked lists.
- IO: Both console and file IO
- Enums, typedefs, macros
What are the requirements?
- The the course assumes that the student has a way to write and run C programs. This could include GCC on Mac or Unix or Visual Studio on Windows.
What am I going to get from this course?
- Write solid, correct and complete C programs
- Advance - quickly and painlessly - to C++, which is a natural successor to C and still widely used
- Ace tests or exams on the C programming language
- Shed their fears about the gotchas and complexities of the C programming language
- Make use of C in those situations where it is still the best tool available
What is the target audience?
- Yep! Computer science or engineering majors who need to learn C for their course requirements
- Yep! Embedded systems or hardware folks looking to make the most of C, which is still an awesome technology in those domains
- Yep! Any software engineer who will be giving interviews, and fears interview questions on the tricky syntax of C