Important Questions

CSC334 · Exam intelligence

Society and Ethics in Information Technology important questions

From 3 past TU papers: which questions keep coming back, how much they carry, and what is most likely to show up next. Every question links to a model answer.

Most likely in the next examStatistical

Ranked by how often a topic is asked, its marks weight, and whether it is due after skipping the 2079 paper. No guarantees; study the whole syllabus.

1asked 3xavg 5 marks · due (skipped 2079) · Virtualization, Virtual Reality, and Ethics
Answer

What is virtual reality? what are the different types of virtual reality? [5]

Virtual Reality (VR) is a computer-generated, three-dimensional interactive environment that simulates a real or imaginary world, allowing users to immerse themselves in and interact with that environment in a seemingly real or physical ...

2asked 2xavg 10 marks · due (skipped 2079) · Digital Divide
Answer

Define the digital divide. Explain different enablers of the digital divide.[10]

Digital Divide: Definition and Enablers


Definition of Digital Divide

The digital divide refers to the gap that exists between individuals, households, businesses, and geographic areas at different socio-economic levels with regard to their opportunities to access information and communication technologies (ICTs) and their use of the Internet for a wide variety of activities.

In simpler terms, it is the inequality between those who have access to digital technology (computers, internet, smartphones, etc.) and those who do not, or who have limited access. This divide can exist between:

  • Developed and developing countries (global divide)
  • Urban and rural populations (geographic divide)
  • Rich and poor individuals (economic divide)
  • Educated and uneducated people (knowledge divide)

The digital divide is not just about access to hardware; it also encompasses the skills, literacy, and meaningful use of digital tools.


Enablers (Causes/Factors) of the Digital Divide

The following are the major enablers (factors that contribute to or widen) the digital divide:


1. Economic Factors (Income and Affordability)

  • People with low income cannot afford computers, smartphones, or internet subscriptions.
  • The cost of devices and data plans remains high in many developing regions.
  • Businesses in poor areas lack resources to invest in digital infrastructure.
  • Example: A rural farmer in a low-income country cannot afford a smartphone or broadband connection.

2. Geographic Location

  • People living in rural, remote, or mountainous areas often lack access to reliable internet infrastructure.
  • Telecom companies and ISPs tend to invest in urban areas where profit margins are higher.
  • Poor road and power infrastructure in remote areas makes it difficult to deploy digital technology.
  • Example: Villages without electricity cannot use digital devices effectively.

3. Education and Digital Literacy

  • Even when technology is available, people without proper education and digital skills cannot use it effectively.
  • Lack of digital literacy means people cannot navigate the internet, use software, or protect themselves online.
  • Schools in underprivileged areas often lack computers and trained teachers.
  • Example: An elderly person or an illiterate individual may not know how to use a smartphone even if provided one.

4. Age (Generational Divide)

  • Older generations are often less comfortable with digital technology compared to younger people.
  • Young people grow up with technology (digital natives), while older adults may struggle to adapt.
  • This creates a generational gap in technology adoption and usage.
  • Example: Senior citizens may avoid online banking or e-government services due to unfamiliarity.

5. Gender Divide

  • In many societies, women and girls have less access to technology than men due to cultural, social, and economic barriers.
  • Women may have lower literacy rates, less income, and face social restrictions on technology use.
  • Gender-based digital divide is especially prominent in South Asia, Africa, and the Middle East.
  • Example: In some communities, women are discouraged from owning or using mobile phones independently.

6. Infrastructure and Technology Availability

  • Lack of physical infrastructure such as broadband cables, fiber optic networks, mobile towers, and electricity grids creates a divide.
  • Countries with poor telecommunications infrastructure cannot provide reliable internet access.
  • Example: Many African and South Asian countries still rely on 2G networks while developed nations use 5G.

7. Language and Content Barriers

  • The majority of online content is in English, which excludes non-English speakers from fully benefiting from the internet.
  • Lack of content in local languages discourages use of digital platforms.
  • People who cannot read or understand the dominant online language are effectively excluded.
  • Example: A Nepali-speaking farmer may find little useful agricultural content in their native language online.

8. Government Policies and Political Will

  • Countries with poor ICT policies, lack of investment in digital infrastructure, and weak regulatory frameworks lag behind in digital development.
  • Governments that do not prioritize digital inclusion fail to bridge the divide.
  • Conversely, supportive policies (subsidies, e-governance, digital literacy programs) can reduce the divide.
  • Example: Countries with national broadband plans and subsidized internet programs show faster digital inclusion.

