Difference between revisions of "CR: COMP 2401 Learning Objectives"

From Soma-notes
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 9: Line 9:
=Learning Objectives=
=Learning Objectives=


Objectives for the whole course
* 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=


=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


==Topic 1==
* 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


Learning objectives for topic 1
* Program building
** able to build programs across multiple header and source files


==Topic 2==
* 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)


Learning objectives for topic 2
* Scripting languages
** understand the basics of shell script programming

Latest revision as of 12:43, 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 building
    • 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
    • understand the basics of shell script programming