CIS 405 – Advanced Programming
Categories: BS in Computer Science
About Course
This course delves into advanced programming concepts and languages, focusing on software design patterns and best practices. Students will explore sophisticated programming techniques and paradigms, including object-oriented design, functional programming, and concurrency. The course emphasizes writing clean, maintainable, and efficient code, with a strong focus on applying design patterns to solve common software engineering problems.
What Will You Learn?
- Apply advanced programming paradigms and modern software development techniques
- Design robust software using object-oriented principles and SOLID practices
- Implement creational, structural, and behavioral design patterns in real applications
- Utilize functional programming techniques to improve code quality and modularity
- Develop concurrent and parallel applications for performance optimization
- Analyze and implement advanced data structures and algorithmic solutions
- Refactor and optimize code for maintainability and efficiency
- Apply software testing, debugging, and test-driven development practices
- Use modern frameworks and clean coding standards in enterprise development
- Evaluate emerging programming trends including AI-driven software development
Course Content
Week 1: Introduction To Advanced Programming Concepts
-
Introduction To Advanced Programming Concepts
02:44 -
LO1: Define Advanced Programming Concepts And Summarize Their Role In Modern Software Development.
-
LO2: Explain Key Programming Paradigms And Advanced Development Techniques Used In Large-Scale Applications.
00:00 -
LO3: Analyze How Advanced Programming Techniques Improve Code Efficiency, Scalability, And Maintainability.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Term Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 2: Object-Oriented Design Principles
-
Week 2: Object-Oriented Design Principles
00:00 -
LO1: Define Core Object-Oriented Design Principles Including Encapsulation, Inheritance, And Polymorphism.
00:00 -
LO2: Explain The SOLID Design Principles And Their Role In Robust Software Architecture.
00:00 -
LO3: Analyze Software Design Problems Using Object-Oriented Design Principles.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Term Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 3: Software Design Patterns – Creational Patterns
-
Week 3: Software Design Patterns – Creational Patterns
00:00 -
LO1: Define Creational Design Patterns And Their Role In Object Creation Mechanisms.
00:00 -
LO2: Explain The Structure And Implementation Of Singleton, Factory Method, Abstract Factory, And Builder Patterns.
00:00 -
LO3: Analyze Programming Scenarios To Select Appropriate Creational Design Patterns.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Term Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 4: Structural Design Patterns
-
Week 4: Structural Design Patterns
00:00 -
LO1: Define Structural Design Patterns And Their Role In Class And Object Composition.
00:00 -
LO2: Explain The Functionality Of Adapter, Composite, Decorator, And Facade Patterns.
00:00 -
LO3: Analyze How Structural Patterns Improve System Flexibility And Software Maintainability.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Term Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 5: Behavioral Design Patterns
-
Week 5: Behavioral Design Patterns
00:00 -
LO1: Define Behavioral Design Patterns Used To Manage Object Communication.
00:00 -
LO2: Explain The Implementation Of Strategy, Observer, Command, And Iterator Patterns.
00:00 -
LO3: Evaluate The Role Of Behavioral Patterns In Improving Program Control Flow And Software Flexibility.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Term Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 6: Functional Programming Concepts
-
Week 6: Functional Programming Concepts
00:00 -
LO1: Define Key Functional Programming Concepts Including Lambda Expressions, Higher-Order Functions, And Immutability.
00:00 -
LO2: Explain How Functional Programming Techniques Improve Code Modularity And Program Readability.
00:00 -
LO3: Analyze The Benefits Of Functional Programming Approaches In Modern Software Development.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Term Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 7: Concurrency And Parallelism
-
Week 7: Concurrency And Parallelism
00:00 -
LO1: Define Concurrency And Parallelism In Software Systems.
00:00 -
LO2: Explain Multithreading, Synchronization Mechanisms, And Concurrent Data Structures.
00:00 -
LO3: Analyze The Impact Of Parallel Processing Techniques On Application Performance.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Term Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 8: Midterm Assessment
-
Week 8: Midterm Assessment
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 9: Advanced Data Structures And Algorithms
-
Week 9: Advanced Data Structures And Algorithms
00:00 -
LO1: Define Advanced Data Structures Including Trees, Graphs, And Dynamic Programming Techniques.
00:00 -
LO2: Explain Algorithm Design Techniques Used To Solve Complex Computational Problems.
00:00 -
LO3: Analyze Algorithm Efficiency Using Appropriate Data Structures And Complexity Analysis.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Term Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 10: Code Refactoring And Optimization
-
Week 10: Code Refactoring And Optimization
00:00 -
LO1: Define Code Refactoring And Its Importance In Software Quality Improvement.
00:00 -
LO2: Explain Common Code Smells And Refactoring Techniques Used In Software Development.
00:00 -
LO3: Analyze Strategies For Performance Optimization And Code Maintainability.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Term Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 11: Testing And Debugging Best Practices
-
Week 11: Testing And Debugging Best Practices
00:00 -
LO1: Define Software Testing Methods Including Unit Testing And Integration Testing.
00:00 -
LO2: Explain The Principles Of Test-Driven Development And Automated Testing Frameworks.
00:00 -
LO3: Analyze Debugging Techniques Used To Identify And Resolve Software Defects.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Term Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 12: Design Patterns In Modern Frameworks
-
Week 12: Design Patterns In Modern Frameworks
00:00 -
LO1: Define The Role Of Design Patterns In Modern Software Frameworks.
00:00 -
LO2: Explain How Frameworks Such As Spring, Django, Or Angular Implement Design Patterns.
00:00 -
LO3: Analyze The Benefits Of Framework-Based Design Patterns In Enterprise Software Development.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Term Questions
-
Short Answer Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 13: Clean Code And Software Craftsmanship
-
Week 13: Clean Code And Software Craftsmanship
00:00 -
LO1: Define The Principles Of Clean Code In Software Development Practices.
00:00 -
LO2: Explain Best Practices For Writing Readable, Maintainable, And Efficient Code.
00:00 -
LO3: Evaluate How Software Craftsmanship Practices Improve Code Quality And Project Sustainability.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Term Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 14: Case Studies In Advanced Programming
-
Week 14: Case Studies In Advanced Programming
-
LO1: Describe Real-World Software Development Case Studies And Their Programming Challenges.
00:00 -
LO2: Analyze Solutions And Strategies Applied In Large-Scale Software Systems.
00:00 -
LO3: Evaluate Lessons Learned From Software Development Projects.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Terms
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 15: Emerging Trends In Programming
-
Week 15: Emerging Trends In Programming
00:00 -
LO1: Define Emerging Programming Languages, Development Tools, And Programming Paradigms.
-
LO2: Explain The Impact Of Artificial Intelligence, Cloud Computing, And Automation On Programming Practices.
00:00 -
LO3: Analyze The Influence Of Emerging Technologies On Future Software Development Methodologies.
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Key Terms
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation
Week 16: Final Assessment
-
Week 16: Final Assessment
00:00 -
Multiple Choice Questions
-
True / False
-
Scenario-Based Multiple Choice Questions
-
Short Answer Questions
-
Written Assignment
-
Presentation Task
-
Role-Playing Activity
-
Peer Review Task
-
Exercises and Activities Adaptation