9. Social and Cultural Factors

  • Social norms, cultural beliefs, and community attitudes can discourage the adoption of technology.
  • Distrust of technology, privacy concerns, or religious/cultural restrictions may limit usage.
  • Example: Some communities may distrust online financial transactions due to fear of fraud.

10. Disability and Physical Access

  • People with physical or cognitive disabilities may face barriers in accessing and using standard digital devices.
  • Lack of assistive technologies (screen readers, voice control, etc.) widens the divide for differently-abled individuals.

Summary Table

EnablerNature of Divide
Income/AffordabilityEconomic
Geographic LocationSpatial
Education/Digital LiteracyKnowledge
AgeGenerational
GenderSocial
InfrastructureTechnical
Language/ContentCultural
Government PolicyPolitical
Social/Cultural NormsBehavioral
DisabilityPhysical

Conclusion

The digital divide is a multidimensional issue that cannot be solved by simply providing devices or internet access. Addressing it requires a comprehensive approach that includes improving infrastructure, promoting digital literacy, formulating inclusive policies, reducing costs, and ensuring content is available in local languages. Bridging the digital divide is essential for achieving equitable socio-economic development in the modern information society.

3asked 2xavg 5 marks · due (skipped 2079) · Computer Ethics and Computer Ethics Education
Answer

Why should we study computer ethics? [5]

Computer ethics is a branch of applied ethics that examines and evaluates moral problems related to computer technology, its use, and its impact on individuals and society. --- The fast advancement of computer technology continuously cre...

4asked 3xavg 5 marks · Risk
Answer

Compare security with safety. Why is software safety so difficult to attain? Can it be guaranteed? [5]

Aspect Safety Security --------- Definition Ensures the system does not cause harm to people or the environment Ensures the system is protected from unauthorized access, attacks, and misuse Focus Accidental failures and unintended behavi...

5asked 2xavg 8 marks · Causes of Software Failures
Answer

What does the code of ethics reflect? What are the causes of software failure? Explain the factors that justify the risks in software issues.[10]

Code of Ethics, Software Failure, and Risk Justification in Software Engineering

1. What Does the Code of Ethics Reflect?

The Code of Ethics in software engineering reflects the professional responsibilities and moral obligations of software engineers toward their clients, employers, the public, and the profession itself.

The ACM/IEEE Software Engineering Code of Ethics is built around 8 principles. It reflects the following:

PrincipleWhat It Reflects
PublicSoftware engineers shall act consistently with the public interest
Client and EmployerAct in the best interest of client and employer, consistent with public interest
ProductEnsure products meet the highest professional standards
JudgmentMaintain integrity and independence in professional judgment
ManagementManagers shall promote ethical approaches
ProfessionAdvance the integrity and reputation of the profession
ColleaguesBe fair and supportive of colleagues
SelfParticipate in lifelong learning and promote ethical practice

In Summary, the Code of Ethics Reflects:

  • Honesty and integrity in professional work
  • Accountability for the software products developed
  • Respect for privacy, confidentiality, and intellectual property
  • Commitment to quality and public safety
  • Fairness in professional relationships
  • Responsibility to society and the environment

2. Causes of Software Failure

Software failure refers to the inability of a software system to perform its required functions within specified performance requirements. The major causes include:

A. Technical Causes

  1. Poor Requirements Analysis

    • Incomplete, ambiguous, or misunderstood requirements lead to building the wrong product.
  2. Design Flaws

    • Inadequate architectural design, poor module decomposition, or ignoring non-functional requirements.
  3. Coding Errors (Bugs)

    • Logic errors, off-by-one errors, null pointer exceptions, memory leaks, etc.
  4. Inadequate Testing

    • Insufficient test coverage, missing edge cases, no regression testing.
  5. Integration Problems

    • Incompatibility between modules or third-party components.
  6. Complexity

    • Overly complex systems are harder to understand, maintain, and test.

B. Managerial/Process Causes

  1. Poor Project Management

    • Unrealistic schedules, poor resource allocation, lack of planning.
  2. Lack of Documentation

    • Makes maintenance and debugging extremely difficult.
  3. Changing Requirements (Scope Creep)

    • Frequent changes without proper change management destabilize the system.
  4. Inadequate Communication

    • Miscommunication between developers, clients, and stakeholders.

