Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

Map of Computer Science

Methods and Practices in Informatics

Our team:

team

Denisa-Cristina Dinescu,

Theodoros-Darius Buciu,

Alexandru Dragoș,

Șerban-George Pleș,

Alexandru-Ionel Călin,

Ioan Bradea,

Andrei Sîrbu,

Rafael Tot

Algorithms & Data Structures

Algorithms & Data Structures

Main Activity

Theory

At the heart of ADS lies a deep theoretical understanding of algorithms and data structures. ADS theory focuses on comprehending the fundamental principles, mathematical models, and analyzing the efficiency and performance characteristics of these essential elements. Complexity theory, graph theory, optimization, and other mathematical frameworks provide the necessary tools for developing and analyzing algorithms; this enables researchers and practitioners to make informed decisions about algorithmic design and optimization.

Experiment

Experimental analysis plays a crucial role in ADS research,allowing researchers to validate and refine algorithms and data structures through practical implementation. By implementing and testing these solutions on real-world datasets or synthetic scenarios, researchers gain insights into their practical performance and identify areas for improvement. Through experimentation, novel algorithms and data structures can be optimized and validated, ensuring their effectiveness in solving real-world problems. The metrics taken into account besides the algorithm’s correctitude usually are time and space complexities and efficiencies.

Design

Designing efficient algorithms and data structures is a creative endeavor that drives innovation in ADS. Effective design involves devising innovative solutions to computational problems while considering factors such as time complexity, space complexity, and data representation. Designing ADS requires a combination of algorithmic thinking, creativity, and a deep understanding of the problem domain. Successful design can lead to significant advancements in various fields, including artificial intelligence, computer graphics, and network optimization.

Connections to Other Areas

Dependency

ADS relies on various areas within computer science to support its development and application. Discrete mathematics and combinatorial optimization provide the foundational knowledge necessary to model and analyze complex problems in ADS. Additionally, computer architecture and systems play a crucial role in implementing efficient data structures, such as caches and memory hierarchies. Furthermore, ADS forms the backbone of artificial intelligence, enabling efficient representation, search, and learning mechanisms.

Influence

ADS has a far-reaching influence on numerous areas within computer science and beyond. In computational biology, ADS techniques are employed to analyze

and manipulate biological data, such as DNA sequences and protein structures. Computational geometry leverages algorithms and data structures to efficiently solve geometric problems. ADS techniques permeate network design, cryptography, database systems, and various other fields, enhancing their performance and capabilities. ADS is so important that, besides being studied at every Computer Science study program, it also draws a lot of attention in many technical interviews when looking

for a job, with ADS knowledge often being the differentiating factor between two candidates.

Problems

Important problems

ADS research tackles numerous important problems. For example, sorting: the focus of our research papers from the last assignment. This involves arranging elements in a specific order and has been extensively studied. Various sorting algorithms, including quicksort and merge sort, have been developed to efficiently organize large datasets. Graph traversal, another critical problem, serves as the foundation for network analysis, pathfinding, and social network analysis. Algorithms such as breadth-first search and Dijkstra’s algorithm offer efficient solutions to these challenges.

Open Problems

Despite significant advancements, ADS research continues to grapple with open problems and intriguing questions. The P versus NP problem stands as a prime example, exploring the existence of efficient algorithms for solving complex problems. This problem has profound implications in cryptography, optimization, and artificial intelligence. Additionally, open questions surrounding data stream algorithms, quantum algorithms, and parallel algorithms continue to captivate researchers and inspire further exploration.

Important People

Leslie Lamport

Edsger Dijkstra

Barbara Liskov

Programming Languages

Programming Languages

Main Activities

Theoretical research

in programming languages involves the study of formal models, semantics, and type systems. Researchers analyze the underlying principles and mathematical foundations of programming languages to establish soundness, completeness, and correctness. They explore concepts like lambda calculus, type theory, and program verification to advance our understanding of programming language principles and enable the development of more expressive and reliable languages.

Experimentation

in programming languages involves empirical studies and practical investigations to evaluate the performance, usability, and efficiency of programming languages and their features. Researchers conduct experiments to compare different language constructs, compilers, and runtime environments, aiming to uncover insights into their strengths, weaknesses, and trade-offs. By measuring aspects such as execution time, memory usage, and developer productivity, experimentation contributes to evidence-based language design decisions and optimizations.

Language design

involves the creation and evolution of programming languages to meetthe needs of developers, applications, and domains. Designers consider various factors such as readability, expressiveness, ease of use, and maintainability. They

iterate on language syntax, constructs, and libraries, seeking to strike a balance between simplicity and power. The design process often involves community feedback, iterative improvements, and standardization efforts to ensure the language’s usability and adoption.

Connections to Other Areas

Compilers and Interpreters:

Programming languages are intimately linked with compilers and interpreters, which translate high-level code into machine-readable instructions. The design and implementation of compilers and interpreters involve understanding the semantics, syntax, and execution models of programming languages. Optimizations, code generation, and runtime environments are key components in bridging the gap between programming languages and the underlying hardware.

