->Homepage
->Schedule
->Courses
-->CS183
-->Tentative Schedule
-->Objectives
-->Quiz 1
-->Lab 1
-->Lab 2
-->Lab 3
-->Lab 4
-->SE281
->Course Policies
->Electronic Submission
->Documentation Standards
->Old Exams
->C++ Examples
->MSVC++ Info
->Software
->Support Forum
->Unix Info
->Nature Photos

[Home]
[Rich][Home][Rich]
[Author]
CS183 -- Detailed Objectives

At the time of the midterm exam, a student should be able to:
  • Describe the the software lifecycle and explain its iterative nature.
  • Describe the linked list storage configuration.
  • Compare and contrast the vector and list as container types.
  • Describe the purpose and use of iterators including the motivation for the four basic types (iterator, const_iterator, reverse_iterator, and const_reverse_iterator).
  • Write and interpret code using lists and iterators.
  • Describe the purpose and use of a reference.
  • Describe the purpose and use of a pointer.
  • Compare and contrast references vs. pointers.
  • Write and interpret code using pointers to access and manipulate objects.
  • Describe the purpose and apply the NULL pointer where appropriate.
  • Describe the similarities and differences between pointers and arrays.
  • Describe the basic properties of an abstract data type.
  • Explain the motivation for using abstract data types including the advantages of doing so.
  • Write and interpret the basic syntax for C++ classes.
  • Develop the prototypes and write C++ member functions for the following:
    • Constructors
    • Copy Constructors
    • Assignment/operator=
    • Destructors
    • Accessors
    • Mutators
    • Facilitators
    • Supporting operators
      • Arithmetic
      • Relational (e.g. operator==)
      • Stream (e.g. << and >>)
  • Explain the purpose and use of the this pointer.
  • Explain the effect the designation const, static, and friend have on functions.
  • Explain the C++ automatic type conversion mechanism and describe how to best take advantage of it.
  • Interpret and draw UML class diagrams and the syntax they use to describe the relationships between classes.
  • Use strategies like use cases and classification to determine appropriate classes, methods, and attributes as part of the design of a software solution to a problem.
At the time of the Final Exam, a student should be able to:
  • Explain the similarities and differences between static, automatic and dynamic objects and the locations in memory where they are stored.
  • Write and interpret code that uses new, delete, and delete [] to manipulate dynamic objects.
  • Describe a memory leak and explain why it is undesirable.
  • Understand the organization of multi-source file C++ code.
    • Describe which code should go in .h and .cpp files.
    • Describe the difference between declarations and definitions.
    • Demonstrate proper use of the #include and #ifndef compiler directives.
  • Describe the difference between the composition and inheritance mechanisms.
  • Describe the following inheritance issues:
    • Base class
    • Derived class
    • Early (static) versus late (dynamic) binding
    • Upcasting
    • Overriding
    • The keyword virtual
    • Pure virtual
    • Abstract base class
  • Interpret and write C++ code using inheritance.
  • Describe the differences between private, protected, and public access specifications.
  • Describe what a friend is.
  • Define the term polymorphism and be able to describe the C++ language mechanisms which implement it.
  • Interpret and write C++ code for functions and classes which use templates.
  • Interpret and write container classes (e.g. vector and list) using templates.
  • Interpret and write code which use and implements iterators.
    • Including the syntax for overriding operator++ and operator--.
  • Describe the C++ namespace mechanism and know how to build namespaces.
  • Describe the purpose and use of the C++ exception handling mechanism.
  • Interpret and write simple code using the C++ exception handling syntax involving throw, try, and catch.
  • Describe and apply common STL algorithms such as find, sort, etc.
Acknowledgement

This page was based on a similar set of pages developed originally by Dr. Henry Welch.

Last Updated: Thursday, 01-Jan-2015 14:37:27 EST