C. Human Causes

  1. Lack of Skilled Personnel

    • Inexperienced developers making poor design and coding decisions.
  2. Negligence and Complacency

    • Skipping reviews, ignoring warnings, or rushing through phases.

D. Environmental Causes

  1. Hardware/Platform Changes

    • Software not updated to match new hardware or OS environments.
  2. Security Vulnerabilities

    • Failure to address security threats leads to exploitation and failure.

3. Factors That Justify the Risks in Software Issues

Risk in software engineering refers to the probability of an undesirable outcome and its potential impact. Certain factors justify (i.e., explain or validate the existence of) risks in software projects.

Factor 1: Complexity of Software Systems

  • Modern software systems are extremely complex with millions of lines of code.
  • High complexity inherently increases the probability of defects and failures.
  • Justification: It is practically impossible to test all execution paths; some risk is unavoidable.

Factor 2: Changing Technology

  • Rapid changes in hardware, operating systems, and platforms introduce compatibility risks.
  • New technologies may not be fully understood or tested.
  • Justification: Adopting new technology always carries uncertainty.

Factor 3: Evolving Requirements

  • User needs and business environments change over time.
  • Requirements that change mid-project introduce instability.
  • Justification: Dynamic environments make it impossible to freeze requirements completely.

Factor 4: Human Factors

  • Software is built by humans who make mistakes.
  • Communication gaps between team members and stakeholders introduce risk.
  • Justification: Human error is an inherent part of any engineering process.

Factor 5: Time and Budget Constraints

  • Tight deadlines force teams to cut corners in testing and review.
  • Insufficient budget leads to under-staffing and poor tooling.
  • Justification: Resource limitations make it impossible to achieve zero-risk development.

Factor 6: Dependency on Third-Party Components

  • Use of external libraries, APIs, and frameworks introduces risks outside the team's control.
  • Justification: Third-party failures or vulnerabilities directly impact the product.

Factor 7: Inadequate Risk Management Processes

  • Organizations that do not formally identify, analyze, and mitigate risks are more exposed.
  • Justification: Without a risk management plan, risks go undetected until they cause failure.

Factor 8: Security Threats

  • Increasing cyber threats mean software is always at risk of being compromised.
  • Justification: The threat landscape evolves faster than most software can be patched.

Summary Table

AspectKey Points
Code of EthicsReflects honesty, accountability, public safety, integrity, and professional responsibility
Causes of Software FailurePoor requirements, design flaws, coding errors, poor management, scope creep, lack of testing
Risk Justifying FactorsComplexity, changing technology, human error, budget constraints, third-party dependencies, security threats

Most repeated questions

Topics asked at least twice, most-asked first.

asked 3xavg 5 marks · 2078, 2076
Answer

What is virtual reality? what are the different types of virtual reality? [5]

Virtual Reality (VR) is a computer-generated, three-dimensional interactive environment that simulates a real or imaginary world, allowing users to immerse themselves in and interact with that environment in a seemingly real or physical ...

asked 3xavg 5 marks · 2079, 2078, 2076
Answer

Compare security with safety. Why is software safety so difficult to attain? Can it be guaranteed? [5]

Aspect Safety Security --------- Definition Ensures the system does not cause harm to people or the environment Ensures the system is protected from unauthorized access, attacks, and misuse Focus Accidental failures and unintended behavi...

asked 2xavg 10 marks · 2078, 2076
Answer

Define the digital divide. Explain different enablers of the digital divide.[10]

Digital Divide: Definition and Enablers


Definition of Digital Divide

The digital divide refers to the gap that exists between individuals, households, businesses, and geographic areas at different socio-economic levels with regard to their opportunities to access information and communication technologies (ICTs) and their use of the Internet for a wide variety of activities.

In simpler terms, it is the inequality between those who have access to digital technology (computers, internet, smartphones, etc.) and those who do not, or who have limited access. This divide can exist between:

  • Developed and developing countries (global divide)
  • Urban and rural populations (geographic divide)
  • Rich and poor individuals (economic divide)
  • Educated and uneducated people (knowledge divide)