Software Engineering:

Programming languages intersect with software engineering practices and principles. Concepts such as modularity, encapsulation, and abstraction are facilitated by programming languages, enabling the development of maintainable, scalable, and reusable software systems. Additionally, programming languages influence software development methodologies, tools, and frameworks, shaping the entire software engineering lifecycle.

Artificial Intelligence and Machine Learning:

Programming languages are instrumental in the field of artificial intelligence (AI) and machine learning (ML). Specialized languages and libraries, such as Python with its ecosystem of ML frameworks, enable researchers and practitioners to develop and deploy AI/ML models. Programming languages facilitate the implementation of algorithms, data manipulation, and model

training, driving advancements in AI/ML applications.

Problems

Complexity:

Many programming languages have grown in complexity over time, with numerous features, libraries, and syntax rules. This complexity can make it challenging for developers to understand and master a language fully. Moreover, complex languages may introduce opportunities for bugs and errors, making debugging and maintenance more difficult.

Performance:

Balancing performance and expressiveness is a perpetual challenge in programming languages. Some languages prioritize ease of use and developer productivity, which may result in reduced performance. Other languages may prioritize performance but require more intricate optimization techniques and impose stricter constraints on the developer.

Compatibility and Portability:

Programming languages may face issues with compatibility and portability across different platforms, operating systems, and hardware architectures. This can make it difficult to write code that works consistently across various environments and requires additional effort for porting or adapting code to different platforms.

Evolving Needs:

The rapidly evolving nature of technology and the ever-changing requirements of software systems pose challenges for programming languages. Languages need to adapt and incorporate new paradigms, support emerging technologies, and address evolving demands for scalability, concurrency, and distributed computing. Striking a balance between backward compatibility and embracing new features can be a complex task.

Important People

FAQ

Alan Turing

John McCarthy

Grace Hopper

Dennis Ritchie,

Important Venues

Key findings

Journals

Conferences

- ACM Transactions on Programming Languages and Systems (TOPLAS)

- Journal of Functional Programming (JFP)

- IEEE Transactions on Software Engineering (TSE)

- Science of Computer Programming (SCP)

- ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)

- Association for Computing Machinery (ACM) Symposium on Principles of Programming Languages (POPL)

- International Conference on Functional Programming (ICFP)

- European Conference on Object-Oriented Programming (ECOOP)

Architecture

Architecture

Main Activities

Theoretical

research in computer architecture involves developing models, frameworks, and principles to understand and analyze the fundamental concepts underlying computer system design. Researchers explore topics such as instruction set architecture, memory hierarchies, pipelining, and parallelism, aiming to establish formal models and theoretical foundations that guide the design and optimization of computer systems.

Experimentation

in computer architecture involves practical investigations to evaluate and measure the performance, efficiency, and scalability of computer systems. Researchers conduct experiments using benchmarks, simulation tools, and real-world prototypes to analyze the behavior of different architectural designs, algorithms, and optimizations. Through experimentation, insights are gained into the trade-offs, bottlenecks, and potential improvements in computer system performance.

Computer architecture design

focuses on creating innovative and efficient systems by considering various factors such as performance, power consumption, cost, and scalability. Designers strive to develop architectures that leverage technological advancements, such as new processor designs, memory technologies, and interconnects. They employ techniques like performance modeling, simulation, and prototyping to refine architectural choices, optimizing for specific applications or domains.

Connections to Other Areas

Operating Systems:

Computer Architecture and operating systems have a symbiotic relationship. The design and functionality of operating systems are influenced by the underlying architecture. Likewise, architectural features, such as memory

management and I/O handling, impact the efficiency and performance of operating systems.

Computer Networks:

Computer Architecture influences the design and performance of computer networks. Network protocols, routing algorithms, and communication models are shaped by the architectural features of the systems involved. Efficient

network architectures, such as network interface cards and switches, enhance data transfer rates and latency.

Quantum Computing

is an emerging field that relies heavily on specialized hardware architectures and architectural principles to harness the unique properties of quantum systems. Architectural designs for qubits, quantum gates, and error correction play

a critical role in advancing quantum computing technology.

Problems

Performance Scaling

As technology advances, there is a constant demand for increased performance and computational power. However, scaling performance while managing power consumption, heat dissipation, and cost poses a significant challenge. Achieving high performance without compromising energy efficiency is a complex trade-off in architectural design.

Memory

Hierarchy Memory performance and efficiency are critical factors in computer systems. Designing an optimal memory hierarchy that balances capacity, latency, bandwidth, and cost poses challenges, particularly as the gap between processor speed and memory access time widens.

Parallelism and Concurrency

Exploiting parallelism and concurrency in computer systems is essential for improving performance. However, effectively designing and implementing parallel architectures, including instruction-level parallelism, datalevel parallelism, and thread-level parallelism, presents challenges such as synchronization, load balancing, and scalability.

Programmability and Productivity

The complexity of modern architectures poses challenges for programmers to efficiently utilize their capabilities. Designing architectures that are both powerful and easy to program is a significant challenge. Providing programming abstractions, tools, and libraries to simplify the development of parallel and distributed applications is crucial for improving productivity.

