INF3708 ASSIGHNMENT 4[ QUALITY ANSWERS]2024
Database Management
Question 1: Explain the concept of normalization and describe the differences between the 1st,
2nd, and 3rd normal forms.
Solution: Normalization is the process of organizing data in a database to reduce redundancy
and improve data integrity. The normal forms are:
1st Normal Form (1NF): Ensures that the table has no repeating groups, and each field
contains only atomic (indivisible) values.
2nd Normal Form (2NF): Meets all requirements of 1NF, and all non-key attributes are
fully functionally dependent on the primary key.
3rd Normal Form (3NF): Meets all requirements of 2NF, and all non-key attributes are
not only fully functionally dependent on the primary key but also non-transitively
dependent (i.e., non-key attributes do not depend on other non-key attributes).
Question 2: Design a simple ER diagram for a university database that includes entities for
Students, Courses, and Enrollments.
Solution:
Entities:
o Student (StudentID, Name, Email)
o Course (CourseID, CourseName, Credits)
o Enrollment (EnrollmentID, StudentID, CourseID, EnrollmentDate)
Relationships:
o A student can enroll in multiple courses.
o A course can have multiple students.
Programming
Question 1: Write a function in Python that takes a list of integers and returns the list sorted in
ascending order.
Question 2: Explain the difference between procedural and object-oriented programming.
Solution:
Procedural Programming: Focuses on procedures or routines (functions) to operate on
data. It is a step-by-step approach to solving a problem, where the program is divided into
small procedures or functions.
, Object-Oriented Programming (OOP): Focuses on objects that encapsulate data and
behavior. It uses classes to create objects, promoting reusability and modularity. Key
concepts include inheritance, encapsulation, polymorphism, and abstraction.
Systems Analysis
Question 1: What is the purpose of a use case diagram in systems analysis?
Solution: A use case diagram is used to represent the functional requirements of a system. It
shows the interactions between actors (users or other systems) and the system itself. Use case
diagrams help in understanding the system's functionality and identifying the system's scope.
Question 2: Describe the steps involved in the systems development life cycle (SDLC).
Solution: The SDLC involves several phases:
1. Planning: Define the scope, objectives, and feasibility of the project.
2. Analysis: Gather and analyze requirements, create a detailed functional specification.
3. Design: Create system architecture, design interfaces, and data models.
4. Implementation: Develop the actual system components through coding.
5. Testing: Verify that the system meets requirements and is free of defects.
6. Deployment: Deploy the system to a production environment.
7. Maintenance: Provide ongoing support, make necessary updates and improvements.
Software Engineering
Question 1: What are the key principles of Agile development?
Solution: Agile development focuses on delivering small, functional pieces of software
frequently, with a strong emphasis on collaboration, customer feedback, and flexibility. Key
principles include:
Customer satisfaction: Delivering valuable software early and continuously.
Welcome change: Embrace changes in requirements, even late in development.
Frequent delivery: Deliver working software frequently, with a preference for shorter
timescales.
Collaboration: Close cooperation between business stakeholders and developers.
Motivated individuals: Build projects around motivated individuals and provide them
with the environment and support they need.
Face-to-face communication: The most efficient and effective method of conveying
information.
Working software: Primary measure of progress.
Sustainable development: Maintain a constant pace indefinitely.
Technical excellence: Continuous attention to technical excellence and good design.
, Simplicity: Maximize the amount of work not done.
Self-organizing teams: The best architectures, requirements, and designs emerge from
self-organizing teams.
Reflection: Regularly reflect on how to become more effective and adjust behavior
accordingly.
Question 2: Compare and contrast the Waterfall and Agile methodologies.
Solution:
Waterfall Methodology:
o Linear and sequential approach.
o Phases: Requirements, Design, Implementation, Testing, Deployment,
Maintenance.
o Each phase must be completed before the next begins.
o Changes are difficult and costly once a phase is completed.
o Suitable for projects with well-defined requirements.
Agile Methodology:
o Iterative and incremental approach.
o Phases: Planning, Development, Testing, Review, and Feedback.
o Emphasis on collaboration, flexibility, and customer feedback.
o Changes are welcomed and can be incorporated at any stage.
o Suitable for projects with evolving requirements.
Networking
Question 1: What is the OSI model and its layers?
Solution: The OSI (Open Systems Interconnection) model is a conceptual framework used to
understand and standardize the functions of a telecommunication or computing system. It has
seven layers:
1. Physical Layer: Transmits raw bitstreams over a physical medium.
2. Data Link Layer: Provides node-to-node data transfer and error correction.
3. Network Layer: Handles routing and forwarding of data packets.
4. Transport Layer: Ensures complete data transfer and error recovery.
5. Session Layer: Manages sessions or connections between applications.
6. Presentation Layer: Translates data formats and encrypts/decrypts data.
7. Application Layer: Provides network services directly to applications.
Question 2: Explain the difference between TCP and UDP.
Solution:
TCP (Transmission Control Protocol):
o Connection-oriented protocol.
Database Management
Question 1: Explain the concept of normalization and describe the differences between the 1st,
2nd, and 3rd normal forms.
Solution: Normalization is the process of organizing data in a database to reduce redundancy
and improve data integrity. The normal forms are:
1st Normal Form (1NF): Ensures that the table has no repeating groups, and each field
contains only atomic (indivisible) values.
2nd Normal Form (2NF): Meets all requirements of 1NF, and all non-key attributes are
fully functionally dependent on the primary key.
3rd Normal Form (3NF): Meets all requirements of 2NF, and all non-key attributes are
not only fully functionally dependent on the primary key but also non-transitively
dependent (i.e., non-key attributes do not depend on other non-key attributes).
Question 2: Design a simple ER diagram for a university database that includes entities for
Students, Courses, and Enrollments.
Solution:
Entities:
o Student (StudentID, Name, Email)
o Course (CourseID, CourseName, Credits)
o Enrollment (EnrollmentID, StudentID, CourseID, EnrollmentDate)
Relationships:
o A student can enroll in multiple courses.
o A course can have multiple students.
Programming
Question 1: Write a function in Python that takes a list of integers and returns the list sorted in
ascending order.
Question 2: Explain the difference between procedural and object-oriented programming.
Solution:
Procedural Programming: Focuses on procedures or routines (functions) to operate on
data. It is a step-by-step approach to solving a problem, where the program is divided into
small procedures or functions.
, Object-Oriented Programming (OOP): Focuses on objects that encapsulate data and
behavior. It uses classes to create objects, promoting reusability and modularity. Key
concepts include inheritance, encapsulation, polymorphism, and abstraction.
Systems Analysis
Question 1: What is the purpose of a use case diagram in systems analysis?
Solution: A use case diagram is used to represent the functional requirements of a system. It
shows the interactions between actors (users or other systems) and the system itself. Use case
diagrams help in understanding the system's functionality and identifying the system's scope.
Question 2: Describe the steps involved in the systems development life cycle (SDLC).
Solution: The SDLC involves several phases:
1. Planning: Define the scope, objectives, and feasibility of the project.
2. Analysis: Gather and analyze requirements, create a detailed functional specification.
3. Design: Create system architecture, design interfaces, and data models.
4. Implementation: Develop the actual system components through coding.
5. Testing: Verify that the system meets requirements and is free of defects.
6. Deployment: Deploy the system to a production environment.
7. Maintenance: Provide ongoing support, make necessary updates and improvements.
Software Engineering
Question 1: What are the key principles of Agile development?
Solution: Agile development focuses on delivering small, functional pieces of software
frequently, with a strong emphasis on collaboration, customer feedback, and flexibility. Key
principles include:
Customer satisfaction: Delivering valuable software early and continuously.
Welcome change: Embrace changes in requirements, even late in development.
Frequent delivery: Deliver working software frequently, with a preference for shorter
timescales.
Collaboration: Close cooperation between business stakeholders and developers.
Motivated individuals: Build projects around motivated individuals and provide them
with the environment and support they need.
Face-to-face communication: The most efficient and effective method of conveying
information.
Working software: Primary measure of progress.
Sustainable development: Maintain a constant pace indefinitely.
Technical excellence: Continuous attention to technical excellence and good design.
, Simplicity: Maximize the amount of work not done.
Self-organizing teams: The best architectures, requirements, and designs emerge from
self-organizing teams.
Reflection: Regularly reflect on how to become more effective and adjust behavior
accordingly.
Question 2: Compare and contrast the Waterfall and Agile methodologies.
Solution:
Waterfall Methodology:
o Linear and sequential approach.
o Phases: Requirements, Design, Implementation, Testing, Deployment,
Maintenance.
o Each phase must be completed before the next begins.
o Changes are difficult and costly once a phase is completed.
o Suitable for projects with well-defined requirements.
Agile Methodology:
o Iterative and incremental approach.
o Phases: Planning, Development, Testing, Review, and Feedback.
o Emphasis on collaboration, flexibility, and customer feedback.
o Changes are welcomed and can be incorporated at any stage.
o Suitable for projects with evolving requirements.
Networking
Question 1: What is the OSI model and its layers?
Solution: The OSI (Open Systems Interconnection) model is a conceptual framework used to
understand and standardize the functions of a telecommunication or computing system. It has
seven layers:
1. Physical Layer: Transmits raw bitstreams over a physical medium.
2. Data Link Layer: Provides node-to-node data transfer and error correction.
3. Network Layer: Handles routing and forwarding of data packets.
4. Transport Layer: Ensures complete data transfer and error recovery.
5. Session Layer: Manages sessions or connections between applications.
6. Presentation Layer: Translates data formats and encrypts/decrypts data.
7. Application Layer: Provides network services directly to applications.
Question 2: Explain the difference between TCP and UDP.
Solution:
TCP (Transmission Control Protocol):
o Connection-oriented protocol.