Generated on Tue Oct 25 10:19:18 2022

CS 271: Object Oriented Programming (JSON)

Catalog description: Introduction to problem analysis and problem solving in the object-oriented paradigm. Practical introduction to implementing solutions in the C++ language. Pointers and dynamic memory allocation. Hands-on experience with useful development tools.

Prerequisites: At least a C- in C S 172 or E E 112    (Catalog Link)

Credits: 4 (3+2P)

Coordinator: Phoebe Toups Dugas

Textbook: C How To Program, Deitel and Deitel, 8th edition, 2016. ISBN: 978-01339-7689-2
    (also: online readings)

BS degree role: required

Course Learning Objectives

  1. Develop an algorithm to solve a problem.
  2. Implement algorithms using the C and C++ languages including imperative and object-oriented language features.
  3. Demonstrate a noticeable increase in understanding of problem analysis and program design beyond what was learned in CS 172, EE 112, or EE 161.
  4. Demonstrate proficiency in using control structures including if statements (single selection), switch (multiple selection), and loops (repetition).
  5. Demonstrate proficiency in using arrays and functions.
  6. Design a class to model a real-world person, place, thing, or event.
  7. Use editing and debugging software to create, debug, and test C and C++ programs.
  8. Understand the basic terminology used in object-oriented programming.
  9. Create a makefile to build an executable from a set of C or C++ source files.

Course Practicum Requirements

  1. Implement algorithms using the C and C++ languages including imperative and object-oriented language features
  2. Use editing and debugging software to create, debug, and test C and C++ programs
  3. Create a makefile to build an executable from a set of C or C++ source files
  4. Create UML class and relationship diagrams

Course Topics

  1. C Programming Language Fundamentals:
  2. Variables and Expressions
  3. Branches
  4. Loops
  5. Functions
  6. Arrays
  7. Pointers
  8. C Characters and Strings
  9. C File Processing
  10. makefiles
  11. C++ Programming Language
  12. Object-oriented Programming Concepts
  13. Classes and Objects
  14. Exception Handling
  15. Operator Overloading
  16. Inheritance
  17. Stream Input and Output

Course Improvement Decisions

(Course improvement decisions or recommendations from past assessments)

  1. FA13 eval indicated dropping UML, but we still have it?
  2. FA15: UML diagrams should be introduced in a later class

ABET Outcome Coverage

(Provide Mapping to ABET Student Outcomes)

  1. TBD

Other Notes

(Any important notes or issues to consider)

  1. SP19 Course Learning Objectives listed below
  2. Develop an algorithm to solve a problem
  3. Implement an algorithm using the C++ language including imperative and objectoriented language features
  4. Demonstrate a noticeable increase in understanding of problem analysis and program design beyond what was learned in CS 172 or EE 161
  5. Demonstrate proficiency in using control structures including if statements (single selection), switch (multiple selection), and loops (repetition)
  6. Demonstrate proficiency in using basic data structures including arrays, vectors, and stacks
  7. Use UML drawing software to create UML activity, class, and relationship diagrams
  8. Design a class to model a real-world person, place, thing, or event
  9. Use editing and debugging software to create, debug, and test C++ programs
  10. Understand the basic terminology used in object-oriented programming
  11. Create a makefile to build an executable from a set of C++ source files