Important people

1

John von Neumann

Seymour Cray

3

David Patterson and John L. Hennessy

Gene Amdahl

Important Venues

Journals

- IEEE Transactions on Computers (TC)

- ACM Transactions on Computer Systems (TOCS)

- ACM Transactions on Architecture and Code Optimization (TACO)

- IEEE Computer Architecture Letters (CAL)

Conferences

- International Symposium on Computer Architecture (ISCA)

- ACM/IEEE International Symposium on Microarchitecture (MICRO)

- ACM/IEEE International Conference on Architectural Support for Programming

Languages and Operating Systems (ASPLOS)

- IEEE/ACM International Symposium on Computer Architecture (HPCA)

Operating Systems and Networks

Operating Systems and Networks

Main Activities

Resource Coordination in Distributed Computations:

In operating systems and networks, efficient control mechanisms are implemented to coordinate multiple resources in computations distributed across computer systems connected by local and wide-area networks. The visible objects and permissible operations on them vary at different levels of temporal granularity. For example, at the microsecond

level, it could involve low-level hardware operations, while at the day level, it might include high-level resource management.

Interface Organization and Abstraction:

Interfaces are organized in a way that allows users to interact with abstract versions of resources, shielding them from the underlying physical hardware details. This enables users to focus on the functionality provided by the system rather than the intricacies of the hardware. Abstraction principles and information-hiding techniques are employed to

provide a simplified and user-friendly experience.

Control Strategies for System Operations:

Operating systems employ various control strategies to optimize system performance and resource utilization. This includes effective job scheduling algorithms to allocate resources efficiently, memory management techniques to ensure optimal memory usage, robust communication mechanisms for inter-process communication, secure access to software resources, coordination among concurrent tasks, and measures to enhance system reliability and security.

Distributed Computations and Operating Systems:

Distributed computations involve organizing tasks across multiple computer systems, where network protocols, host locations, bandwidths, and resource naming are abstracted and invisible to users. Distributed operating systems act as program preparation and execution environments, enabling seamless execution of tasks across distributed systems,

making efficient use of available resources.

Connections to Other Areas

Concurrency theory:

Deals with synchronization, determinacy, and avoidance of deadlocks in concurrent systems.

Scheduling theory:

Focuses on optimizing the allocation of resources and scheduling of tasks for efficient system performance.

Program behavior and memory management theory:

Addresses how programs behave and how memory is managed to ensure efficient execution.

Network flow theory:

Studies the flow of data and resources in networks, helping

design efficient network protocols and algorithms.

Performance modeling and analysis:

Involves modeling and analyzing system performance to identify bottlenecks and improve efficiency.

Supporting mathematics such as bin packing, probability, queueing theory, queueing

networks, communication and information theory, temporal logic, and cryptography provide

theoretical foundations for operating systems and network design.

Problems

Resource contention and allocation:

Managing resources effectively to avoid conflict and ensure optimal resource utilization.

Job scheduling:

Designing efficient algorithms to schedule tasks and allocate resources based on priorities and constraints.

Memory management:

Developing techniques to optimize memory usage, minimize fragmentation, and ensure efficient memory allocation and deallocation.

Communication and coordination:

Ensuring reliable communication and coordination among concurrent tasks and processes.

Security and privacy:

Addressing security threats and privacy concerns in networked environments, protecting sensitive data and preventing unauthorized access.

Important People

1

Linus Torvalds

Andrew S. Tanenbaum

Dennis Ritchie and Ken Thompson

Leslie Lamport

Important Venues

Journals and Conferences

- Association for Computing Machinery (ACM) Symposium on Operating Systems

Principles (SOSP): A biennial conference focusing on operating systems research

and development.

- USENIX Annual Technical Conference: A leading conference that covers various

aspects of computer systems, including operating systems and networks.

- International Conference on Distributed Computing Systems (ICDCS): A premier

conference in the field of distributed computing systems, encompassing both theory

and practice.

Software Engineering

Software Engineering

Main Activities

Theory

The study and creation of the underlying ideas, theories, and models that support the field of software engineering is referred to as software engineering theory. It concentrates on formalizing software development procedures, specifications, designs, testing, and maintenance. A basis for the actual implementation of software engineering techniques is provided by theoretical research, which aids in comprehending the underlying ideas.

Experiment

In software engineering, controlled experiments are designed and carried out to assess software development methodologies, processes, and tools. This empirical technique offers useful insights into the efficacy and efficiency of various software engineering practices and aids in verifying or disproving theories.

Design

The process of developing high-level structures and architectures for software systems is included in software engineering design. In order to achieve certain criteria, decisions must be made concerning the software’s general structure, its

components, their interactions, and its interfaces. Software engineering design tasks cover a wide range of topics, such as choosing acceptable algorithms and data structures, finding relevant design patterns, and assuring the system’s modularity, reusability, and maintainability.

Connections to Other Areas

Dependency

