Advanced programming paradigms
- About
- e-Leadership MBA
- Graduate Professional Program
- Joint Graduate Study Programme in Computer Science - Internet of Things and Artificial Intelligence
- Lecture Plan
- Computing
- Undergraduate University Program
- Learning outcomes on the program level
- Learning outcomes on the program level
- Admission
- Learning outcomes on the program level
- Learning outcomes on the program level
- Apply now
- Learning outcomes on the program level
- Learning outcomes on the program level
- Learning outcomes on the program level
- Learning outcomes on the program level
- Useful Information
- Learning outcomes on the program level
- Learning outcomes on the program level
- Useful Information
- Professional Title Acquired
- 3D Design
- Design
- Duration of the Study Program
- Undergraduate Professional Program
- Lecture Plan
- Lecture Plan
- Lecture Plan
- Useful Information
- Useful Information
- Software Package Included in the Price of the Study
- Software Package Included in the Price of the Study
- Course Schedules
- Course Schedules
- Professional Title Acquired
- Duration of the Study Program
- Digital Marketing
- Software Package Included in the Price of the Study
- Duration of the Study Program
- Lecture Plan
- Professional Title Acquired
- Useful Information
- Course Schedules
- Multimedia Computing
- Industry Certifications
- Course Schedules
- Professional Title Acquired
- Software Package Included in the Price of the Study
- System Engineering
- Duration of the Study Program
- Lecture plan
- Course Schedules
- Professional Title Acquired
- Software Package Included in the Price of the Study
- Industry Certifications
- Useful Information
- Software Engineering
- Duration of the Study Program
- Software Package Included in the Price of the Study
- Course Schedules
- Lecture Plan
- Industry Certifications
- Useful Information
- Professional Title Acquired
- Creative Market Communications Management
- Duration of the Study Program
- Course Schedules
- Industry Certifications
- Lecture Plan
- Useful Information
- Duration of the Study Program
- Software Package Included in the Price of the Study
- Digital Marketing
- Who Can Enroll
- Professional Title Acquired
- Software Package Included in the Price of the Study
- Course Schedules
- Lecture Plan
- Professional Title Acquired
- Useful Information
- Useful Information
- Data Science
- Industry Certifications
- Course Schedules
- Jobs and necessary knowledge and skills that graduates will be prepared for
- Course Schedules
- Duration of the Study Program
- Software Package Included in the Price of the Study
- Lecture Plan
- Duration of the Study
- Game Development
- Professional Title Acquired
- Who Can Enroll
- Professional Title Acquired
- MITx MicroMasters® program
- Useful Information
- Lecture Plan
- Software Package Included in the Price of the Study
- System Engineering
- Duration of the Study
- Who can Apply
- Course Schedules
- Lecture Plan
- Software Engineering
- Software Engineering
- Useful Information
- Study Duration
- Lecture Plan
- Lecture Plan
- Useful Information
- Useful Information
- Learning outcomes on the program level
- Learning outcomes on the program level
- Industry Certifications
- Industry Certifications
- Professional Title Acquired
- Professional Title Acquired
- Duration of the Study Program
- Duration of the Study Program
- Course Schedules
- Course Schedules
- Learning outcomes on the program level
- Partnership with Goldsmiths, University of London
- Partnership with Goldsmiths, University of London
- Partnership with Goldsmiths, University of London
- Partnership with Goldsmiths, University of London
- Partnership with Goldsmiths, University of London
- Partnership with Goldsmiths, University of London
- Partnership with Goldsmiths, University of London
- Partnership with Goldsmiths, University of London
- Partnership with Goldsmiths, University of London
- Partnership with Goldsmiths, University of London
- Partnership with Goldsmiths, University of London
- Partnership with Goldsmiths, University of London
- Partnership with Goldsmiths, University of London
- Partnership with Goldsmiths, University of London
- Class 15
- Practice 30
- Independent work 105
Course title
Advanced programming paradigms
Lecture type
Obligatory
Course code
21-02-511
Semester
2
ECTS
5
Lecturers and associates
Course overview
This module introduces students to the basics of testing programming products and implementing the advanced programming paradigms.
This module is intended for students who wish to learn advanced paradigms in object-oriented programming. The skills acquired by this module will contribute significantly to students’ development as professionals in the respective fields.
Students will learn:
• How to test and improve software solutions, which is a valuable skill for their future challenges as software architects.
• How to design testing concepts of programming solutions.
• How to improve programming solutions by reducing coupled code, using the aspect-oriented approach, and implementing programming metrics.
The module is taught in Java and C
programming languages. The module assessment is based on individual student projects. In these projects, students must create a software solution to the given specifications.
Literature
Essential reading:
1. Kaner, C., Bach, J. and Pettichord, B. (2008) Lessons learned in software testing. Hoboken: John Wiley and Sons.
2. Martin, R.C. (2009) Clean code: a handbook of agile software craftsmanship. London: Pearson Education.
Recommended reading:
1. McLaughlin, B., Pollice, G. and West, D. (2006) Head First Object-Oriented Analysis and Design: A Brain Friendly Guide to OOAandD. Sebastopol: O'Reilly Media, Inc.
Further reading:
1. Mancuso, S. (2014) The software craftsman: Professionalism, Pragmatism, Pride. London: Pearson Education.
Minimal learning outcomes
- Describing basic testing concepts of programming solutions.
- Comparing testing types of programming solutions.
- Designing and using programming tools for single-testing programming solutions.
- Profiling - Testing programming systems and making them compatible with relevant norms.
- Analysing programming solution for detecting coupled code.
- Suggesting and implementing the aspect-oriented approach for coupled code.
- Implementing the strategy of source code management.
- Analysing and code refactoring by clean code principles.
- Implementing programming metrics.
Preferred learning outcomes
- Describing advanced programming testing concepts.
- Suggesting and implementing at least two types of programming testing.
- Designing instances on architecturally different parts of the application and using programming tools for single-testing programming solution.
- Offering solutions for decreasing time spent and allocated memory for completing given programming solution based on the results obtained by using programming tools.
- Improving programming solution to reduce coupled code.
- Implementing at least two different aspects so that programming solutions could be organizationally improved.
- Using at least two branches for managing the source code strategy
- Refactoring programming solution according to the SOLID principles.
- Implementing one's own metric in programming solution.