podcast
details
.com
Print
Share
Look for any podcast host, guest or anyone
Search
Showing episodes and shows of
TheLidlMan
Shows
Revision
8) Code Review - CS2800 - Software Engineering
This document, "Modern Code Review for Improving Software Quality", explores contemporary code review practices, examining their effectiveness in addressing coding convention violations. It presents research investigating the prevalence of convention violations despite reviews, the types of violations tackled, and their impact on the review process. The text also discusses the potential benefits of recommending related prior code reviews to provide valuable context for reviewers. Furthermore, it outlines requirements for effective similarity measurements to facilitate such recommendations, comparing different approaches. The research ultimately aims to understand and enhance the role of code review in software development.
2025-04-25
20 min
Revision
7) Testing Concepts - CS2800 - Software Engineering
This resource explains fundamental software testing concepts, starting with program flow, which dictates execution order and is visually represented by flowcharts and control flow graphs. It introduces cyclomatic complexity as a metric to quantify a program's logical difficulty based on its control flow. The material then discusses test coverage, outlining criteria like statement, branch, and basic condition coverage to assess the extent to which tests exercise the codebase. Ultimately, the document bridges the understanding of program complexity with strategies for ensuring adequate test coverage.
2025-04-25
20 min
Revision
6) Lifecycle - CS2800 - Software Engineering
This collection of materials outlines the Software Development Lifecycle and introduces Agile methodologies, with a strong focus on the Scrum framework. It begins by contrasting traditional approaches with the values expressed in the Agile Manifesto, emphasising individuals, working software, collaboration, and responding to change. The documents then detail the Scrum process, including roles like the Product Owner, Scrum Master, and Developers, and its structured workflow involving Sprints, the Product Backlog, and various meetings such as Sprint Planning, Daily Scrums, and Sprint Reviews. Key Scrum concepts like timeboxing, increments of value, and the importance of honesty and continuous improvement are...
2025-04-25
15 min
Revision
5) Refactoring - CS2800 - Software Engineering
These sources comprehensively outline refactoring, the systematic improvement of code without altering its functionality, emphasizing its importance in combating technical debt, which arises from poor coding practices and rushed development. The materials detail code smells, indicators of underlying problems in code categorized as bloaters, object-orientation abusers, change preventers, dispensables, and couplers, and provide numerous examples of each. Furthermore, the resources present various refactoring techniques, categorized by composing methods, moving features, organising data, simplifying conditionals, simplifying method calls, and dealing with generalisation, illustrating their application with before-and-after code examples. Finally, the sources discuss when and how to refactor effectively, including...
2025-04-25
20 min
Revision
4) Design Patterns - CS2800 - Software Engineering
These materials from lecture slides cover design patterns, which are reusable solutions to common software design challenges. The initial set of slides introduces the motivation and classification of these patterns, categorising them as creational, behavioral, and structural. Specific patterns like Singleton and Factory (both abstract and regular) within the creational category are detailed, alongside behavioral patterns such as Observer and State. The subsequent slides continue by examining structural patterns like Facade and Bridge, which focus on object composition, and conclude with an overview of the Model-View-Controller (MVC) architectural pattern, emphasising its role in separating concerns within an application.
2025-04-25
21 min
Revision
3) UML - CS2800 - Software Engineering
This material introduces Unified Modelling Language (UML) as a graphical tool for software system design and communication, highlighting the class diagram as a frequently used type for outlining classes and their relationships. It then transitions to software design principles, including SOLID, emphasizing concepts like separation of concerns and avoiding repetition, while noting these are guidelines rather than strict rules. Finally, the text introduces the Spring Framework, an enterprise Java platform, covering its core features like Dependency Injection and Data Access Objects, and explains how to handle web requests and perform testing using Spring Boot and MockMvc.
2025-04-25
15 min
Revision
2) Maintainable Code - CS2800 - Software Engineering
These sources present essential practices for developing maintainable software, particularly within a Java environment. They introduce key tools and libraries such as Maven for build automation, JUnit for unit testing, and static analysis tools like Checkstyle and SpotBugs for code quality. The materials emphasise the importance of writing well-documented code using Javadoc and following established coding standards to ensure consistency. Furthermore, they outline the principles of Test-Driven Development (TDD) and the benefits of Continuous Integration (CI) and Continuous Deployment (CD) pipelines for automated validation and deployment. Finally, the sources cover collaborative aspects of software development, including issue tracking and...
2025-04-25
37 min
Revision
1) Version Control - CS2800 - Software Engineering
This material introduces the Version Control System (VCS), explaining its purpose in tracking file changes and enabling team collaboration on code, configurations, and documentation. It distinguishes between centralised (like SVN) and distributed (like Git and Mercurial) VCS, highlighting the advantages of the latter in terms of scalability and flexibility. The resource focuses extensively on Git, detailing its snapshot-based approach, local operations, file lifecycle, and the significance of commits, branching, and merging, including how to handle conflicts. Finally, it touches upon remote repositories, the role of platforms like GitLab for hosting and collaboration, and recommends resources for further learning about...
2025-04-25
19 min
Revision
5) Network & Control - IY2760 - Informational Security
These materials from Dr Ng's Information Security course at RHUL cover fundamental concepts of computer and network security, with a significant focus on access control mechanisms and models like ACLs, capability lists, RBAC, and matrix-based approaches. The texts also explore network security protocols such as IPsec and TLS, alongside methods for intrusion prevention and detection, including firewalls and IDSs. Furthermore, emerging topics like quantum computing and its cryptographic implications, alongside software vulnerabilities and malicious software, are introduced to provide a broader understanding of contemporary security challenges.
2025-04-25
29 min
Revision
4) Authentication - IY2760 - Informational Security
Information security concepts, particularly concerning authentication and key establishment, are explored across these documents. The EMV source details the chip and PIN standard for payment cards, outlining authentication methods and the underlying public key infrastructure. The authentication document examines various techniques for verifying identities, including passwords, challenge-response systems, and biometrics, alongside modern identity systems. GSM authentication provides a case study of security measures within mobile communications. Finally, key establishment covers methods for securely sharing secret keys, such as pre-distribution, distribution protocols like Kerberos, and key agreement schemes like Diffie-Hellman.
2025-04-25
24 min
Revision
3) Encryption - IY2760 - Informational Security
These course materials provide an introduction to information security, specifically focusing on symmetric encryption techniques. The first source examines block ciphers, detailing their design principles like iterated, SP-network, and Feistel ciphers, and exploring prominent examples such as DES and AES, including their modes of operation. The second document discusses integrity mechanisms, covering hash functions and their properties, message authentication codes (MACs) like CBC-MAC, and the concept of authenticated encryption. Finally, the third source explains stream ciphers, contrasting them with block ciphers, outlining their security considerations, and presenting examples of modern stream cipher designs.
2025-04-25
32 min
Revision
2) Cryptography - IY2760 - Informational Security
These course materials from Dr Siaw-Lynn Ng's information security module introduce fundamental concepts in cryptography, exploring both historical and modern approaches to secure communication. The initial document outlines core terminology like cryptosystems and adversarial models, alongside classical ciphers such as Caesar and Vigenère, highlighting their vulnerabilities. A subsequent excerpt details the mechanics of permutation ciphers through definitions and examples. Finally, another segment demonstrates the cryptanalysis of substitution ciphers, illustrating techniques like frequency analysis to break encrypted messages.
2025-04-25
21 min
Revision
1) Intro - IY2760 - Informational Security
Dr Siaw-Lynn Ng provides an overview of the Information Security (IY2760/DC3760) module for September 2024. The module, led by Dr Ng, covers topics from introductory cryptography to computer and network security across ten teaching weeks. Assessment includes two coursework components (15% each) and a final invigilated examination (70%), alongside formative activities for self-assessment. Recommended reading for cryptography is K. Martin's "Everyday Cryptography", with additional resources available on Moodle. The module aims to provide a broad understanding of information security concepts and their applications.
2025-04-24
10 min