Electrical engineering, computer science, and other sciences and disciplines all influence and are influenced by software engineering. Algorithms, data structures, programming languages, and software development techniques are greatly influenced by computer science. Numerous methods and strategies for software engineering are based on research in computer science.

By offering formal methods, models, and techniques for software definition, verification, and validation, mathematics plays a crucial part in software engineering. To make arguments on the correctness and behavior of software systems, theories from discrete mathematics, logic, and formal languages are employed. The dependability and esilience of software architectures are ensured by mathematical models like formal specifications and mathematical proofs.

Influence

Software engineering has a profound influence on various other areas, shaping their practices and approaches. Some of the key areas influenced by software engineering include system architecture, user experience design, and project management.

It’s practices and concepts are strongly incorporated into system architecture. Scalable, dependable, and maintainable systems are designed using software engineering approaches by architects. The system’s general design is influenced by ideas from software engineering, such as component-based architectures, layering, and separation of

responsibilities.

Problems

Software Security:

A constant and important problem in software engineering is ensuring the security of software systems. It is crucial to create secure software that can fend against assaults, safeguard sensitive data, and ensure information’s confidentiality, integrity, and accessibility.

Example of an open issue:

The creation of reliable methods to identify and stop software vulnerabilities is one unsolved issue in software security. For instance, methods to spot and address widespread security flaws like buffer overflows, injection attacks, or weak authentication procedures. Research and development are ongoing in the field of developing efficient and automated approaches for vulnerability identification and prevention.

Software Maintenance:

As software systems change and are updated often, software maintenance presents considerable difficulties. Bug fixes, performance enhancements, and the addition of new features or specifications are all considered maintenance tasks while the system’s general stability and dependability are maintained.

Example of an open issue:

The creation of automated methods and tools to make maintenance easier is one unresolved issue in software maintenance. This comprises software change impact analyses, code reworking, problem isolation, and documentation creation. Automation of maintenance chores can lessen effort needed for maintenance

activities while also lowering expenses and improving system quality.

Important People

1

Fred Brooks

2

Grady Booch

Important Venues

Journals

Conferences

- The esteemed IEEE Transactions on Software Engineering (TSE)

- The ACM Transactions on Software Engineering and Methodology (TOSEM)

- Journal of Software Engineering Research and Development (JSERD)

- International Conference on Software Engineering (ICSE)

- ESEM is the ACM/IEEE International Symposium on Empirical Software Engineering

and Measurement

- International Software Engineering Conference (ASE)

Databases & Information Retrieval

Databases & Information Retrieval

Main Activities

In theory,

researchers develop fundamental concepts, models, and algorithms to support data management and information retrieval. This involves designing data models, such as relational, hierarchical, and network models, and creating query languages like SQL. Theoretical investigations explore indexing techniques, data structures, data integrity, and concurrency control mechanisms to ensure efficient data management.

Experimentation

involves designing and implementing database systems and retrieval algorithms to evaluate their performance. Through experiments, researchers measure query response time, scalability, and efficiency under different workloads. They explore optimization techniques and assess the effectiveness of various indexing schemes and query optimization algorithms.

Designing

databases and information retrieval systems requires creating schemas, defining relationships, and selecting appropriate data structures for efficient data representation and organization. Designers must consider factors such as data integrity, security, and privacy. Additionally, information retrieval systems are designed to facilitate efficient searching and ranking of relevant documents or records.

Connections to Other Areas

Algorithms & Data Structures

Efficient algorithms and data structures from the field of Algorithms & Data Structures are crucial for processing and organizing large volumes of data stored in databases. Indexing structures such as B-trees, hash-based methods, and graph-based structures significantly improve query performance.

Artificial Intelligence

In the field of Artificial Intelligence, Databases & Information Retrieval techniques play a vital role in information extraction, natural language processing, and knowledge representation. AI systems often rely on databases for storing and retrieving structured and unstructured data.

Software Engineering

Software Engineering incorporates database systems as fundamental components of software applications. Understanding how to integrate databases efficiently with software architectures is essential for building robust and scalable applications. Important Problems and Open Problems: Several important problems and open challenges exist within Databases & Information.

Retrieval

Query Optimization

remains a challenging problem, involving the optimization of complex queries that involve multiple tables, joins, and aggregation operations. Developing efficient query optimization algorithms that consider factors such as available indexes, statistics, and data distribution is an ongoing research area.

Big Data Sets

Managing and processing Big Data presents significant challenges. Developing scalable distributed systems, parallel query processing techniques, and data stream processing algorithms are crucial for effectively handling massive datasets.

Improving the effectiveness of Information Retrieval systems is a continuous research area. Enhancing search algorithms, relevance ranking, and understanding user intent are ongoing challenges, particularly in web search, recommendation systems, and personalized search.

Important People

1

Edgar F. Codd

2

Gerard Salton

3

Jennifer Widom

Important Venues

Journals

Conferences

- ACM Transactions on Database Systems (TODS)

- IEEE Transactions on Knowledge and Data Engineering (TKDE)

- Journal of the ACM (JACM)