The digital divide is not just about access to hardware; it also encompasses the skills, literacy, and meaningful use of digital tools.


Enablers (Causes/Factors) of the Digital Divide

The following are the major enablers (factors that contribute to or widen) the digital divide:


1. Economic Factors (Income and Affordability)

  • People with low income cannot afford computers, smartphones, or internet subscriptions.
  • The cost of devices and data plans remains high in many developing regions.
  • Businesses in poor areas lack resources to invest in digital infrastructure.
  • Example: A rural farmer in a low-income country cannot afford a smartphone or broadband connection.

2. Geographic Location

  • People living in rural, remote, or mountainous areas often lack access to reliable internet infrastructure.
  • Telecom companies and ISPs tend to invest in urban areas where profit margins are higher.
  • Poor road and power infrastructure in remote areas makes it difficult to deploy digital technology.
  • Example: Villages without electricity cannot use digital devices effectively.

3. Education and Digital Literacy

  • Even when technology is available, people without proper education and digital skills cannot use it effectively.
  • Lack of digital literacy means people cannot navigate the internet, use software, or protect themselves online.
  • Schools in underprivileged areas often lack computers and trained teachers.
  • Example: An elderly person or an illiterate individual may not know how to use a smartphone even if provided one.

4. Age (Generational Divide)

  • Older generations are often less comfortable with digital technology compared to younger people.
  • Young people grow up with technology (digital natives), while older adults may struggle to adapt.
  • This creates a generational gap in technology adoption and usage.
  • Example: Senior citizens may avoid online banking or e-government services due to unfamiliarity.

5. Gender Divide

  • In many societies, women and girls have less access to technology than men due to cultural, social, and economic barriers.
  • Women may have lower literacy rates, less income, and face social restrictions on technology use.
  • Gender-based digital divide is especially prominent in South Asia, Africa, and the Middle East.
  • Example: In some communities, women are discouraged from owning or using mobile phones independently.

6. Infrastructure and Technology Availability

  • Lack of physical infrastructure such as broadband cables, fiber optic networks, mobile towers, and electricity grids creates a divide.
  • Countries with poor telecommunications infrastructure cannot provide reliable internet access.
  • Example: Many African and South Asian countries still rely on 2G networks while developed nations use 5G.

7. Language and Content Barriers

  • The majority of online content is in English, which excludes non-English speakers from fully benefiting from the internet.
  • Lack of content in local languages discourages use of digital platforms.
  • People who cannot read or understand the dominant online language are effectively excluded.
  • Example: A Nepali-speaking farmer may find little useful agricultural content in their native language online.

8. Government Policies and Political Will

  • Countries with poor ICT policies, lack of investment in digital infrastructure, and weak regulatory frameworks lag behind in digital development.
  • Governments that do not prioritize digital inclusion fail to bridge the divide.
  • Conversely, supportive policies (subsidies, e-governance, digital literacy programs) can reduce the divide.
  • Example: Countries with national broadband plans and subsidized internet programs show faster digital inclusion.

9. Social and Cultural Factors

  • Social norms, cultural beliefs, and community attitudes can discourage the adoption of technology.
  • Distrust of technology, privacy concerns, or religious/cultural restrictions may limit usage.
  • Example: Some communities may distrust online financial transactions due to fear of fraud.

10. Disability and Physical Access

  • People with physical or cognitive disabilities may face barriers in accessing and using standard digital devices.
  • Lack of assistive technologies (screen readers, voice control, etc.) widens the divide for differently-abled individuals.

Summary Table

EnablerNature of Divide
Income/AffordabilityEconomic
Geographic LocationSpatial
Education/Digital LiteracyKnowledge
AgeGenerational
GenderSocial
InfrastructureTechnical
Language/ContentCultural
Government PolicyPolitical
Social/Cultural NormsBehavioral
DisabilityPhysical

Conclusion

The digital divide is a multidimensional issue that cannot be solved by simply providing devices or internet access. Addressing it requires a comprehensive approach that includes improving infrastructure, promoting digital literacy, formulating inclusive policies, reducing costs, and ensuring content is available in local languages. Bridging the digital divide is essential for achieving equitable socio-economic development in the modern information society.

asked 2xavg 5 marks · 2078, 2076
Answer

Why should we study computer ethics? [5]

