CSE 603 Computer Programming (4)

Course Description:

Introduction to the design and implementation of computer software. Algorithm development, refinement, and problem solving approaches. Introduction to fundamental algorithms and data structures such as lists, sets, stacks, and queues. Three credit hours lecture, one credit hour lab. 

Prerequisite:

Graduate standing in the Certificate in Software Development program, or permission of instructor.

Course Objectives:

  • Specify, design, implement, test and debug programs written in a contemporary programming language.
  • Identify and apply fundamental programming constructs (sequence, selection, repetition) and a limited number of data structures, including arrays and lists.
  • Describe the process of program translation from source code to intermediate or executable representation.
  • Describe and implement fundamental recursive algorithms.
  • Describe programming paradigms including modular design, object-oriented design, and data abstraction.
  • Develop applications using object-oriented programming techniques to model real-world entities.
  • Develop applications that incorporate exception handling capabilities.
  • Experience analyzing algorithms precisely using mathematics.
  • Compare data structures based on their effectiveness and efficiency.

Required Topics (approximate weeks allocated):

  • Programming Languages and the Programming Environment (.5)
    • Syntax and semantics of programming languages
    • Functions of a compiler
    • Interpreted vs. compiled code
  • Basic Language Elements (2)
    • Types, variables, constants
    • Strings
    • Type conversion
    • Internal data representations
    • Basic constructs (sequence, selection, repetition)
  • Modular Program Design (1)
    • Methods
    • Parameter passing
    • Variable lifetime and scope
    • Functional decomposition
  • Testing and Debugging (.5)
    • Syntax vs. run-time errors
    • Testing and debugging strategies
    • Test case selection
    • Use of a debugging tool
  • Elementary Data Structures (2)
    • Single and two-dimensional arrays
    • Single, circular, and doubly linked lists
  • Elementary Algorithms (2)
    • Asymptotic complexity
    • Induction
    • Recursion
    • Linear and binary searching
    • Mergesort
  • Object-Oriented Programming (3)
    • Classes and objects
    • Inheritance and composition
    • Polymorphism, overloading, and overriding
    • Exception handling
  • ADTs: vector & list, bag & set, stack & queue (3: 1 week per set)
    • Operations
    • Various implementations and their comparisons
    • Iterators
    • Standard class libraries/API
  • Examinations (1)