- ACM SIGMOD Conference: The premier conference on the management of data.

- ACM SIGIR Conference: Focused on research and development in information

retrieval.

- VLDB Conference: An international conference on very large databases

Artificial Intelligence & Robotics

Artificial Intelligence & Robotics

Main Activities

Theory

The creation of the mathematical foundations, models, and algorithms that support intelligent systems is the primary emphasis of theoretical research in robotics and AI. This covers fields like machine learning, where academics investigate the creation and evaluation of algorithms that enable computers to gather knowledge from data and form hypotheses or judgments. Reinforcement learning, which focuses on educating agents to learn through interactions with an environment and get feedback in the form of rewards or penalties, is another field covered by theoretical work.

Experiment

Designing and carrying out experiments in the fields of AI and robotics are necessary to assess how well algorithms and systems function. This comprises gathering data, preparing it, and then utilizing actual or fake data to train models. Researchers then examine the data to comprehend algorithm behavior, spot flaws, and suggest enhancements. In experiments, performance on particular tasks or datasets is compared with that of existing approaches, and metrics like accuracy, efficiency, or resilience are measured.

Design

Designing intelligent systems and robotic apparatus is a key component of AI and robotics. It integrates hardware and software elements with AI algorithms to make perception, decision-making, and action execution possible. Design activities span a variety of disciplines, including robotics and computer vision, where engineers create physical robots that can interact with their surroundings and researchers create algorithms that enable machines to comprehend and interpret visual input. User experience, human-robot interaction, and system integration are additional factors that must be taken into account while designing intelligent systems.

Connections to Other Areas

Dependency

Robotics and AI are reliant on several fields of study. The creation of algorithms and the implementation of systems are built on the principles of computer science. The theoretical foundations, optimization strategies, and data analysis all benefit from the use of mathematics and statistics. grasp the physical characteristics and dynamics of robots requires a grasp of physics. Understanding human cognition and behavior via psychology and neuroscience informs the construction of AI systems and human-interactive robots.

Influence

AI and Robotics have profound influences on numerous fields. In healthcare, AI is applied to tasks like medical image analysis, drug discovery, and personalized medicine. Robotics plays a crucial role in surgical procedures, rehabilitation, and assistive technologies. In transportation, autonomous vehicles leverage AI and

Robotics to navigate and make decisions in complex traffic scenarios. Finance relies on AI for algorithmic trading and risk assessment. Manufacturing industries implement robotic automation to enhance productivity and efficiency

Problems

Decision-Making and Reasoning

Improving the ability of AI systems and robots to think and make decisions is a major challenge. For instance, it is a huge problem to create algorithms that allow autonomous vehicles to handle complicated traffic settings and make safe judgments in real-time. This entails using past information, adjusting to changing situations, and reasoning under ambiguity.

Human-Robot Interaction

Improving human-robot interaction is a current research topic. It entails creating user-friendly and secure interfaces, creating natural language processing algorithms for successful communication, and cultivating trust between people and autonomous systems. Applications in healthcare, industry, and assistive robotics depend on enabling seamless collaboration and cooperation between humans and robots.

Long-Term Autonomy

Making it possible for robots to function autonomously for long stretches of time, learn from their mistakes, and adjust to changing circumstances is a difficult task. This entails solving problems like generalization, decision-making in dynamic and unstructured situations, and continual learning. A current research focus is on creating autonomous robots that can carry out jobs for lengthy periods of time without assistance from humans.

Important People

Geoffrey Hinton

Andrew Ng

Fei-Fei Li

Important Venues

Journals

Conferences

”Journal of Artificial Intelligence Research” (JAIR)

- ”Machine Learning” (ML)

- ”IEEE Transactions on Robotics” (T-RO)

- ”Artificial Intelligence” (AI)

- ”Nature Machine Intelligence”

- ”Conference on Neural Information Processing Systems” (NeurIPS)

- ”International Conference on Machine Learning” (ICML)

- ”International Joint Conference on Artificial Intelligence” (IJCAI)

- ”IEEE International Conference on Robotics and Automation” (ICRA)

- ”Robotics: Science and Systems” (RSS) are a few conferences

Graphics

Graphics

Main Activities

Theory

In general terms, the word “graphic” refers to any visual representation of data and includes a variety of forms including drawings, photographs, line art, graphs, diagrams, numbers, symbols, geometric designs, maps, and engineering drawings.

Experiment

Experiments in the domain of graphics are really important because they showcase how the design, game , movie looks and the graphic designers can spot imperfections and change them. Here are a few examples of graphics experiments that showcase different aspects of graphics technology and techniques:

- Visual Effects (VFX): VFX experiments focus on creating stunning and realistic visual effects for films, television shows, and video games. They often involve simulating natural phenomena like fire, water, smoke, or explosions. Popular VFX software like Houdini or Blender allows artists to experiment with various simulations and create jaw-dropping effects.

- Augmented Reality (AR): AR combines computer-generated graphics with the real world, overlaying digital elements onto the user’s view. Graphics experiments in AR explore interactive and immersive experiences. For instance, AR applications like Pok´emon Go overlay virtual creatures onto the real-world environment using the camera and GPS of mobile devices.

