About This Course
The C programming language has a long history. C remains one of the most powerful languages available today and is at the foundation of many operating systems. This course covers past and present use of the C language, C syntax, libraries, memory management, File I/O (file and socket), modularity, ways other languages use C to interact with an operating system, debugging, and guidelines for how and where to use C instead of other languages.
The course also provides an overall approach to software development that uses an adaptive model for well-designed and well-written code in any language—code that is elegant, powerful, and easy to understand. This model assists developers in logically breaking programs into "atomic" parts that can be built upon, modularized, and eventually easily tested when brought together in a program. The concept of "programming styles" will also be introduced, helping students decide which style will work best for them.
Upon course completion, students will be able to:
- Compile and link C programs
- Use and create C libraries
- Debug C applications
- Understand appropriate application of the C language
Group assignments will use real-world examples of appropriate use of C. Hands-on exercises will start with writing some simple UNIX/Linux shell commands in C, and then move into larger programs. Linux-based Ubuntu or Knoppix are the free downloadable operating systems of choice for the class and are bootable from CD/DVD.
BS, computer science, University of Minnesota
Mark Langanki has been working in the IT industry since 1989. His work centers on computing as it relates to telephony, networked applications, and distributed systems. Mark is the CTO of ConvergeOne and is leading innovation around the next model of IT and cloud services. He teaches at the University of Minnesota about operating systems, network programming, languages, and IT operations, and believes that learning doesn’t stop once a student graduates. Mark is dedicated to ensuring that students learn topics that will be applicable in the tech industry.
- INET 3101 C Programming: Language and Applications
- INET 4001 Introduction to Operating Systems
- INET 4021 Dev Ops I: Network Programming