CSCI 310 MIDTERM STUDY SHEET 2026 ACCURATE SOLUTION COLLECTION, Exams of Computer Vision

CSCI 310 MIDTERM STUDY SHEET 2026 ACCURATE SOLUTION COLLECTION

Typology: Exams

2025/2026

Available from 05/07/2026

Professor_Beatrice
Professor_Beatrice 🇺🇸

5

(1)

49K documents

1 / 41

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CSCI 310 MIDTERM STUDY SHEET 2026
ACCURATE SOLUTION COLLECTION
◉ parallels between the architecture of buildings and software.
Answer: Obvious:
-Satisfaction of customers' needs
-Specialization of labor
-Multiple perspectives of the final product
-Intermediate points where plans and progress are reviewed
Deeper:
-Architecture is different from, but linked with, the
product/structure
-Properties of structures are induced by the design of the
architecture
-The architect has a distinctive role and character
-Architecture has matured over time into a discipline
--Wide range of solutions, techniques, and palettes of different
"materials", "colors", and "sizes"
◉ differences between buildings and software.
Answer: -We know a lot about buildings, much less about software
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29

Partial preview of the text

Download CSCI 310 MIDTERM STUDY SHEET 2026 ACCURATE SOLUTION COLLECTION and more Exams Computer Vision in PDF only on Docsity!

CSCI 310 MIDTERM STUDY SHEET 2026

ACCURATE SOLUTION COLLECTION

◉ parallels between the architecture of buildings and software. Answer: Obvious:

  • Satisfaction of customers' needs
  • Specialization of labor
  • Multiple perspectives of the final product
  • Intermediate points where plans and progress are reviewed Deeper:
  • Architecture is different from, but linked with, the product/structure
  • Properties of structures are induced by the design of the architecture
  • The architect has a distinctive role and character
  • Architecture has matured over time into a discipline --Wide range of solutions, techniques, and palettes of different "materials", "colors", and "sizes" ◉ differences between buildings and software. Answer: - We know a lot about buildings, much less about software
  • The nature of software is different from that of building architecture
  • Software is much more changeable than physical materials
  • The two "construction industries" are very different
  • Software deployment has no counterpart in building architecture
  • Software is a machine; a building is not ◉ WWW in a nutshell. Answer: - A collection of resources, each of which has a unique name known as a uniform resource locator, or "URL".
  • Each resource denotes, informally, some information.
  • URI's can be used to determine the identity of a machine on the Internet, known as an origin server, where the value of the resource may be ascertained.
  • Communication is initiated by clients, known as user agents, who make requests of servers.
  • Web browsers are common instances of user agents.
  • Resources can be manipulated through their representations.
  • HTML is a very common representation language used on the Web.
  • All communication between user agents and origin servers must be performed by a simple, generic protocol (HTTP), which offers the command methods GET, POST, etc.
  • All communication between user agents and origin servers must be fully self-contained. (So-called "stateless interactions")
  • How one defines "principal" will depend on what the stakeholders define as the system goals ◉ other definitions of software architecture. Answer: - Perry and Wolf --Software Architecture = { Elements, Form, Rationale } what how why
  • Shaw and Garlan --Software architecture [is a level of design that] involves ---the description of elements from which systems are built, ---interactions among those elements, ---patterns that guide their composition, and ---constraints on these patterns.
  • Kruchten --Software architecture deals with the design and implementation of the high-level structure of software. --Architecture deals with abstraction, decomposition, composition, style, and aesthetics. ◉ temporal aspect of software architecture. Answer: - Design decisions are and unmade over a system's lifetime
  • At any given point in time, the system has only one architecture
  • A system's architecture will change over time ◉ prescriptive vs descriptive architecture. Answer: - Prescriptive architecture captures design decisions made prior to the system's construction --It is the as-conceived or as-intended architecture
  • Descriptive architecture describes how the system has been built --It is the as-implemented or as-realized architecture ◉ architectural evolution. Answer: - Prescriptive architecture is modified first, ideally
  • In practice, the system's implementation - i.e., the descriptive architecture - is often directly modified
  • Happens because of: --Developer sloppiness --Perception of short deadlines which prevent thinking through and documenting --Lack of documented prescriptive architecture --Need or desire for code optimizations --Inadequate techniques or tool support
  • The deployment view of an architecture can be critical in assessing whether the system will be able to satisfy its requirements: --Possible assessment dimensions --Available memory --Power consumption --Required network bandwidth ◉ elements of software's architecture. Answer: A software system's architecture should be a composition and interplay of different elements:
  • Processing
  • Data, information, or state)
  • Interaction ◉ software component. Answer: Elements that encapsulate processing and data in a system's architecture
  • A software component is an architectural entity that --encapsulates a subset of the system's functionality and/or data --restricts access to that subset via an explicitly defined interface --has explicitly defined dependencies on its required execution context
  • Typically provide application-specific services ◉ software connector. Answer: In complex systems, interaction may become more important and challenging than the functionality of the individual components
  • A software connector is an architectural building block tasked with effecting and regulating interactions among components --usually simple procedure calls or shared data accesses --more sophisticated and complex connectors are possible --typically provide application-independent interaction facilities ◉ examples of software connectors. Answer: Procedure call connectors Shared memory connectors Message passing connectors Streaming connectors Distribution connectors Wrapper/adaptor connectors ◉ architectural configuration.