Connections to Other Areas

Dependency

Hardware Dependencies: Graphics Processing Unit (GPU): GPU-s are specialized processors designed to handle complex computations for math and graphics. They are responsible for rendering and displaying images on a computer screen.

Display Devices: Graphics heavily depend on the quality and capabilities of the display devices, such as monitors or projectors Things like resolution, colors, refresh rate, and response time impact the experience you have when watching

something.

Software Dependencies: Software is essential for graphics as well. Graphics libraries and APIs, such as OpenGL, DirectX, Vulkan, and Metal, provide tools and functions to interact with the GPU and perform various graphics operations. These libraries enable developers to create and manipulate graphics objects, apply textures and shaders, and implement advanced rendering techniques.

Data Dependencies: Image and video data are significant for graphics processing. Whether it’s for editing, manipulation, or rendering, graphics operations often rely on image and video data. Different image formats, codecs, and compression techniques impact the quality and efficiency of graphics-related tasks.

Influence

Graphics have a significant influence on various aspects and areas like advertising, marketing, gaming, entertainment, storytelling and many more.They enhance visual communication, facilitate understanding, and contribute to the overall aesthetics and effectiveness of various mediums and applications.For example, in movies or games high-quality graphics are essential for creating visually stunning cinematic experiences and appealing gaming environments. Realistic characters, detailed environments, special effects, and captivating visuals enhance the overall entertainment value and engage audiences.

Problems

Creative Block and Burnout:

Graphic designers have to flex their creative muscles daily, often for various clients across multiple projects. At some point, most designers will hit roadblocks where they struggle to find fresh ideas. Experiencing creative blocks and burnout doesn’t detract from design talent. This is a normal occurrence, especially for creatives working on numerous projects simultaneously.

Balancing Design and Function:

Graphic design is all about balancing the elements of design, the artist’s creative vision, and the client or employer’s needs. Designing too much for aesthetics through intricate visuals or unconventional layouts can take away from aspects of functionality like usability and readability. Personal preferences may also factor in, from both the artist and the client. Overcoming these challenges ultimately requires graphic designers to have a clear understanding

of desired objectives and the willingness to compromise.

Keeping up with Technology:

Between new software and advances in artificial intelligence (AI), the design industry is always evolving. These changes mean that graphic designers have to be ready to stay up-to-date or risk losing their relevance. Being willing to learn and put in the time and effort it takes to develop new graphic design skills is a must.

Important People

Saul Bass

Michael Bierut

Important Venues

Journals and Conferences

- ACM Transactions on Graphics is a journal covering the categories related to Computer Graphics and Computer-Aided Design. It is published by Association for Computing Machinery (ACM).

- The IEEE Transactions on Image Processing is a monthly peer-reviewed scientific journal covering aspects of image processing in the field of signal processing. It was established in 1992 and is published by the IEEE Signal Processing Society.

Human Computer Interaction

Human Computer Interaction

Main Activities

Theory

Human-Computer Interaction (HCI) is an interdisciplinary field that encompasses

the study of how humans interact with computers and technology. It involves the

design, evaluation, and implementation of user-friendly and efficient interfaces to ensure seamless interaction between humans and technology. HCI aims to create systems that are intuitive, accessible, and enjoyable to use.

Importance

HCI plays a crucial role in shaping the technology we use every day. It

focuses on the needs, preferences, and capabilities of users, ensuring that technology adapts to human requirements, rather than the other way around. Well-designed interfaces improve user satisfaction, productivity, and overall user experience. HCI principles can also enhance accessibility, inclusivity, and usability for individuals

Connections to Other Areas

Healthcare:

Designing intuitive interfaces for medical devices and patient information systems.

Education:

Creating interactive and engaging learning environments.

Entertainment:

Developing user-friendly interfaces for gaming and multimedia platforms.

Business:

Designing efficient and user-friendly software interfaces for productivity and

collaboration. Recap the importance of HCI in enhancing the relationship between humans and technology.

Emphasize the significance of user-centred design, usability, and accessibility in HCI.

Highlight the local and global dimensions of HCI research and contributions.

Problems

Important problems

Human-Computer Interaction (HCI) is a complex field that faces several challenges and

problems. One of the primary issues in HCI is the design of interfaces that cater to

diverse user populations. Users have varying needs, abilities, and levels of technological

literacy, making it challenging to create interfaces that are universally accessible and

usable. Additionally, ensuring the seamless integration of new technologies, such as

virtual reality or voice assistants, into existing HCI frameworks presents its own set

of challenges. Furthermore, as technology advances at a rapid pace, HCI professionals

must address the problem of maintaining consistent and intuitive user experiences across

multiple devices and platforms. Balancing the need for innovative and engaging interfaces

with the requirement for usability and efficiency can be a persistent challenge in HCI

design. Lastly, privacy and ethical considerations related to data collection, user tracking,

and the use of personal information in HCI systems remain important problems that need

