ITE 217: Object Oriented Programming and Architectures

Course Description

This course delves into the principles and practices of object-oriented programming (OOP) and software architecture. Students will gain a solid understanding of OOP concepts, design patterns, and the fundamentals of building scalable and maintainable software architectures. The course will cover advanced topics such as architectural styles, design principles, Test-Driven Development and the modeling of software solutions.  (3 credits)

Prerequisite

  • ITE 211: Data Structures and Algorithms

Student Learning Outcomes (SLOs)

Students who successfully complete this course will be able to:

  1. Understand and apply core object-oriented programming concepts.
  2. Use design patterns to solve common software design problems.
  3. Design and evaluate software architectures for scalability and maintainability.
  4. Employ tools and design for securing software products.
  5. Implement architectural best practices in software development.
  6. Explore the use of AI in modern development.
  7. Build tests to validate and verify software code.
  8. Utilize Object Relationship Mapping (ORM) to store objects in database storage.

Course Activities and Grading

AssignmentsWeight

Discussions (Weeks 1-8)

10%

Assignments (Weeks 1-5, 7-8)

75%

Labs (Week 6)

10%

Quizzes (Week 6)

5%

Total

100%

Required Textbooks

  • This course uses Open Educational Resources (OER). OER are openly licensed, educational resources that can be used for teaching, learning and research. OER may consist of a variety of resources such as textbooks, videos and software that are no cost for students.

Course Schedule

Week

SLOs

Readings and Exercises

Assignments

1

3,5

Topics: Introduction to Software Architecture

 

  • Review the lecture material
  • Participate in the Discussions
  • Submit Week 1 Assignment - Architectural Diagram

2

1

Topics: Introduction to Object-Oriented Analysis, Design, and Development

 

 

  • Review the lecture material
  • Participate in the Discussions
  • Submit Week 2 Assignment - Analysis and Design

3

1

Topics: Advanced Object-Oriented Development

  • Review the lecture material
  • Participate in the Discussions
  • Submit Week 3 Assignment - Template Class

4

2

Topic: Design Patterns

  • Review the lecture material
  • Participate in the Discussions
  • Submit Week 4 Assignment - Design Patterns

5

4

Topics: Software Security and Scanning Tools

  • Review the lecture material
  • Participate in the Discussions
  • Submit Week 5 Assignment - Secure Coding

6

7

Topics: Testing

  • Readings:
    • Introduction to Test and Behavior Driven Development - Modules 1-5 
  • Read assigned material
  • Review "Accessing Coursera Modules"
  • Review the lecture material
  • Participate in the Discussions
  • Submit Week 6 labs and assignments

7

8

Topics: Object Relational Mapping

  • Review the lecture material
  • Participate in the Discussions
  • Submit Week 7 Assignment - ORM Blog

8

6

Topic: Machine Learning and AI

 

  • Review the lecture material
  • Participate in the Discussions
  • Week 8 Assignment - Beyond KNN and Decision Trees
  • Complete course evaluation

COSC Accessibility Statement

Charter Oak State College encourages students with disabilities, including non-visible disabilities such as chronic diseases, learning disabilities, head injury, attention deficit/hyperactive disorder, or psychiatric disabilities, to discuss appropriate accommodations with the Office of Accessibility Services at OAS@charteroak.edu.

COSC Policies, Course Policies, Academic Support Services and Resources

Students are responsible for knowing all Charter Oak State College (COSC) institutional policies, course-specific policies, procedures, and available academic support services and resources. Please see COSC Policies for COSC institutional policies, and see also specific policies related to this course. See COSC Resources for information regarding available academic support services and resources.