Answer: "The mental conversion of ... [an] abstract concept into a thing." ◉ deduction. Answer: "The process of drawing a conclusion from a principle already known or assumed; spec. in Logic, inference by reasoning from generals to particulars; opposed to INDUCTION." ◉ induction. Answer: "The process of inferring a general law or principle from the observation of particular instances (opposed to DEDUCTION, q.v.)." ◉ separation of concerns. Answer: - Subdivision of a problem into (hopefully) independent parts.

  • The difficulties arise when the issues are either actually or apparently intertwined.
  • Frequently involves many tradeoffs
  • Total independence of concepts may not be possible. --Key example from software architecture: separation of components (computation) from connectors (interaction) ◉ architectural pattern.

Answer: a set of architectural design decisions that are applicable to a recurring design problem, and parameterized to account for different software development contexts in which that problem appears. --Many patterns are commonly used in practice ◉ state-logic-display. Answer: three-tiered pattern used for --Business applications --Multi-player games --Web-based applications ◉ Model-View-Controller (MVC). Answer: separation between information, presentation, and user interaction

  • When a model object value changes, a notification is sent to the view and to the controller. --Thus, the view can update itself and the controller can modify the view if its logic so requires.
  • When handling input from the user the windowing system sends the user event to the controller. --If a change is required, the controller updates the model object. Model - encapsulation of information
  • Data-flow styles --Batch sequential --Pipe and filter
  • Shared memory --Blackboard --Rule based
  • Interpreter --Interpreter --Mobile code
  • Implicit invocation --Event-based --Publish-subscribe
  • Peer-to-peer ◉ object-oriented style. Answer: - Components are objects --Data and associated operations
  • Connectors are messages and method invocations
  • Style invariants --Objects are responsible for their internal representation integrity --Internal representation is hidden from other objects Advantages:
  • "Infinite malleability" of object internals
  • System decomposition into sets of interacting agents Disadvantages:
  • Objects must know identities of servers
  • Side effects in object method invocations ◉ layered style. Answer: - Hierarchical system organization
  • Each layer exposes an interface (API) to be used by above layers
  • Each layer acts as a: --Server: service provider to layers "above" --Client: service consumer of layer(s) "below"
  • Connectors are protocols of layer interaction
  • Example: operating systems
  • Virtual machine style results from fully opaque layers Advantages:
  • Connectors are pipes --Conduits for data streams
  • Style invariants --Filters are independent (no shared state) --Filter has no knowledge of up- or down-stream filters
  • Examples: UNIX shell signal processing Distributed systems parallel programming
  • Example: ls invoices | grep - e August | sort Advantages:
  • System behavior is a succession of component behaviors
  • Filter addition, replacement, and reuse --Possible to hook any two filters together
  • Certain analyses --Throughput, latency, deadlock
  • Concurrent execution Disadvantages:
  • Batch organization of processing
  • Interactive applications
  • Lowest common denominator on data transmission ◉ implicit invocation style. Answer: - Event announcement instead of method invocation --"Listeners" register interest in and associate methods with events --System invokes all registered methods implicitly
  • Component interfaces are methods and events
  • Two types of connectors --Invocation is either explicit or implicit in response to events
  • Style invariants --"Announcers" are unaware of their events' effects --No assumption about processing in response to events Advantages:
  • Component reuse
  • System evolution --Both at system construction-time & run-time Disadvantages:
  • Counter-intuitive system structure
  • Components: Independent, concurrent event generators and/or consumers
  • Connectors: Event buses (at least one)
  • Data Elements: Events - data sent as a first-class entity over the event bus
  • Topology: Components communicate with the event buses, not directly to each other.
  • Variants: Component communication with the event bus may either be push or pull based.
  • Highly scalable, easy to evolve, effective for highly distributed applications. ◉ peer-to-peer style. Answer: State and behavior are distributed among peers which can act as either clients or servers.
  • Peers: independent components, having their own state and control thread.
  • Connectors: Network protocols, often custom.
  • Data Elements: Network messages
  • Topology: Network (may have redundant connections between peers); can vary arbitrarily and dynamically
  • Supports decentralized computing with flow of control and resources distributed among peers.
  • Highly robust in the face of failure of any given node.
  • Scalable in terms of access to resources and computing power. --But caution on the protocol! ◉ peer-to-peer systems. Answer: File sharing systems based on the BitTorrent protocol Messaging systems such as Jabber Payments systems - Bitcoin Databases - Freenet is a decentralized database Phone systems - Viber Computation systems - SETI@home ◉ architectural elements (5). Answer: Components Connectors Interfaces Configurations Rationale - reasoning behind decisions ◉ characteristics of models.