CR: COMP 2401 Learning Objectives: Difference between revisions

From Soma-notes
Claurend (talk | contribs)
Claurend (talk | contribs)
Line 20: Line 20:
=Topics=
=Topics=


==Topic 1==
== Introduction to Operating Systems ==


Learning objectives for topic 1


==Topic 2==
== Introduction to Systems Programming ==
* Understand and apply basic programming conventions:
** proper variable names
** appropriate commenting
** indentation using established style


Learning objectives for topic 2
* Understand how to use primitive data types and structures
** bit models and representations
** arrays, strings, structures
 
* Understand basics of memory management
** variables
*** primitive data types
*** scope
*** storage class
** functions
*** pass-by-value
*** pass-by-reference
** memory allocation
*** static vs. dynamic memory allocation
*** pointers, double pointers
*** garbage collection
** program memory organization
*** function call stack, contents of stack frame
*** heap
*** data segment
*** code segment
 
* Program management
** able to build programs across multiple header and source files
 
* Library functions and system calls
** able to research and understand standard library function and system call documentation
** understand how to create a new library for distribution
** able to program with system calls:
*** stream and file I/O
*** signal handling
*** multiprocess programming
*** inter-process communications (sockets, RPC)
 
* Scripting languages

Revision as of 16:42, 11 April 2011

Calendar Description

Introduction to programming with procedures and primitive data types, designed for B.C.S. students. Topics include: arrays, strings, pointers, heap and stack memory allocation and deallocation, iterative and recursive linked list manipulations, system/library calls.

Assumed Background

Learning objectives completed before this course.


Learning Objectives

  • Gain experience in understanding and working with portions of an existing code base
  • Understand the basics of operating systems
  • Gain experience in procedural and low-level programming, including:
    • data types and structures
    • memory management
    • program building
    • library functions and system calls
    • shell environment and script programming

Topics

Introduction to Operating Systems

Introduction to Systems Programming

  • Understand and apply basic programming conventions:
    • proper variable names
    • appropriate commenting
    • indentation using established style
  • Understand how to use primitive data types and structures
    • bit models and representations
    • arrays, strings, structures
  • Understand basics of memory management
    • variables
      • primitive data types
      • scope
      • storage class
    • functions
      • pass-by-value
      • pass-by-reference
    • memory allocation
      • static vs. dynamic memory allocation
      • pointers, double pointers
      • garbage collection
    • program memory organization
      • function call stack, contents of stack frame
      • heap
      • data segment
      • code segment
  • Program management
    • able to build programs across multiple header and source files
  • Library functions and system calls
    • able to research and understand standard library function and system call documentation
    • understand how to create a new library for distribution
    • able to program with system calls:
      • stream and file I/O
      • signal handling
      • multiprocess programming
      • inter-process communications (sockets, RPC)
  • Scripting languages