Computer ethics is a branch of applied ethics that examines and evaluates moral problems related to computer technology, its use, and its impact on individuals and society. --- The fast advancement of computer technology continuously cre...

asked 2xavg 8 marks · 2079, 2076
Answer

What does the code of ethics reflect? What are the causes of software failure? Explain the factors that justify the risks in software issues.[10]

Code of Ethics, Software Failure, and Risk Justification in Software Engineering

1. What Does the Code of Ethics Reflect?

The Code of Ethics in software engineering reflects the professional responsibilities and moral obligations of software engineers toward their clients, employers, the public, and the profession itself.

The ACM/IEEE Software Engineering Code of Ethics is built around 8 principles. It reflects the following:

PrincipleWhat It Reflects
PublicSoftware engineers shall act consistently with the public interest
Client and EmployerAct in the best interest of client and employer, consistent with public interest
ProductEnsure products meet the highest professional standards
JudgmentMaintain integrity and independence in professional judgment
ManagementManagers shall promote ethical approaches
ProfessionAdvance the integrity and reputation of the profession
ColleaguesBe fair and supportive of colleagues
SelfParticipate in lifelong learning and promote ethical practice

In Summary, the Code of Ethics Reflects:

  • Honesty and integrity in professional work
  • Accountability for the software products developed
  • Respect for privacy, confidentiality, and intellectual property
  • Commitment to quality and public safety
  • Fairness in professional relationships
  • Responsibility to society and the environment

2. Causes of Software Failure

Software failure refers to the inability of a software system to perform its required functions within specified performance requirements. The major causes include:

A. Technical Causes

  1. Poor Requirements Analysis

    • Incomplete, ambiguous, or misunderstood requirements lead to building the wrong product.
  2. Design Flaws

    • Inadequate architectural design, poor module decomposition, or ignoring non-functional requirements.
  3. Coding Errors (Bugs)

    • Logic errors, off-by-one errors, null pointer exceptions, memory leaks, etc.
  4. Inadequate Testing

    • Insufficient test coverage, missing edge cases, no regression testing.
  5. Integration Problems

    • Incompatibility between modules or third-party components.
  6. Complexity

    • Overly complex systems are harder to understand, maintain, and test.

B. Managerial/Process Causes

  1. Poor Project Management

    • Unrealistic schedules, poor resource allocation, lack of planning.
  2. Lack of Documentation

    • Makes maintenance and debugging extremely difficult.
  3. Changing Requirements (Scope Creep)

    • Frequent changes without proper change management destabilize the system.
  4. Inadequate Communication

    • Miscommunication between developers, clients, and stakeholders.

C. Human Causes

  1. Lack of Skilled Personnel

    • Inexperienced developers making poor design and coding decisions.
  2. Negligence and Complacency

    • Skipping reviews, ignoring warnings, or rushing through phases.

D. Environmental Causes

  1. Hardware/Platform Changes

    • Software not updated to match new hardware or OS environments.
  2. Security Vulnerabilities

    • Failure to address security threats leads to exploitation and failure.

3. Factors That Justify the Risks in Software Issues

Risk in software engineering refers to the probability of an undesirable outcome and its potential impact. Certain factors justify (i.e., explain or validate the existence of) risks in software projects.

Factor 1: Complexity of Software Systems

  • Modern software systems are extremely complex with millions of lines of code.
  • High complexity inherently increases the probability of defects and failures.
  • Justification: It is practically impossible to test all execution paths; some risk is unavoidable.

Factor 2: Changing Technology

  • Rapid changes in hardware, operating systems, and platforms introduce compatibility risks.
  • New technologies may not be fully understood or tested.
  • Justification: Adopting new technology always carries uncertainty.

Factor 3: Evolving Requirements

  • User needs and business environments change over time.
  • Requirements that change mid-project introduce instability.
  • Justification: Dynamic environments make it impossible to freeze requirements completely.

Factor 4: Human Factors

  • Software is built by humans who make mistakes.
  • Communication gaps between team members and stakeholders introduce risk.
  • Justification: Human error is an inherent part of any engineering process.

Factor 5: Time and Budget Constraints

  • Tight deadlines force teams to cut corners in testing and review.
  • Insufficient budget leads to under-staffing and poor tooling.
  • Justification: Resource limitations make it impossible to achieve zero-risk development.

