COURSE : BUSINESS INFORMATION TECHNOLOGY HUMAN COMPUTER INTERACTION ASSIGHNMENT. NAME: KAMAU MARK NDIBUI. REG NO: HDB212-0866/2020. 1. Computer Supported Cooperative Work (CSCW) is a field of research that focuses on how technology can support and improve collaborative work among groups of people. It is interdisciplinary and encompasses aspects of computer science, sociology, psychology, and communication studies. CSCW can be classified based on the scale and scope of collaboration that the technology is designed to support. Groupware is software that supports collaboration among a relatively small group of people, typically within a single organization. Computer Supported Collaborative Learning (CSCL) is a type of groupware specifically designed to support collaborative learning in educational settings. Global Virtual Teams (GVT) are tools used to support collaboration among geographically dispersed teams. Virtual Communities are online platforms where people with similar interests can interact and collaborate. Examples of virtual communities include online forums, social media platforms, and multiplayer games. 2. 1. Communication and coordination: One of the primary challenges of CSCW is ensuring effective communication and coordination among collaborators. This can be particularly difficult when collaborators are geographically dispersed and working across different time zones and cultural backgrounds. Different communication styles and preferences can also pose challenges. 2. Technological infrastructure: Effective CSCW requires a robust technological infrastructure to support communication, document sharing, and collaboration. This infrastructure can be expensive to set up and maintain, particularly for smaller organizations or groups with limited resources. 3. Data security and privacy: CSCW systems often involve the sharing of sensitive information, which can pose security and privacy risks if not properly protected. Collaborators must be able to trust that their data is secure and that privacy concerns are addressed. 4. Interoperability: Many CSCW systems are designed to work with specific hardware or software platforms, which can limit their interoperability with other systems. This can make it difficult for collaborators who are using different technologies to work together effectively. 5. Human factors: CSCW systems must be designed with human factors in mind, including user interface design, usability, and accessibility. Systems that are difficult to use or understand can hinder collaboration and lead to frustration among collaborators. 6. Organizational culture: CSCW can require changes to organizational culture and work processes to be effective. Collaborators must be willing to adopt new technologies and ways of working, which can be challenging for some organizations. 7. Technical support and training: Effective CSCW requires technical support and training to ensure that collaborators are able to use the technology effectively. This can be particularly challenging for larger organizations or those with geographically dispersed teams. 3. Hardware Layer: This layer consists of the physical components of the computer, such as the processor, memory, graphics card, and input/output devices. These components work together to execute instructions, display graphics on the screen, and receive input from the user. Operating System Layer: This layer provides the foundation for the windowing system. It manages the hardware resources, provides a way for software applications to communicate with the hardware, and provides security and other services that are essential for the safe and efficient operation of the computer. Window Manager Layer: This layer is responsible for managing the windows that appear on the screen. It provides a way for users to resize, move, and close windows, and it manages the placement of windows on the screen. The window manager also handles the appearance of windows, including their borders, title bars, and other graphical elements. Desktop Environment Layer: This layer provides a complete graphical user interface that includes a set of applications, icons, menus, and other elements that are designed to make the computer easy to use. The desktop environment may also provide additional features, such as file managers, system tools, and widgets. Application Layer: This layer consists of the software applications that run on the computer. Applications can be designed to perform a wide range of tasks, such as word processing, image editing, web browsing, and more. When an application is launched, it appears in its own window, which is managed by the window manager. Together, these layers work together to deliver a seamless user experience that allows users to interact with their computers using windows, icons, menus, and other graphical elements. 4. A User Interface Management System (UIMS) is a software tool that helps developers create and manage graphical user interfaces (GUIs) for applications. It provides a set of reusable GUI components and tools for designing, implementing, and customizing the user interface. The following are some of the ways UIMS implementations are important: I. Productivity: UIMS reduces the amount of time and effort required to develop a user interface. It provides a set of pre-built user interface components that can be easily customized to meet specific application requirements. This enables developers to focus more on the application logic and functionality. II. Consistency: UIMS ensures consistency across different parts of an application's user interface. It enforces a set of design standards and guidelines, making it easier for users to navigate and interact with the application. III. User Experience: UIMS enables developers to create user interfaces that are more intuitive and user-friendly. It provides a set of tools for designing and testing user interfaces, helping to ensure that the user experience is optimized. IV. Maintenance: UIMS simplifies the maintenance of user interfaces. Changes to the user interface can be made quickly and easily, without affecting the underlying application logic. V. Cross-Platform Support: UIMS can provide cross-platform support, allowing the same user interface to be used on different platforms (e.g., Windows, Mac, Linux, mobile devices). 5. Human-Computer Interaction (HCI) guidelines are a set of principles and best practices that help to ensure that user interfaces are usable, effective, and efficient. Two well-known sets of HCI guidelines are Shneiderman's 8 Golden Rules and Norman's 7 Principles. Let's discuss each of them in more detail: Shneiderman's 8 Golden Rules: I. Strive for consistency: Ensure that the user interface is consistent throughout the application. II. Enable frequent users to use shortcuts: Provide shortcuts and other time-saving features for experienced users. III. Offer informative feedback: Provide users with clear and timely feedback about their actions and the system's status. IV. Design dialogues to yield closure: Ensure that user interactions have a clear beginning, middle, and end. V. Offer simple error handling: Ensure that error messages are clear and concise, and provide users with guidance on how to correct the error. VI. Permit easy reversal of actions: Allow users to undo and redo their actions, and provide a clear path to recovery in case of accidental deletion. VII. Support internal locus of control: Give users control over the system and their interactions with it. VIII. Reduce short-term memory load: Minimize the amount of information that users need to remember by providing clear and concise instructions and labels. Norman's 7 Principles: I. Visibility: Ensure that the system's status and available actions are clearly visible to the user. II. Feedback: Provide users with clear and immediate feedback about their actions and the system's response. III. Constraints: Use constraints to guide user actions and prevent errors. IV. Mapping: Ensure that the relationship between the user's actions and their effects on the system is clear and intuitive. V. Consistency: Ensure that the system's behavior is consistent with user expectations and with other parts of the system. VI. VII. Affordances: Design user interface elements to suggest their function and use. Simplify: Reduce the complexity of the user interface and the user's cognitive load by providing clear and concise instructions and minimizing distractions. 6. Heuristic evaluation is a method of evaluating the usability of a user interface by assessing it against a set of heuristics, or usability principles. The method involves a group of evaluators who inspect the user interface and identify potential usability problems. The results of the evaluation can then be used to improve the user interface design. One widely used set of heuristics is Nielsen's ten heuristic principles, which are as follows: I. Visibility of system status: The system should always keep users informed about what is going on, through appropriate feedback within a reasonable time. II. Match between system and the real world: The system should speak the user's language, with words, phrases and concepts familiar to the user, rather than systemoriented terms. Follow real-world conventions, making information appear in a natural and logical order. III. User control and freedom: Users often choose system functions by mistake and will need a clearly marked "emergency exit" to leave the unwanted state without having to go through an extended dialogue. Support undo and redo. IV. Consistency and standards: Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions. V. Error prevention: Even better than good error messages is a careful design which prevents a problem from occurring in the first place. Either eliminate error-prone conditions or check for them and present users with a confirmation option before they commit to the action. VI. Recognition rather than recall: Minimize the user's memory load by making objects, actions, and options visible. The user should not have to remember information from one part of the dialogue to another. Instructions for use of the system should be visible or easily retrievable whenever appropriate. VII. Flexibility and efficiency of use: Accelerators—unseen by the novice user—may often speed up the interaction for the expert user such that the system can cater to both inexperienced and experienced users. Allow users to tailor frequent actions. VIII. Aesthetic and minimalist design: Dialogues should not contain information which is irrelevant or rarely needed. Every extra unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility. IX. Help users recognize, diagnose, and recover from errors: Error messages should be expressed in plain language (no codes), precisely indicate the problem, and constructively suggest a solution. X. Help and documentation: Even though the system is designed so that the user can easily learn how to use it, a help facility should be provided for users when they need it. Documentation should be easy to search, focused on the user's task, list concrete steps to be carried out, and not be too large.