Week 1 Flashcards

(34 cards)

1
Q

What is Software Engineering?

A

The systematic application of engineering
approaches to software development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Systematic methodology?

A

Employing structured and well-defined
processes to ensure consistency and reliability in software development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

To have a disciplined, quantifiable approach

A

Use metrics, analysis, and
evaluation to measure and improve software quality.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is development, operation, and maintenance

A

Addressing the entire
software lifecycle, from initial design to deployment and updates,
ensuring sustainability and adaptability.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Why is Software Engineering Important?

A
  • Helps build reliable, maintainable, and scalable systems.
  • Reduces costs by minimising errors and improving
    efficiency.
  • Addresses challenges like complexity, evolving
    requirements, and team collaboration.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is abstraction?

A

The process of hiding unnecessary details and
exposing only the essential features of a system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Purpose of abstraction?

A

Simplifies system complexity, making it easier to
manage and understand.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is modularity?

A

Dividing a system into smaller, self-contained modules or
components.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Benefits of modularity?

A
  • Enhances maintainability by isolating changes to specific modules.
  • Facilitates parallel development by allowing teams to work on different
    modules independently.
  • Promotes code reuse across projects.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is encapsulation?

A

Restricting access to certain parts of an object and exposing only
the necessary interfaces.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the purpose of encapsulation?

A
  • Protects data integrity by preventing unauthorized access or modification.
  • Enables loose coupling between components, making systems more
    adaptable.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is Object-Oriented Programming (OOP)?

A

A programming paradigm based on the concept of “objects” that represent
real-world entities.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

(OOP core concept) What are Classes and Objects?

A

A class is a blueprint, and an object is an instance of that
class.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

(OOP core concept) What is Inheritance and Polymorphism?

A

Mechanisms to create hierarchies and enable
dynamic behaviour, such as overriding methods.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

(OOP core concept) What is Encapsulation and Abstraction?

A

Simplifying complexity and protecting system
integrity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is type safety?

A

Ensuring that variables and operations adhere strictly to their defined types.

17
Q

Advantages of type safety?

A
  • Reduces runtime errors by catching issues during compilation.
  • Improves code readability and maintainability
18
Q

(Type Safety) What does Strong Type Checking do?

A

Prevents assigning incompatible types (e.g., assigning a string to an integer).

19
Q

(Type Safety) What does Type Inference do?

A

Allows the compiler to deduce the type of a variable, making code more concise.

20
Q

(Type Safety) What does Generic Types do?

A

Enables type-agnostic definition for collections and methods e.g. List<T> for lists of any type.</T>

21
Q

What is memory management?

A

The process of allocating and deallocating memory resources
during program execution.

22
Q

What are memory management features?

A
  • Garbage collection
  • Resource management
  • Disposal patterns
23
Q

Garbage Collection?

A

Automatically reclaims unused objects, reducing
memory leaks and manual effort.

24
Q

Resource Management?

A

Ensures efficient use of system resources, such as
file handles and network connections.

25
Disposal Patterns?
Implements interfaces like IDisposable for deterministic clean up of unmanaged resources (e.g., database connections).
26
Type Safety features?
* Strong type checking. * Type inference. * Generic types.
27
Common Language Runtime (CLR)?
The execution engine for .NET applications, providing services like memory management, exception handling, and security.
28
CLR features?
* Just-In-Time (JIT) Compilation * Garbage Collection
29
Just-In-Time (JIT) Compilation?
Converts intermediate code (IL) into machine code at runtime for optimal performance.
30
Garbage Collection?
Automatically manages memory allocation and clean up.
31
Base Class Library (BCL)?
A collection of reusable classes and methods for common programming tasks.
32
Base Class Library (BCL) capabilities?
* File I/O operations. * Data manipulation (e.g., sorting, searching). * String handling and regular expressions.
33
What is Language Independence?
Supports multiple programming languages within the .NET ecosystem.
34
Language Independence benefits?
* Enables interoperability between components written in different languages (e.g., combining C# and F#). * Promotes code sharing and collaboration across teams.