CIT Department Logo CIT 299
Introduction to C# Programming

Prerequisites
CIT 115
CIT 140
Offered
Spring, Fall
Software
Microsoft Visual Studio .NET
Credit By Exam
Yes
Coordinator
Tim Price
Course Instructional Objectives

Analysis and Design of Programs
  • Define the three steps in program development
  • Explain the characteristics of a good algorithm to your mother
  • Determine the object names, input, output and sample problems for a programming problem
  • Develop an algorithm using the Input/Process/Output algorithmic pattern
OOP Concepts
  • Define an object and list its three components
  • Distinguish between objects and classes
  • List and briefly describe the three pillars of object oriented programming.
  • Contrast the object-oriented and process-oriented approaches
C# Basics
  • Include existing C# classes into your program
  • Declare, initialize and assign values to identifiers
  • Declare and initialize constant objects
  • Evaluate and create arithmetic expressions using mathematical operators
  • Evaluate an expression according to C# precedence and automatic typecasting.
  • Use the Prompt then Input algorithmic pattern to obtain data from the user
  • Display information to the user
  • Identify the basic identifiers of a object -- its name, type, address and contents
Functions
  • Use existing and user-defined functions in your programs
  • Declare a function by writing a function prototype
  • Define (implement) a function
  • Define and identify function prototype
  • Define and identify function signature
  • Define and identify function header
  • Define and identify function body
  • Define and identify parameter-list
  • Define and identify argument
  • Define and identify return value
  • Explain to your sibling how data is passed into and out of functions
  • Call a function using pass-by-value and pass-by-reference arguments
  • Assign default values to function parameters
  • Explain, to your sibling, how a variable's scope is determined and what impact that has
Classes and Objects
  • Send messages to objects
  • Read and understand class definitions well enough to use the class
  • Define and identify member variable
  • Define and identify member function
  • Define and identify constructor
  • Define and identify destructor
  • Define and identify accessor functions
  • Define and identify modifier functions
  • Define and identify utility functions
  • Implement class member functions
  • Explain, to your parent, the use of the scope resolution operator.
  • Explain, to your parent, the difference between a class and an object, and the difference between a class's interface and its implementation.
  • Given a description, be able to draw an Object Structure Diagram to describe an object.
  • Design and declare a class
  • Implement a class
  • Declare an object
  • Use a public member function of an object
Control Structures
  • Recognize when to use the Guarded Action, Alternative Action, Multiple Selection, Determinate Loop and Indeterminate Loop algorithmic patterns
  • Implement the Guarded Action, Alternative Action and Multiple Selection patterns using the if statement
  • Use relational operators
  • Implement the Multiple Selection pattern using the if..else and switch statements
  • Implement the Determinate Loop pattern using the for statement
  • Implement the Indeterminate Loop pattern using the while and do while statemetns
  • Use continue and break in if, switch, while, do-while and for statements
File Streams
  • Open a file for reading
  • Read from a file stream
  • Open a file for writing
  • Write to a file stream
  • Check for successful file operations
  • Check for end-of-file condition
  • Close a file
Composition and Object Oriented Analysis
  • Implement object composition
  • Use initializers to pass constructor parameters from the host object to a contained object
  • Create Component/Responsibility/Helper cards to aid analysis and design
  • Identify classes that model a solution to a program
  • Assign responsibilities to classes
  • Define an object reference
  • Use an object reference to access the members of an object
Collections
  • Use the collections classes
  • Use iterators to refer to all items in a container object in a sequential manner
  • Access the individual elements of a collection
  • Implement algorithms to traverse and process collections
  • Sort collection elements into ascending or descending order
  • Add elements to a collection
  • Retrieve properties of a collection
Overloading
  • Overload the relational operators for any class
  • Overload the unary operators, !, ++, and --
  • Distinguish the left hand side from the right hand side when using overloading binary operators
  • Use friend functions to overload << and >> so you can output or input any class
  • Explain, to your classmate, when to use member functions and when to use friend functions
Inheritance and Polymorphism
  • Explain to your sibling how inheritance works
  • Derive new classes from old ones
  • List what isn't inherited
  • Define protected access and how it affects access to class data members
  • Show the calling order of constructors and destructors in derived classes
  • Use initializer lists to pass constructor parameters from the derived class to the base class
  • Override member functions and add new features to derived classes
  • Explain to your sibling how methods in the derived class override base class methods
  • Define polymorphism

Bobby Approved Logo Bobby 508 Approved Logo All contents copyright 2003, CIT Department, IUPUI
Last Updated: