Home
Categories
EXPLORE
True Crime
Comedy
Business
Society & Culture
History
Sports
Health & Fitness
About Us
Contact Us
Copyright
© 2024 PodJoint
00:00 / 00:00
Sign in

or

Don't have an account?
Sign up
Forgot password
https://is1-ssl.mzstatic.com/image/thumb/Podcasts211/v4/d8/2c/65/d82c653b-8c4f-de44-221a-c8f0756b2c62/mza_10622313844242288062.jpg/600x600bb.jpg
Revision
TheLidlMan
13 episodes
4 days ago
Revision Podcast for Computer Science at RHUL
Show more...
Courses
Education
RSS
All content for Revision is the property of TheLidlMan and is served directly from their servers with no modification, redirects, or rehosting. The podcast is not affiliated with or endorsed by Podjoint in any way.
Revision Podcast for Computer Science at RHUL
Show more...
Courses
Education
Episodes (13/13)
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.

Show more...
6 months ago
20 minutes 30 seconds

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.

Show more...
6 months ago
20 minutes 13 seconds

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 highlighted. Furthermore, the materials provide context for a team project utilising Scrum principles, outlining the sprint structure and expectations.

Show more...
6 months ago
15 minutes 45 seconds

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 the use of automated tools for detecting code smells and the critical role of testing throughout the refactoring process to ensure code reliability.

Show more...
6 months ago
20 minutes 2 seconds

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.

Show more...
6 months ago
21 minutes 33 seconds

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.

Show more...
6 months ago
15 minutes 12 seconds

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 the code review process.

Show more...
6 months ago
37 minutes 3 seconds

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 Git.

Show more...
6 months ago
19 minutes 24 seconds

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.

Show more...
6 months ago
29 minutes 17 seconds

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.

Show more...
6 months ago
24 minutes 20 seconds

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.

Show more...
6 months ago
32 minutes 12 seconds

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.

Show more...
6 months ago
21 minutes 14 seconds

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.

Show more...
6 months ago
10 minutes 48 seconds

Revision
Revision Podcast for Computer Science at RHUL