Apr 19, 2024  
2017-2018 Course Catalog 
    
2017-2018 Course Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

CSCI 1082 - Object-Oriented Programming

Credits: 3
Hours/Week: Lecture 3Lab None
Course Description: This course introduces the concepts of object-oriented programming to students with a background in the procedural paradigm. It begins with a review of control structures and data types with emphasis on structured data types and array processing. It then moves on to introduce the object-oriented programming approach, focusing on the definition and use of classes along with the fundamentals of object-oriented design. Other topics include an overview of programming language principles, simple analysis of algorithms and an introduction to software engineering issues.
MnTC Goals
None

Prerequisite(s): CSCI 1081  or CSCI 2011.
Corequisite(s): None
Recommendation: None

Major Content
  1. Fundamentals of event-driven programming
  2. Human-computer interaction: Introduction to design issues
  3. Introduction to computer graphics: Using a simple graphics API
  4. Introduction to language translation: Comparison of interpreters and compilers; language translation phases; machine-dependent and machine-independent aspects of translation
  5. Object-oriented design concepts and techniques including use of a modeling language such as UML and use of patterns
  6. Object-oriented programming: Object-oriented design; encapsulation and information hiding; separation of behavior and implementation; classes, subclasses, and inheritance; polymorphism; class hierarchies; exception-handling
  7. Review of control structures, functions, and primitive data types
  8. Software maintenance; characteristics of maintainable software; software reuse
  9. Virtual machines: The concept of a virtual machine; hierarchy of virtual machines; intermediate languages

Learning Outcomes
At the end of this course students will be able to:

  1. Use object-oriented classes and tools as well as basic user-interface design principles to develop event-driven, graphical user applications.
  2. Explain how object-oriented features can promote reusability and software-engineering.
  3. Demonstrate understanding of related concepts such as virtual machines, intermediate-languages, interfaces, generics, exception-handling, etc.
  4. Demonstrate knowledge of the fundamental object-oriented constructs, structures and techniques through their appropriate use in programs or program segments.
  5. Use a modeling language to facilitate program design.
  6. Use object-oriented principles and concepts to design, develop, code and test a program of moderate complexity.


Courses and Registration



Add to Portfolio (opens a new window)