Course Overview

Course Coverage

This course provides an in-depth exploration of advanced programming, emphasizing system programming, machine representation of data, dynamic structures, and files. It covers C language syntax, memory allocation, run-time data organization, function linkage, parameter passing, and the interplay between high-level and machine languages. The curriculum also introduces Linux OS and command-line skills, and integrates concepts of Virtual Machines, Cloud Computing, and Container technologies, reflecting current trends in the system programming landscape.

Student Learning Outcomes

By the end of the course, students will be able to:

  • Apply knowledge of computing and mathematics appropriate to the discipline, including common data structures and basic algorithms, to solve problems
  • Analyze a problem and identify and define the computing requirements appropriate to its solution
  • Design, implement, and evaluate a computer-based system, process, component or program, including operating systems, to meet desired needs
  • Function effectively on teams and use software engineering principles to accomplish a common goal
  • Understand fundamentals of procedural programming with applications in electrical and computer engineering and embedded systems
  • Understand hardware and software elements of data communications and computer networking
  • Compare and contrast the features of the Java and C programming languages
  • Manage memory allocation explicitly
  • Perform low-level file access in programs
Next