|
Sep 07, 2024
|
|
|
|
CSCI 1082 - Object-Oriented Programming Credits: 4 Hours/Week: Lecture 4 Lab None Course Description: This course presents the concepts of object-oriented programming to students with a background in the procedural paradigm. It begins with a review of standard control structures and data types. It then moves on to introduce the object-oriented programming approach, focusing on the definition and use of classes along with related principles such as encapsulation, inheritance and polymorphism. Object-oriented applications such as GUI, client-server and multi-threaded programs will be created. Software engineering practices such as version control, unit testing and design patterns will be introduced. MnTC Goals None
Prerequisite(s): CSCI 1081 with a grade of C or higher. Corequisite(s): None Recommendation: None
Major Content
- Review of control structures, functions, and primitive data types
- Object-oriented programming: Object-oriented design; encapsulation and information hiding; separation of behavior and implementation; classes, subclasses, and inheritance; polymorphism; class hierarchies; exception-handling
- Object-oriented design concepts and techniques including use of a modeling language such as UML and use of patterns
- Fundamentals of event-driven programming
- Introduction to computer graphics: Using a simple graphics API
- Human-computer interaction: Introduction to design issues
- Virtual machines: The concept of a virtual machine; hierarchy of virtual machines; intermediate
- Introduction to language translation: Comparison of interpreters and compilers; language translation phases; machine-dependent and machine-independent aspects of translation
- Software maintenance; characteristics of maintainable software; software reuse
- Client-server network protocols and applications
- Concurrency and multi-threaded processes.
- Unit-testing for program correctness
- Common design patterns
- Basic security practices in software development
Learning Outcomes At the end of this course students will be able to:
- use object-oriented principles and concepts to design, develop, code and test a program of moderate complexity.
- use a modeling language to facilitate program design.
- use fundamental object-oriented constructs, structures, and techniques in programs or program segments.
- use object-oriented classes and tools as well as basic user-interface design principles to develop event-driven, graphical user applications.
- explain additional concepts such as virtual machines, intermediate-languages, interfaces, generics, exception-handling, inheritance, polymorphism.
- explain how object-oriented features can promote reusability and software-engineering.
- manage and coordinate revisions to a software project using revision control software.
- develop a concurrent, multi-threaded application.
- use common communication protocols to develop client-server applications.
- create and use unit tests to demonstrate program correctness
- select appropriate design patterns for common programming problems
- use appropriate techniques to ensure secure applications.
Competency 1 (1-6) None Competency 2 (7-10) None Courses and Registration
Add to Portfolio (opens a new window)
|
|