to be carefully addressed. Overcoming these challenges requires ongoing research, usercentered

design practices, and collaboration among HCI experts, technology developers,

and users themselves.

Important People

Douglas Engelbart

Donald Norman

Ben Schneiderman

Jakob Nielsen

Sherry Turkle

Important Venues

Journals and Conferences

- ACM CHI (Conference on Human Factors in Computing Systems)

- ACM Transactions on Computer-Human Interaction (TOCHI)

- Interacting with Computers (IwC)

- International Journal of Human-Computer Studies (IJHCS)

Computational Science

Computational Science

Main Activities

Simulation and Modeling:

At the core of Computational Science lies simulation and modeling. Scientists develop mathematical models and algorithms to represent and simulate intricate systems, providing insights into phenomena that are difficult or impossible to observe directly. For instance, in computational physics, researchers use simulations to study particle interactions at microscopic levels, unraveling the secrets of materials and fundamental forces. Likewise, computational biologists employ models to simulate biological processes like protein folding or genetic interactions, unraveling disease mechanisms and aiding in drug design.

Data Analysis and Visualization:

In Computational Science, the extraction of valuable insights from extensive and intricate datasets is a fundamental task -this is where data analysis techniques, including statistical analysis, machine learning, and data mining play a crucial role. These techniques are instrumental in identifying patterns, revealing trends, and establishing connections within the datasets, enabling researchers to gain meaningful understanding and make informed decisions based on the data.

Optimization and Uncertainty Quantification:

Computational scientists employ optimization techniques to find optimal solutions to complex problems by minimizing or maximizing objective functions. Optimization algorithms are instrumental in optimizing structures, enhancing process efficiency, and determining optimal parameters in scientific models. For example, in computational engineering, these algorithms help design aerodynamic shapes or allocate resources most efficiently. Additionally, uncertainty quantification techniques are employed to assess and quantify the impact of uncertainties on simulation results. Probabilistic methods account for measurement errors, model uncertainties, and parameter variations, providing scientists with robust decision-making tools.

Connections to Other Areas

Applied Mathematics

forms a solid foundation for Computational Science, borrowing concepts from calculus, linear algebra, numerical analysis, and probability theory. These mathematical techniques are essential in developing numerical methods, optimization algorithms, and statistical analysis techniques crucial for solving scientific problems computationally. In computational fluid dynamics (CFD), for instance, mathematical models and numerical methods are employed to simulate fluid flow and heat transfer in engineering applications.

Domain-Specific Sciences:

Computational Science closely collaborates with various scientific domains, including physics, chemistry, biology, and engineering. By working hand in hand with domain experts, computational scientists apply their algorithmic expertise and data analysis skills to address specific challenges in these fields. Computational modeling and simulation are employed to investigate complex physical processes, analyze molecular interactions, study biological systems, and optimize engineering designs. Computational chemistry, for example, combines algorithms and simulations to predict molecular structures, properties, and reaction pathways, aiding in drug discovery and materials design.

Problems

Multi-Scale Modeling:

One significant challenge in Computational Science is developing accurate multi-scale models capable of capturing phenomena across different spatial and temporal scales. Integrating models at various scales, from the atomic level to macroscopic systems, requires sophisticated algorithms and computational techniques. Multi-scale modeling is vital for understanding climate dynamics, materials behavior, and biological processes. Climate scientists, for instance, aim to model interactions between atmospheric, oceanic, and land processes at different scales to predict longterm climate patterns reliably.

Big Data Analytics:

The rise of big data has presented computational scientists with the challenge of analyzing and extracting insights from large and heterogeneous datasets. Developing scalable algorithms and efficient data analysis techniques is of the utmost importance for processing and interpreting these vast amounts of data. Computational scientists work on developing parallel and distributed computing approaches to handle big data efficiently. Furthermore, the application of machine learning and data mining techniques proves instrumental in uncovering patterns, correlations, and trends within these datasets - thus enabling scientific breakthroughs across diverse fields, including finance, chemistry and physics.

Important People

James Demmel

Anders Ynnerman

Irene Gamba’s

Important Venues

Journals and Conferences

- The International Conference for High-Performance Computing, Networking, Storage, and Analysis (SC)

- The SIAM Conference on Computational Science and Engineering

- The Journal of Computational Physics

Organizational Informatics

Organizational Informatics

Main Activities

Supporting Work Processes and Coordination:

Organizational informatics focuses on designing information systems that effectively support the work processes of organizations and facilitate coordination among individuals involved in those processes. These systems play a vital role in the success of commerce and business in the global marketplace. Understanding human work is essential in the design of these systems, making collaboration between computing professionals and disciplines such as management, marketing, decision sciences, and anthropology crucial.

Theory and Contributions from Computing and Organizational Sciences:

Organizational informatics draws theoretical contributions from various computing fields, including languages, operating systems, networks, databases, artificial intelligence, and human-computer communication. These contributions provide foundational knowledge and tools for designing and implementing effective information systems. Additionally, organizational sciences such as decision sciences, organizational dynamics, and anthropology contribute theories that help understand work processes, decision-making, and organizational behavior.