Factor 6: Dependency on Third-Party Components

  • Use of external libraries, APIs, and frameworks introduces risks outside the team's control.
  • Justification: Third-party failures or vulnerabilities directly impact the product.

Factor 7: Inadequate Risk Management Processes

  • Organizations that do not formally identify, analyze, and mitigate risks are more exposed.
  • Justification: Without a risk management plan, risks go undetected until they cause failure.

Factor 8: Security Threats

  • Increasing cyber threats mean software is always at risk of being compromised.
  • Justification: The threat landscape evolves faster than most software can be patched.

Summary Table

AspectKey Points
Code of EthicsReflects honesty, accountability, public safety, integrity, and professional responsibility
Causes of Software FailurePoor requirements, design flaws, coding errors, poor management, scope creep, lack of testing
Risk Justifying FactorsComplexity, changing technology, human error, budget constraints, third-party dependencies, security threats
asked 2xavg 8 marks · 2079, 2078
Answer

What is ethical decision-making? Explain the framework for ethical decision-making. [5]

Ethical Decision-Making

Definition

Ethical decision-making is the process of evaluating and choosing among alternatives in a manner that is consistent with ethical principles such as honesty, fairness, responsibility, and respect for others. It involves identifying a situation that raises ethical concerns, considering the possible courses of action, and selecting the option that best aligns with moral values and professional standards.


Framework for Ethical Decision-Making

A structured framework helps individuals and organizations make sound moral choices. The commonly accepted steps are:

1. Identify the Ethical Issue or Problem

  • Recognize that an ethical dilemma exists.
  • Determine who is affected (stakeholders) and what values or rights are at stake.
  • Ask: Is this situation involving harm, fairness, honesty, or rights?

2. Gather Relevant Information

  • Collect all facts related to the situation.
  • Understand the context, applicable laws, organizational policies, and professional codes of conduct.
  • Avoid making decisions based on incomplete or biased information.

3. Identify All Possible Alternatives

  • Brainstorm all available courses of action.
  • Consider both obvious and creative solutions.
  • Do not limit options prematurely.

4. Evaluate Each Alternative Using Ethical Principles

Apply major ethical theories to assess each option:

Ethical TheoryQuestion to Ask
UtilitarianismWhich option produces the greatest good for the greatest number?
Deontology (Duty-based)Which option respects rules, duties, and rights?
Virtue EthicsWhat would a person of good character do?
Justice/FairnessWhich option treats all parties fairly and equally?

5. Make a Decision

  • Select the alternative that best satisfies the ethical criteria.
  • The chosen action should be one you could openly justify to others.
  • Apply the "newspaper test": Would you be comfortable if your decision was reported publicly?

6. Implement the Decision

  • Put the chosen course of action into practice.
  • Communicate the decision clearly and transparently to those affected.

7. Reflect and Evaluate the Outcome

  • After implementation, review the results.
  • Ask: Did the decision achieve the intended ethical outcome?
  • Use lessons learned to improve future decision-making.

Summary Diagram

Identify Issue --> Gather Information --> List Alternatives
       |
       v
Evaluate with Ethical Principles --> Make Decision --> Implement --> Reflect

Importance of Ethical Decision-Making

  • Builds trust and credibility in professional environments.
  • Prevents legal and reputational harm.
  • Promotes a positive organizational culture.
  • Ensures technology and resources are used responsibly (especially relevant in IT/CS fields).
asked 2xavg 5 marks · 2079, 2078
Answer

Most copyright violations are found in developing, usually, poor countries. Why? [5]

Copyright violations (software piracy, media piracy, etc.) are disproportionately high in developing and economically poor countries due to the following key reasons: --- - Licensed software, music, films, and books are priced according ...

asked 2xavg 5 marks · 2079, 2076
Answer

Discuss future of AI and its ethical implications. [5]

The future of Artificial Intelligence holds tremendous potential across multiple domains: - Artificial General Intelligence (AGI): Development of AI systems that can perform any intellectual task that a human can do, moving beyond narrow...

asked 2xavg 5 marks · 2079, 2078
Answer

Explain different health-related issues of using computer technology in brief. [5]

Prolonged and improper use of computer technology can lead to several physical and mental health problems. The major health-related issues are described below: --- Staring at a computer screen for long hours causes eye fatigue, blurred v...

Study every one of these with model answers, flashcards, and MCQs.

Open CSC334 study modes