Connections to Other Areas

Linguistics:

Theories from linguistics, such as speech acts, have been applied in organizational

informatics to understand and map work processes effectively.

Organizational Sciences:

Theoretical contributions from decision sciences and organizational dynamics provide valuable insights into decision-making processes, organizational behavior, and dynamics.

Human Factors and Cognitive Psychology:

Understanding human behavior, cognition, and the factors influencing human interaction within organizations is critical for designing user-centered and effective information systems.

Social Theories from Anthropology:

Social theories are employed to gain a deeper understanding of work processes within social and cultural contexts, helping inform system design and organizational practices.

Problems

Organizational informatics faces various challenges in designing and implementing effective information systems:

- Designing systems that align with and support diverse organizational work processes.

- Ensuring seamless coordination and collaboration among individuals and teams

within organizations.

- Addressing the complexity of organizational dynamics, decision-making processes,

and changing business environments.

- Incorporating human factors and cognitive considerations to enhance user experience

and system usability.

- Managing and analyzing large amounts of organizational data to derive meaningful

insights and support informed decision-making.

Important People

Peter Drucker

Herbert A. Simon

James March

Edgar H. Schein

Important Venues

Conferences

- International Conference on Information Systems (ICIS)

- Academy of Management (AOM) Annual Meeting

- Association for Information Systems (AIS) conferences

Bioinformatics

Bioinformatics

Main Activities

Data

Analysis At the core of bioinformatics lies the analysis of biological data - sophisticated

statistical analysis, machine learning methods, and data mining algorithms are

utilized to extract patterns, correlations, and trends from extensive datasets. Through

the application of these techniques, bioinformaticians can unveil concealed relationships

within genetic sequences, protein structures, and other biological information, paving

the way for groundbreaking discoveries and fresh perspectives.

Computational Modeling

A vital component of bioinformatics, computational modeling

enables the simulation and understanding of biological processes and systems. It

involves the development of mathematical and computational methods to create

models representing gene regulatory networks, protein-protein interactions, and

metabolic pathways. Computational modeling allows researchers to gain insights

into biological mechanisms, make predictions, and explore complex interactions. It

has applications in diverse areas such as drug discovery, personalized medicine, and

systems biology, contributing to advancements in the field.

Connections to Other Areas

Biology:

Bioinformatics is deeply intertwined with biology, as it provides computational tools and methods to analyze biological data. Certain computational techniques are used so that bioinformaticians can analyze DNA sequences, predict protein structures, and study the genetic basis of diseases. This way, bioinformatics has helped biology evolve by allowing researchers to explore and interpret biological processes at a molecular level.

Computer Science

is what allowed these developments in bioinformatics, providing the necessary tools and algorithms for data analysis, pattern recognition, and computational modeling. Techniques from areas such as data mining, machine learning, and algorithm design are often used in order to process and analyze the biological data. This collaboration between computer science and bioinformatics has driven advancements in both fields, opening up new avenues for further potential research.

Problems

Big Data Management

is a significant challenge in bioinformatics due to the exponential growth of biological data. The sheer volume of data requires scalable storage solutions and efficient infrastructure. Data transfer and sharing become complex tasks, requiring secure and streamlined protocols. Integrating and harmonizing heterogeneous data sources pose challenges in terms of standardization and interoperability. Processing and analyzing big data necessitate optimized workflows and novel computational approaches. Privacy and security concerns arise when dealing with sensitive genomic and health-related data. Effectively managing big data in bioinformatics requires robust infrastructure, efficient data transfer protocols, integration methods, optimized workflows, and stringent privacy measures. Addressing these challenges is crucial to leverage the full potential of big data for meaningful insights in bioinformatics.

Integration of Multiscale Data

in bioinformatics is a challenging task due to several factors. Biological systems operate at different scales, generating diverse data types that require compatibility and standardization. Advanced computational methods are necessary to handle large and heterogeneous datasets. Biological systems also exhibit emergent properties that require capturing relationships across scales. Data quality, noise, and missing values must be addressed to ensure accurate analysis. Additionally, the dynamic nature of biological systems introduces further complexity. Successfully integrating multiscale data requires interdisciplinary collaboration, innovative computational approaches, and robust data management strategies.

Important People

Michael Waterman

Eugene Myers

David Haussler

Significant Experiments

Protein Structure Prediction

Genome-Wide Association Studies (GWAS):

Bioinformatics techniques are employed to predict the three-dimensional structures of proteins based on their amino acid sequences.

Methods such as homology modeling, ab initio modeling, and molecular dynamics simulations enable the prediction of protein structures, aiding in understanding their functions, designing drugs, and studying protein interactions.

GWAS is a powerful strategy used to identify genetic variations associated with complex traits or diseases. Bioinformaticians analyze genotype data from large cohorts of individuals

using computational tools and statistical techniques. By applying bioinformatics methods, researchers can perform association testing, identify significant genetic variations, and uncover links between genetic markers and specific traits or diseases.

Learn more about creating dynamic, engaging presentations with Prezi