数据结构 外文翻译 外文文献 英文文献
- 格式:doc
- 大小:67.50 KB
- 文档页数:15
MVC框架中英⽂对照外⽂翻译⽂献中英⽂对照外⽂翻译⽂献(⽂档含英⽂原⽂和中⽂翻译)译⽂:Web 2.0下的Spring MVC框架摘要 - 当要建⽴丰富⽤户体验的WEB应⽤时,有⼤量的WED应⽤框架可以使⽤,却很少有该选择哪⼀种的指导。
WEB 2.0应⽤允许个体管理他们⾃⼰的在线⽹页,并能与其他在线⽤户和服务器共享。
这样分享需要访问控制器来实现。
然⽽,现有的访问控制器解决⽅案不是令⼈很满意。
因为在开放且由⽤户主导的WEB环境下,它满⾜不了⽤户的功能需求。
MVC框架是在所有的WEB开发框架中最受欢迎的。
模型-视图-控制器(MVC)是⼀种软件架构,如今被认为是⼀种体系结构在软件⼯程模式中使⽤。
该模式从⽤户界⾯(输⼊和演⽰)分离出了“领域逻辑”(基于⽤户的应⽤逻辑),它允许独⽴地开发,测试和维护每个分离的部分。
模型-视图-控制器(MVC)模型创建的应⽤分离为不同的层次应⽤,同时在每两者之间建⽴松散的耦合。
关键字 - Spring MVC, 结构, XStudio, SOA, 控制器I.绪论如何确切地定义⼀个⽹站为“WEB 2.0”的呢?关于这有着许多不同见解,使它很难精确地下⼀个确切的定论。
但当我们将所有的WEB开发框架过⼀遍之后它就会变得清晰了。
各种基于WEB开发的架构如下:●Ntier架构(Ntier Architecture)在软件⼯程中,多层架构(常被称为n-tier架构)是⼀种表⽰层,应⽤处理层和数据管理层在逻辑上分开处理的客户端-服务器架构。
例如,⼀个应⽤在⽤户与数据库之间使⽤中间件提供数据请求服务就⽤到了多层体系结构。
最为⼴泛应⽤的多层体系结构是三层架构。
N-tier 应⽤架构为开发者提供了⽤来创建了⼀个灵活且可复⽤的模型。
通过打破应⽤层次,开发者只需修改或添加⼀个特定的层,⽽不是要去重写⼀遍整个应⽤。
它需要有⼀个表⽰层,⼀个业务层或者数据访问层和⼀个数据层。
层(layer)和层(tier)之间的概念常常是可以互换的。
毕业设计(论文)外文文献翻译文献、资料题目:B/S结构文献、资料来源:文献、资料发表(出版)日期:院(部):专业:班级:姓名:学号:指导教师:翻译日期: 2017.02.14附件1:外文资料翻译译文B/S结构B/S结构即Browser/Server(浏览器/服务器)结构,是伴随着互联网技术出现的一种对C/S结构的改变或者说是改进。
在这种结构中,用户界面通过WWW 来达到在前端充分实现部分逻辑的目的,但最主要的逻辑在服务器中实现,从而形成一个所谓的三层结构。
B/S结构主要被用于成熟的WWW技术,与多种浏览器脚本语言(VBScript, JavaScript)以及ActiveX技术相结合。
为了实现强大的功能和开发成本的节约,用一个标准的网页浏览器来与复杂的专用软件相结合,是一种全新的软件架构技术。
在今天的软件应用中,Windows98和Windows2000操作系统在浏览器技术上植入B/S结构已成为优先的架构。
很明显,B/S结构的应用相对于传统的C/S结构的应用程序会有巨大进步。
B/S结构使用星形配置或使用互联网虚拟专网(VPN)来建立内部的通讯系统网络。
前者具有安全、快速和准确的特性。
后者则是投入的节约,与利益相关联。
以公司规模和地理位置分布为前提,利用互联网接入,通过内部防火墙至整个网络。
C/S结构和B/S结构的区别:客户/服务器结构是建立在局域网的基础上的。
浏览器/服务器结构是建立在广域网基础上的。
不同的计算机硬件环境:C/S结构一般建立在专用网络上,在小范围的网络环境中,在经由的局域网服务器之间提供连接和数据交换的专业化服务。
B/S结构建立在广域网以上,不需要在电话网络和租用设备中安装专门的网络硬件环境。
其信息自主化管理,C/S结构比一般的操作系统和浏览器适用范围更广,只要能联网就行。
不同的安全性要求:C/S结构相对固定的一般用户团体,其信息安全控制能力是强大的。
高度机密的信息系统一般采用C/S结构比较合适,因为通过发布,公开了B/S结构的信息。
数据结构英语作文加翻译Title: The Importance of Data Structures in Computer Science。
Data structures play a crucial role in the field of computer science. They are fundamental concepts that enable efficient storage, retrieval, and manipulation of data in computer programs. In this essay, we will explore the significance of data structures, their types, and their applications in various domains.Firstly, let us delve into the importance of data structures. In computer science, data is the foundation of every software application. However, raw data alone is not sufficient; it needs to be organized in a structured manner to be processed efficiently. Here comes the role of data structures. They provide a way to organize and store datain such a way that it can be easily accessed and manipulated. By choosing appropriate data structures, programmers can optimize the performance of theiralgorithms, leading to faster execution times and more efficient resource utilization.There are several types of data structures, each with its unique characteristics and use cases. One of the most basic data structures is the array, which stores elements of the same type in contiguous memory locations. Arrays are widely used due to their simplicity and constant-time access to elements. Another commonly used data structure is the linked list, which consists of nodes where each node contains a data field and a reference (or pointer) to the next node in the sequence. Linked lists are efficient for insertion and deletion operations but may have slower access times compared to arrays.Apart from arrays and linked lists, there are more complex data structures such as stacks, queues, trees, and graphs. Stacks follow the Last-In-First-Out (LIFO)principle and are often used in algorithms involving function calls, expression evaluation, and backtracking. Queues, on the other hand, adhere to the First-In-First-Out (FIFO) principle and are commonly used in scenarios liketask scheduling, job processing, and breadth-first search algorithms. Trees are hierarchical data structures consisting of nodes connected by edges, with a root node at the top and leaf nodes at the bottom. They are utilized in applications like hierarchical data storage, binary search trees, and decision trees. Graphs are collections of nodes (vertices) and edges connecting these nodes, and they find applications in various fields such as social networks, routing algorithms, and network flow optimization.Now, let's discuss the applications of data structures across different domains. In software development, data structures are extensively used in designing databases, implementing algorithms, and building user interfaces. For example, databases rely on data structures like B-trees and hash tables for efficient storage and retrieval of information. In algorithm design, efficient data structures are crucial for optimizing time and space complexity. Many popular algorithms such as sorting, searching, and graph traversal algorithms heavily rely on data structures for their implementation. Moreover, in user interface development, data structures like trees and graphs are usedto represent the hierarchical structure of UI components and their relationships.In addition to software development, data structures find applications in fields like artificial intelligence, bioinformatics, and computational biology. In artificial intelligence, data structures are used to represent knowledge, make decisions, and solve complex problems. For instance, knowledge graphs are used to represent relationships between entities in a knowledge base, while decision trees are employed in decision-making processes. In bioinformatics and computational biology, data structures are used to store and analyze biological data such as DNA sequences, protein structures, and metabolic pathways. Efficient data structures and algorithms are essential for tasks like sequence alignment, genome assembly, and protein folding prediction.In conclusion, data structures are the building blocks of computer science. They enable efficient storage, retrieval, and manipulation of data in computer programs, leading to faster execution times and more efficientresource utilization. With various types of data structures available and their applications spanning across different domains, it is evident that a solid understanding of data structures is essential for every computer scientist and software developer. By mastering data structures and their applications, programmers can write more efficient and scalable software solutions, thereby advancing the field of computer science as a whole.(翻译)。
中英文对照外文翻译Database Management SystemsA database (sometimes spelled data base) is also called an electronic database , referring to any collection of data, or information, that is specially organized for rapid search and retrieval by a computer. Databases are structured to facilitate the storage, retrieval , modification, and deletion of data in conjunction with various data-processing operations .Databases can be stored on magnetic disk or tape, optical disk, or some other secondary storage device.A database consists of a file or a set of files. The information in these files may be broken down into records, each of which consists of one or more fields. Fields are the basic units of data storage , and each field typically contains information pertaining to one aspect or attribute of the entity described by the database . Using keywords and various sorting commands, users can rapidly search , rearrange, group, and select the fields in many records to retrieve or create reports on particular aggregate of data.Complex data relationships and linkages may be found in all but the simplest databases .The system software package that handles the difficult tasks associated with creating ,accessing, and maintaining database records is called a database management system(DBMS).The programs in a DBMS package establish an interface between the database itself and the users of the database.. (These users may be applications programmers, managers and others with information needs, and various OS programs.)A DBMS can organize, process, and present selected data elements form the database. This capability enables decision makers to search, probe, and query database contents in order to extract answers to nonrecurring and unplanned questions that aren’t available in regular reports. These questions might initially be vague and/or poorly defined ,but people can “browse” through the database until they have the needed information. In short, the DBMS will “manage” the stored data items and assemble the needed items from the common database in response to the queries of those who aren’t programmers.A database management system (DBMS) is composed of three major parts:(1)a storage subsystemthat stores and retrieves data in files;(2) a modeling and manipulation subsystem that provides the means with which to organize the data and to add , delete, maintain, and update the data;(3)and an interface between the DBMS and its users. Several major trends are emerging that enhance the value and usefulness of database management systems;Managers: who require more up-to-data information to make effective decisionCustomers: who demand increasingly sophisticated information services and more current information about the status of their orders, invoices, and accounts.Users: who find that they can develop custom applications with database systems in a fraction of the time it takes to use traditional programming languages.Organizations : that discover information has a strategic value; they utilize their database systems to gain an edge over their competitors.The Database ModelA data model describes a way to structure and manipulate the data in a database. The structural part of the model specifies how data should be represented(such as tree, tables, and so on ).The manipulative part of the model specifies the operation with which to add, delete, display, maintain, print, search, select, sort and update the data.Hierarchical ModelThe first database management systems used a hierarchical model-that is-they arranged records into a tree structure. Some records are root records and all others have unique parent records. The structure of the tree is designed to reflect the order in which the data will be used that is ,the record at the root of a tree will be accessed first, then records one level below the root ,and so on.The hierarchical model was developed because hierarchical relationships are commonly found in business applications. As you have known, an organization char often describes a hierarchical relationship: top management is at the highest level, middle management at lower levels, and operational employees at the lowest levels. Note that within a strict hierarchy, each level of management may have many employees or levels of employees beneath it, but each employee has only one manager. Hierarchical data are characterized by this one-to-many relationship among data.In the hierarchical approach, each relationship must be explicitly defined when the database is created. Each record in a hierarchical database can contain only one key field and only one relationship is allowed between any two fields. This can create a problem because data do not always conform to such a strict hierarchy.Relational ModelA major breakthrough in database research occurred in 1970 when E. F. Codd proposed a fundamentally different approach to database management called relational model ,which uses a table asits data structure.The relational database is the most widely used database structure. Data is organized into related tables. Each table is made up of rows called and columns called fields. Each record contains fields of data about some specific item. For example, in a table containing information on employees, a record would contain fields of data such as a person’s last name ,first name ,and street address.Structured query language(SQL)is a query language for manipulating data in a relational database .It is nonprocedural or declarative, in which the user need only specify an English-like description that specifies the operation and the described record or combination of records. A query optimizer translates the description into a procedure to perform the database manipulation.Network ModelThe network model creates relationships among data through a linked-list structure in which subordinate records can be linked to more than one parent record. This approach combines records with links, which are called pointers. The pointers are addresses that indicate the location of a record. With the network approach, a subordinate record can be linked to a key record and at the same time itself be a key record linked to other sets of subordinate records. The network mode historically has had a performance advantage over other database models. Today , such performance characteristics are only important in high-volume ,high-speed transaction processing such as automatic teller machine networks or airline reservation system.Both hierarchical and network databases are application specific. If a new application is developed ,maintaining the consistency of databases in different applications can be very difficult. For example, suppose a new pension application is developed .The data are the same, but a new database must be created.Object ModelThe newest approach to database management uses an object model , in which records are represented by entities called objects that can both store data and provide methods or procedures to perform specific tasks.The query language used for the object model is the same object-oriented programming language used to develop the database application .This can create problems because there is no simple , uniform query language such as SQL . The object model is relatively new, and only a few examples of object-oriented database exist. It has attracted attention because developers who choose an object-oriented programming language want a database based on an object-oriented model. Distributed DatabaseSimilarly , a distributed database is one in which different parts of the database reside on physically separated computers . One goal of distributed databases is the access of informationwithout regard to where the data might be stored. Keeping in mind that once the users and their data are separated , the communication and networking concepts come into play .Distributed databases require software that resides partially in the larger computer. This software bridges the gap between personal and large computers and resolves the problems of incompatible data formats. Ideally, it would make the mainframe databases appear to be large libraries of information, with most of the processing accomplished on the personal computer.A drawback to some distributed systems is that they are often based on what is called a mainframe-entire model , in which the larger host computer is seen as the master and the terminal or personal computer is seen as a slave. There are some advantages to this approach . With databases under centralized control , many of the problems of data integrity that we mentioned earlier are solved . But today’s personal computers, departmental computers, and distributed processing require computers and their applications to communicate with each other on a more equal or peer-to-peer basis. In a database, the client/server model provides the framework for distributing databases.One way to take advantage of many connected computers running database applications is to distribute the application into cooperating parts that are independent of one anther. A client is an end user or computer program that requests resources across a network. A server is a computer running software that fulfills those requests across a network . When the resources are data in a database ,the client/server model provides the framework for distributing database.A file serve is software that provides access to files across a network. A dedicated file server is a single computer dedicated to being a file server. This is useful ,for example ,if the files are large and require fast access .In such cases, a minicomputer or mainframe would be used as a file server. A distributed file server spreads the files around on individual computers instead of placing them on one dedicated computer.Advantages of the latter server include the ability to store and retrieve files on other computers and the elimination of duplicate files on each computer. A major disadvantage , however, is that individual read/write requests are being moved across the network and problems can arise when updating files. Suppose a user requests a record from a file and changes it while another user requests the same record and changes it too. The solution to this problems called record locking, which means that the first request makes others requests wait until the first request is satisfied . Other users may be able to read the record, but they will not be able to change it .A database server is software that services requests to a database across a network. For example, suppose a user types in a query for data on his or her personal computer . If the application is designed with the client/server model in mind ,the query language part on the personal computer simple sends the query across the network to the database server and requests to be notified when the data are found.Examples of distributed database systems can be found in the engineering world. Sun’s Network Filing System(NFS),for example, is used in computer-aided engineering applications to distribute data among the hard disks in a network of Sun workstation.Distributing databases is an evolutionary step because it is logical that data should exist at the location where they are being used . Departmental computers within a large corporation ,for example, should have data reside locally , yet those data should be accessible by authorized corporate management when they want to consolidate departmental data . DBMS software will protect the security and integrity of the database , and the distributed database will appear to its users as no different from the non-distributed database .In this information age, the data server has become the heart of a company. This one piece of software controls the rhythm of most organizations and is used to pump information lifeblood through the arteries of the network. Because of the critical nature of this application, the data server is also the one of the most popular targets for hackers. If a hacker owns this application, he can cause the company's "heart" to suffer a fatal arrest.Ironically, although most users are now aware of hackers, they still do not realize how susceptible their database servers are to hack attacks. Thus, this article presents a description of the primary methods of attacking database servers (also known as SQL servers) and shows you how to protect yourself from these attacks.You should note this information is not new. Many technical white papers go into great detail about how to perform SQL attacks, and numerous vulnerabilities have been posted to security lists that describe exactly how certain database applications can be exploited. This article was written for the curious non-SQL experts who do not care to know the details, and as a review to those who do use SQL regularly.What Is a SQL Server?A database application is a program that provides clients with access to data. There are many variations of this type of application, ranging from the expensive enterprise-level Microsoft SQL Server to the free and open source mySQL. Regardless of the flavor, most database server applications have several things in common.First, database applications use the same general programming language known as SQL, or Structured Query Language. This language, also known as a fourth-level language due to its simplistic syntax, is at the core of how a client communicates its requests to the server. Using SQL in its simplest form, a programmer can select, add, update, and delete information in a database. However, SQL can also be used to create and design entire databases, perform various functions on the returned information, and even execute other programs.To illustrate how SQL can be used, the following is an example of a simple standard SQL query and a more powerful SQL query:Simple: "Select * from dbFurniture.tblChair"This returns all information in the table tblChair from the database dbFurniture.Complex: "EXEC master..xp_cmdshell 'dir c:\'"This short SQL command returns to the client the list of files and folders under the c:\ directory of the SQL server. Note that this example uses an extended stored procedure that is exclusive to MS SQL Server.The second function that database server applications share is that they all require some form of authenticated connection between client and host. Although the SQL language is fairly easy to use, at least in its basic form, any client that wants to perform queries must first provide some form of credentials that will authorize the client; the client also must define the format of the request and response.This connection is defined by several attributes, depending on the relative location of the client and what operating systems are in use. We could spend a whole article discussing various technologies such as DSN connections, DSN-less connections, RDO, ADO, and more, but these subjects are outside the scope of this article. If you want to learn more about them, a little Google'ing will provide you with more than enough information. However, the following is a list of the more common items included in a connection request.Database sourceRequest typeDatabaseUser IDPasswordBefore any connection can be made, the client must define what type of database server it is connecting to. This is handled by a software component that provides the client with the instructions needed to create the request in the correct format. In addition to the type of database, the request type can be used to further define how the client's request will be handled by the server. Next comes the database name and finally the authentication information.All the connection information is important, but by far the weakest link is the authentication information—or lack thereof. In a properly managed server, each database has its own users with specifically designated permissions that control what type of activity they can perform. For example, a user account would be set up as read only for applications that need to only access information. Another account should be used for inserts or updates, and maybe even a third account would be used for deletes.This type of account control ensures that any compromised account is limited in functionality. Unfortunately, many database programs are set up with null or easy passwords, which leads to successful hack attacks.译文数据库管理系统介绍数据库(database,有时拼作data base)又称为电子数据库,是专门组织起来的一组数据或信息,其目的是为了便于计算机快速查询及检索。
Database Systems1. Fundamental Concepts of DatabaseDatabase and database technology are having a major impact on the growing use of computers. It is fair to say that database will play a critical role in almost all areas where computers are used, including business, engineering, medicine, law, education, and library science, to name a few. The word "database" is in such common use that we must begin by defining what a database is. Our initial definition is quit general.A database is a collection of related data. By data, we mean known facts that can be recorded and that have implicit meaning. For example, consider the names, telephone numbers, and addresses of all the people you know. Y ou may have recorded this data in an indexed address book, or you may have stored it on a diskette using a personal computer and software such as DBASE III or Lotus 1-2-3. This is a collection of related data with an implic it meaning and hence is a database.The above definition of database is quite general; for example, we may consider the collection of words that make up thispage of text to be related data and hence a database. However, the common use of the term database is usually more restricted.A database has the following implicit properties:.A database is a logically coherent collection of data with some inherent meaning. A random assortment of data cannot bereferred to as a database..A database is designed, built, and populated with data for a specific purpose. It has an intended group of users and somepreconceived applications in which these users are interested..A database represents some aspect of the real world, sometimes called the mini world. Changes to the mini world are reflected in the database.In other words, a database has some source from which data are derived, some degree of interaction with events in the real world, and an audience that is actively interested in the contents of the database.A database can be of any size and of varying complexity. For example, the list of names and addresses referred to earlier may have only a couple of hundred records in it, each with asimple structure. On the other hand, the card catalog of a large library may contain half a million cards stored under different categories-by primary author’s last name, by subject, by book title, and the like-with each category organized in alphabetic order. A database of even greater size and complexity may be that maintained by the Internal Revenue Service to keep track of the tax forms filed by taxpayers of the United States. If we assume that there are 100million taxpayers and each taxpayer files an average of five forms with approximately 200 characters of information per form, we would get a database of 100*(106)*200*5 characters(bytes) of information. Assuming the IRS keeps the past three returns for each taxpayer in addition to the current return, we would get a database of 4*(1011) bytes. This huge amount of information must somehow be organized and managed so that users can search for, retrieve, and update the data as needed.A database may be generated and maintained manually or by machine. Of course, in this we are mainly interested in computerized database. The library card catalog is an example of a database that may be manually created and maintained. A computerized database may be created and maintained either by a group of application programs written specifically for that task or by a database management system.A data base management system (DBMS) is a collection of programs that enables users to create and maintain a database. The DBMS is hence a general-purpose software system that facilitates the processes of defining, constructing, and manipulating databases for various applications. Defining a database involves specifying the types of data to be stored in the database, along with a detailed description of each type of data. Constructing the database is the process of storing the data itself on some storage medium that is controlled by the DBMS. Manipulating a database includes such functions as querying the database to retrieve specific data, updating the database to reflect changes in the mini world, and generating reports from the data.Note that it is not necessary to use general-purpose DBMS software for implementing a computerized database. We could write our own set of programs to create and maintain the database, in effect creating our own special-purpose DBMS software. In either case-whether we use a general-purpose DBMS or not-we usually have a considerable amount of software to manipulate the database in addition to the database itself. The database and software are together called a database system.2. Data ModelsOne of the fundamental characteristics of the database approach is that it provides some level of data abstraction by hiding details of data storage that are not needed by most database users. A data model is the main tool for providing this abstraction. A data is a set of concepts that can beused to describe the structure of a database. By structure of a database, we mean the data types, relationships, and constraints that should hold on the data. Most data models also include a set of operations for specifying retrievals and updates on the database.Categories of Data ModelsMany data models have been proposed. We can categorize data models based on the types of concepts they provide to describe the database structure. High-level or conceptual data models provide concepts that are close to the way many users perceive data, whereas low-level or physical data models provide concepts that describe the details of how data is stored in the computer. Concepts provided by low-level data models are generally meant for computer specialists, not for typical end users. Between these two extremes is a class of implementation data models, which provide concepts that may be understood by end users but that are not too far removed from the way data is organized within the computer. Implementation data models hide some details of data storage but can be implemented on a computer system in a direct way.High-level data models use concepts such as entities, attributes, and relationships. An entity is an object that is represented in the database. An attribute is a property that describes some aspect of an object. Relationships among objects are easily represented in high-level data models, which are sometimes called object-based models because they mainly describe objects and their interrelationships.Implementation data models are the ones used most frequently in current commerc ial DBMSs and include the three most widely used data models-relational, network, and hierarchical. They represent data using record structures and hence are sometimes called record-based data modes.Physical data models describe how data is stored in the computer by representing information such as record formats, record orderings, and access paths. An access path is a structure that makes the search for particular database records much faster.3. Classification of Database Management SystemsThe main criterion used to classify DBMSs is the data model on which the DBMS is based. The data models used most often in current commercial DBMSs are the relational, network, and hierarchical models. Some recent DBMSs are based on conceptual or object-oriented models. We will categorize DBMSs as relational, hierarchical, and others.Another criterion used to classify DBMSs is the number of users supported by the DBMS. Single-user systems support only one user at a time and are mostly used with personal computer. Multiuser systems include the majority of DBMSs and support many users concurrently.A third criterion is the number of sites over which the database is distributed. Most DBMSs are centralized, meaning that their data is stored at a single computer site. A centralized DBMS can support multiple users, but the DBMS and database themselves reside totally at a single computer site. A distributed DBMS (DDBMS) can have the actual database and DBMS software distributed over many sites connected by a computer network. Homogeneous DDBMSs use the same DBMS software at multiple sites. A recent trend is to develop software to access several autonomous preexisting database stored under heterogeneous DBMSs. This leads to a federated DBMS (or multidatabase system),, where the participating DBMSs are loosely coupled and have a degree of local autonomy.We can also classify a DBMS on the basis of the types of access paty options available for storing files. One well-known family of DBMSs is based on inverted file structures. Finally, a DBMS can be general purpose of special purpose. When performance is a prime consideration, a special-purpose DBMS can be designed and built for a specific application and cannot be used for other applications, Many airline reservations and telephone directory systems are special-purpose DBMSs.Let us briefly discuss the main criterion for classifying DBMSs: the data mode. The relational data model represents a database as a collection of tables, which look like files. Mos t relational databases have high-level query languages and support a limited form of user views.The network model represents data as record types and also represents a limited type of 1:N relationship, called a set type. The network model, also known as the CODASYL DBTG model, has an associated record-at-a-time language that must be embedded in a host programming language.The hierarchical model represents data as hierarchical tree structures. Each hierarchy represents a number of related records. There is no standard language for the hierarchical model, although most hierarchical DBMSs have record-at-a-time languages.4. Client-Server ArchitectureMany varieties of modern software use a client-server architecture, in which requests by one process (the client) are sent to another process (the server) for execution. Database systems are no exception. In the simplest client/server architecture, the entire DBMS is a server, except for the query interfaces that interact with the user and send queries or other commands across to the server. For example, relational systems generally use the SQL language for representing requests from the client to the server. The database server then sends the answer, in the form of a table or relation, back to the client. The relationship between client and server can get more work in theclient, since the server will e a bottleneck if there are many simultaneous database users.。
云计算大数据外文翻译文献(文档含英文原文和中文翻译)原文:Meet HadoopIn pioneer days they used oxen for heavy pulling, and when one ox couldn’t budge a log, they didn’t try to grow a larger ox. We shouldn’t be trying for bigger computers, but for more systems of computers.—Grace Hopper Data!We live in the data age. It’s not easy to measure the total volume of data stored electronically, but an IDC estimate put the size of the “digital universe” at 0.18 zettabytes in2006, and is forecasting a tenfold growth by 2011 to 1.8 zettabytes. A zettabyte is 1021 bytes, or equivalently one thousand exabytes, one million petabytes, or one billion terabytes. That’s roughly the same order of magnitude as one disk drive for every person in the world.This flood of data is coming from many sources. Consider the following:• The New York Stock Exchange generates about one terabyte of new trade data perday.• Facebook hosts approximately 10 billion photos, taking up one petabyte of storage.• , the genealogy site, stores around 2.5 petabytes of data.• The Internet Archive stores around 2 petabytes of data, and is growing at a rate of20 terabytes per month.• The Large Hadron Collider near Geneva, Switzerland, will produce about 15 petabytes of data per year.So there’s a lot of data out there. But you are probably wondering how it affects you.Most of the data is locked up in the largest web properties (like search engines), orscientific or financial institutions, isn’t it? Does the advent of “Big Data,” as it is being called, affect smaller organizations or individuals?I argue that it does. Take photos, for example. My wife’s grandfather was an avid photographer, and took photographs throughout his adult life. His entire corpus of medium format, slide, and 35mm film, when scanned in at high-resolution, occupies around 10 gigabytes. Compare this to the digital photos that my family took last year,which take up about 5 gigabytes of space. My family is producing photographic data at 35 times the rate my wife’s grandfather’s did, and the rate is increasing every year as it becomes easier to take more and more photos.More generally, the digital streams that individuals are producing are growing apace. Microsoft Research’s MyLifeBits project gives a glimpse of archiving of personal in formation that may become commonplace in the near future. MyLifeBits was an experiment where an individual’s interactions—phone calls, emails, documents were captured electronically and stored for later access. The data gathered included a photo taken every minute, which resulted in an overall data volume of one gigabyte a month. When storage costs come down enough to make it feasible to store continuous audio and video, the data volume for a future MyLifeBits service will be many times that.The trend is f or every individual’s data footprint to grow, but perhaps more importantly the amount of data generated by machines will be even greater than that generated by people. Machine logs, RFID readers, sensor networks, vehicle GPS traces, retail transactions—all of these contribute to the growing mountain of data.The volume of data being made publicly available increases every year too. Organizations no longer have to merely manage their own data: success in the future will be dictated to a large extent by their ability to extract value from other organizations’ data.Initiatives such as Public Data Sets on Amazon Web Services, , and exist to foster the “information commons,” where data can be freely (or in the case of AWS, for a modest price) shared for anyone to download and analyze. Mashups between different information sources make for unexpected and hitherto unimaginable applications.Take, for example, the project, which watches the Astrometry groupon Flickr for new photos of the night sky. It analyzes each image, and identifies which part of the sky it is from, and any interesting celestial bodies, such as stars or galaxies. Although it’s still a new and experimental service, it shows the kind of things that are possible when data (in this case, tagged photographic images) is made available andused for something (image analysis) that was not anticipated by the creator.It has been said that “More data usually beats better algorithms,” which is to say that for some problems (such as recommending movies or music based on past preferences),however fiendish your algorithms are, they can often be beaten simply by having more data (and a less sophisticated algorithm).The good news is that Big Data is here. The bad news is that we are struggling to store and analyze it.Data Storage and AnalysisThe problem is simple: while the storage capacities of hard drives have increased massively over the years, access speeds--the rate at which data can be read from drives--have not kept up. One typical drive from 1990 could store 1370 MB of data and had a transfer speed of 4.4 MB/s, so you could read all the data from a full drive in around five minutes. Almost 20years later one terabyte drives are the norm, but the transfer speed is around 100 MB/s, so it takes more than two and a half hours to read all the data off the disk.This is a long time to read all data on a single drive and writing is even slower. The obvious way to reduce the time is to read from multiple disks at once. Imagine if we had 100 drives, each holding one hundredth of the data. Working in parallel, we could read the data in under two minutes.Only using one hundredth of a disk may seem wasteful. But we can store one hundred datasets, each of which is one terabyte, and provide shared access to them. We can imagine that the users of such a system would be happy to share access in return for shorter analysis times, and, statistically, that their analysis jobs would be likely to be spread over time, so they wouldn`t interfere with each other too much.There`s more to being able to read and write data in parallel to or from multiple disks, though. The first problem to solve is hardware failure: as soon as you start using many pieces of hardware, the chance that one will fail is fairly high. A common way of avoiding data loss is through replication: redundant copies of the data are kept by the system so that in the event of failure, there is another copy available. This is how RAID works, for instance, although Hadoop`s filesystem, the Hadoop Distributed Filesystem (HDFS),takes a slightly different approach, as you shall see later. The second problem is that most analysis tasks need to be able to combine the data in some way; data read from one disk may need to be combined with the data from any of the other 99 disks. Various distributed systems allow data to be combined from multiple sources, but doing this correctly is notoriously challenging. MapReduce provides a programming model that abstracts the problem from disk reads and writes, transforming it into a computation over sets of keys and values. We will look at the details of this model in later chapters, but the important point for the present discussion is that there are two parts to the computation, the map and the re duce, and it’s the interface between the two where the “mixing” occurs. Like HDFS, MapReduce has reliability built-in.This, in a nutshell, is what Hadoop provides: a reliable shared storage and analysis system. The storage is provided by HDFS, and analysis by MapReduce. There are other parts to Hadoop, but these capabilities are its kernel.Comparison with Other SystemsThe approach taken by MapReduce may seem like a brute-force approach. The premise is that the entire dataset—or at least a good portion of it—is processed for each query. But this is its power. MapReduce is a batch query processor, and the ability to run an ad hoc query against your whole dataset and get the results in a reasonable time is transformative. It changes the way you think about data, and unlocks data that was previously archived on tape or disk. It gives people the opportunity to innovate with data. Questions that took too long to get answered before can now be answered, which in turn leads to new questions and new insights.For e xample, Mailtrust, Rackspace’s mail division, used Hadoop for processing email logs. One ad hoc query they wrote was to find the geographic distribution of their users.In their words: This data was so useful that we’ve scheduled the MapReduce job to run monthly and we will be using this data to help us decide which Rackspace data centers to place new mail servers in as we grow. By bringing several hundred gigabytes of data together and having the tools to analyze it, the Rackspace engineers were able to gain an understanding of the data that they otherwise would never have had, and, furthermore, they were able to use what they had learned to improve the service for their customers. You can read more about how Rackspace uses Hadoop in Chapter 14.RDBMSWhy c an’t we use databases with lots of disks to do large-scale batch analysis? Why is MapReduce needed? The answer to these questions comes from another trend in disk drives: seek time is improving more slowly than transfer rate. Seeking is the process of moving the disk’s head to a particular place on the disk to read or write data. It characterizes the latency of a disk operation, whereas the transfer rate corresponds to a disk’s bandwidth.If the data access pattern is dominated by seeks, it will take longer to read or write large portions of the dataset than streaming through it, which operates at the transfer rate. On the other hand, for updating a small proportion of records in a database, a traditional B-Tree (the data structure used in relational databases, which is limited by the rate it can perform seeks) works well. For updating the majority of a database, a B-Tree is less efficient than MapReduce, which uses Sort/Merge to rebuild the database.In many ways, MapReduce can be seen as a complement to an RDBMS. (The differences between the two systems are shown in Table 1-1.) MapReduce is a good fit for problems thatneed to analyze the whole dataset, in a batch fashion, particularly for ad hoc analysis. An RDBMS is good for point queries or updates, where the dataset has been indexed to deliver low-latency retrieval and update times of a relatively small amount of data. MapReduce suits applications where the data is written once, and read many times, whereas a relational database is good for datasets that are continually updated.Table 1-1. RDBMS compared to MapReduceTraditional RDBMS MapReduceData size Gigabytes PetabytesAccess Interactive and batch BatchWrite once, read many times Updates Read and write manytimesStructure Static schema Dynamic schemaIntegrity High LowScaling Nonlinear LinearAnother difference between MapReduce and an RDBMS is the amount of structure in the datasets that they operate on. Structured data is data that is organized into entities that have a defined format, such as XML documents or database tables that conform to a particular predefined schema. This is the realm of the RDBMS. Semi-structured data, on the other hand, is looser, and though there may be a schema, it is often ignored, so it may be used only as a guide to the structure of the data: for example, a spreadsheet, in which the structure is the grid of cells, although the cells themselves may hold anyform of data. Unstructured data does not have any particular internal structure: for example, plain text or image data. MapReduce works well on unstructured or semistructured data, since it is designed to interpret the data at processing time. In other words, the input keys and values for MapReduce are not an intrinsic property of the data, but they are chosen by the person analyzing the data.Relational data is often normalized to retain its integrity, and remove redundancy. Normalization poses problems for MapReduce, since it makes reading a record a nonlocaloperation, and one of the central assumptions that MapReduce makes is that it is possible to perform (high-speed) streaming reads and writes.A web server log is a good example of a set of records that is not normalized (for example, the client hostnames are specified in full each time, even though the same client may appear many times), and this is one reason that logfiles of all kinds are particularly well-suited to analysis with MapReduce.MapReduce is a linearly scalable programming model. The programmer writes two functions—a map function and a reduce function—each of which defines a mapping from one set of key-value pairs to another. These functions are oblivious to the size of the data or the cluster that they are operating on, so they can be used unchanged for a small dataset and for a massive one. More importantly, if you double the size of the input data, a job will run twice as slow. But if you also double the size of the cluster, a job will run as fast as the original one. This is not generally true of SQL queries.Over time, however, the differences between relational databases and MapReduce systems are likely to blur. Both as relational databases start incorporating some of the ideas from MapReduce (such as Aster Data’s and Greenplum’s databases), and, from the other direction, as higher-level query languages built on MapReduce (such as Pig and Hive) make MapReduce systems more approachable to traditional database programmers.Grid ComputingThe High Performance Computing (HPC) and Grid Computing communities have been doing large-scale data processing for years, using such APIs as Message Passing Interface (MPI). Broadly, the approach in HPC is to distribute the work across a cluster of machines, which access a shared filesystem, hosted by a SAN. This works well for predominantly compute-intensive jobs, but becomes a problem when nodes need to access larger data volumes (hundreds of gigabytes, the point at which MapReduce really starts to shine), since the network bandwidth is the bottleneck, and compute nodes become idle.MapReduce tries to colocate the data with the compute node, so data access is fast since it is local. This feature, known as data locality, is at the heart of MapReduce and is the reason for its good performance. Recognizing that network bandwidth is the most precious resource in a data center environment (it is easy to saturate network links by copying data around),MapReduce implementations go to great lengths to preserve it by explicitly modelling network topology. Notice that this arrangement does not preclude high-CPU analyses in MapReduce.MPI gives great control to the programmer, but requires that he or she explicitly handle the mechanics of the data flow, exposed via low-level C routines and constructs, such as sockets, as well as the higher-level algorithm for the analysis. MapReduce operates only at the higher level: the programmer thinks in terms of functions of key and value pairs, and the data flow is implicit.Coordinating the processes in a large-scale distributed computation is a challenge. The hardest aspect is gracefully handling partial failure—when you don’t know if a remote process has failed or not—and still making progress with the overall computation. MapReduce spares the programmer from having to think about failure, since the implementation detects failed map or reduce tasks and reschedules replacements on machines that are healthy. MapReduce is able to do this since it is a shared-nothing architecture, meaning that tasks have no dependence on one other. (This is a slight oversimplification, since the output from mappers is fed to the reducers, but this is under the control of the MapReduce system; in this case, it needs to take more care rerunning a failed reducer than rerunning a failed map, since it has to make sure it can retrieve the necessary map outputs, and if not, regenerate them by running the relevant maps again.) So from the programmer’s point of view, the order in which the tasks run doesn’t matter. By contrast, MPI programs have to explicitly manage their own checkpointing and recovery, which gives more control to the programmer, but makes them more difficult to write.MapReduce might sound like quite a restrictive programming model, and in a sense itis: you are limited to key and value types that are related in specified ways, and mappers and reducers run with very limited coordination between one another (the mappers pass keys and values to reducers). A natural question to ask is: can you do anything useful or nontrivial with it?The answer is yes. MapReduce was invented by engineers at Google as a system for building production search indexes because they found themselves solving the same problem over and over again (and MapReduce was inspired by older ideas from the functional programming, distributed computing, and database communities), but it has since been used for many other applications in many other industries. It is pleasantly surprising to see the range of algorithms that can be expressed in MapReduce, from image analysis, to graph-based problems,to machine learning algorithms. It can’t solve every problem, of course, but it is a general data-processing tool.You can see a sample of some of the applications that Hadoop has been used for in Chapter 14.Volunteer ComputingWhen people first hear about Hadoop and MapReduce, they often ask, “How is it different from SETI@home?” SETI, the Search for Extra-Terrestrial Intelligence, runs a project called SETI@home in which volunteers donate CPU time from their otherwise idle computers to analyze radio telescope data for signs of intelligent life outside earth. SETI@home is the most well-known of many volunteer computing projects; others include the Great Internet Mersenne Prime Search (to search for large prime numbers) and Folding@home (to understand protein folding, and how it relates to disease).Volunteer computing projects work by breaking the problem they are trying to solve into chunks called work units, which are sent to computers around the world to be analyzed. For example, a SETI@home work unit is about 0.35 MB of radio telescope data, and takes hours or days to analyze on a typical home computer. When the analysis is completed, the results are sent back to the server, and the client gets another work unit. As a precaution to combat cheating, each work unit is sent to three different machines, and needs at least two results to agree to be accepted.Although SETI@home may be superficially similar to MapReduce (breaking a problem into independent pieces to be worked on in parallel), there are some significant differences. The SETI@home problem is very CPU-intensive, which makes it suitable for running on hundreds of thousands of computers across the world, since the time to transfer the work unit is dwarfed by the time to run the computation on it. Volunteers are donating CPU cycles, not bandwidth.MapReduce is designed to run jobs that last minutes or hours on trusted, dedicated hardware running in a single data center with very high aggregate bandwidth interconnects. By contrast, SETI@home runs a perpetual computation on untrusted machines on the Internet with highly variable connection speeds and no data locality.译文:初识Hadoop古时候,人们用牛来拉重物,当一头牛拉不动一根圆木的时候,他们不曾想过培育个头更大的牛。
数据分析外文文献+翻译文献1:《数据分析在企业决策中的应用》该文献探讨了数据分析在企业决策中的重要性和应用。
研究发现,通过数据分析可以获取准确的商业情报,帮助企业更好地理解市场趋势和消费者需求。
通过对大量数据的分析,企业可以发现隐藏的模式和关联,从而制定出更具竞争力的产品和服务策略。
数据分析还可以提供决策支持,帮助企业在不确定的环境下做出明智的决策。
因此,数据分析已成为现代企业成功的关键要素之一。
文献2:《机器研究在数据分析中的应用》该文献探讨了机器研究在数据分析中的应用。
研究发现,机器研究可以帮助企业更高效地分析大量的数据,并从中发现有价值的信息。
机器研究算法可以自动研究和改进,从而帮助企业发现数据中的模式和趋势。
通过机器研究的应用,企业可以更准确地预测市场需求、优化业务流程,并制定更具策略性的决策。
因此,机器研究在数据分析中的应用正逐渐受到企业的关注和采用。
文献3:《数据可视化在数据分析中的应用》该文献探讨了数据可视化在数据分析中的重要性和应用。
研究发现,通过数据可视化可以更直观地呈现复杂的数据关系和趋势。
可视化可以帮助企业更好地理解数据,发现数据中的模式和规律。
数据可视化还可以帮助企业进行数据交互和决策共享,提升决策的效率和准确性。
因此,数据可视化在数据分析中扮演着非常重要的角色。
翻译文献1标题: The Application of Data Analysis in Business Decision-making The Application of Data Analysis in Business Decision-making文献2标题: The Application of Machine Learning in Data Analysis The Application of Machine Learning in Data Analysis文献3标题: The Application of Data Visualization in Data Analysis The Application of Data Visualization in Data Analysis翻译摘要:本文献研究了数据分析在企业决策中的应用,以及机器研究和数据可视化在数据分析中的作用。
附录文献翻译附录一中英文翻译Dcvclopmcni tools introductionMySQLSimple IntroductionThe MySQL database has become the worlds most popular open source database because of its high perfomunce. high reliability and ease of use. h is also the database of choice for a new generation of applications built on the LAMP stack (Linux, Apache. MySQL. PHP / Perl / Python.) Many of the world's largest and fastest-growing organizations including Facebook, Google. Adobe. Alcatel Luceni and Zapp)s rely on MySQL to save liine and nxmey powering their high-volunie Web sites・ busincss-critical systems and packaged software・ MySQL runs on more than 20 plailbnns including Linux, Windows, Mae OS. Solaris.IBM AIX. giving you the kind of flexibility that puts you in contnil. Whether you^re new io database technology or an experienced developer or DBA. MySQL offers a comprehensive range of database look,support・(raining and consulting services to make you successful.2Java and the InternetII Java is. in fact, yet arnnher computer programming language. you may question why it is so important and why it is being promoted as a revolutionary step in computer programming. The answer isn'timmediately obvious if you're coming from a traditional programming perspective. Although Java is very useful for solving traditional stand-alone programming problems, ii is also imponant because it will solve programming problems on the World Wide Web.2.1Client-side programmingThe Web\ initial server-browser design provided for interactive content, but the inieractivity wascompletely provided by the server. The server produced static pages for the client browser, which would simply interpret and display them. Basic HTML contains simple mechanisms for data gathering: lext-entry boxes, check boxes, radio boxes, lists and drop-down lists, as well as a button that can only beprogrammed to reset the data on the form or • suhmif * the data on the form back to the server. This submission passes through the Common Gateway Interface (CGI) provided on all Web servers. The text within the submission tells CGI what to do with it. The common action is to run a program lcxraled on the server in a directory that's typically called “cgi・bin・" (If you watch the address window at lhe top of your browser when you push a button on a Web page・ you can sonKtimes see "cgi-bin^ within all (hegobbledygook there.) These pmgranis can be written in most languages・ Perl is a comnum choice because it is designed tor lexi manipulation and is imcrpiricd, so it can be installed on any server regaolless ot pnvessor or operating system・Many powerful Web sites uxlay are built strictly on CGL and you can in tact do nearly anything with it.However. Web sites built on CGI programs can rapidly become overly complicated to maintain, and there is also the problem of response liine. The response of a CGI program depends on how much data must be senu as well as the load on both lhe server and the Inicmet. (On lop of this, starting a CGI program tends io be slow.) The initial designers of the Web did not foresee how rapidly this bandwidth would be exhausted tor (he kinds of applications people developed・ For example, any sort of dynamic graphing is nearly impossible to perform with consistency because a GIF file must be created and moved freun lhe server lo lhe client for each version of the graph・ And you*ve no doubt had direct experience with something as simple as validating the data on an input torn). You press the submit button on a page: the data isshipped back to the server; lhe server starts a CGI program that discovers an error, fonnais an HTML pageinfonning you ot lhe error, and then sends lhe page back io you; you must then back up a page and tryagain. Not only is this slow, ifs inelegant.The solution is client-side programming. Most machines that run Web browsers arc powerful engines capableot doing vast work, and with the original static HTML approach they arc sitting there, just idly waitingfor the server to dish up the next page. Client-side programming nwans that the Web browser is harnessedto do whatever work it can. and the result for the user is a much speedier and more interactiveexperience at your Web site・The problem with discussions of clicni-sidc programming is that they aren't very different fromdiscussions of programming in general. The parameters arc almost the same, but the platform is different:a Web browser is like a limited operating system. In the end, you must Mill program・ and this accountsfor the dizzying array of problems and solutions produced by clicnt-sidc programming. The rest of thissection provides an overview of the issues and appriKiches in client-side programming.2.2Plug-insOne of the most significant steps forward in client-side programming is lhe development of the plug-in.This is a way for a programmer to add new functionality lo lhe browser by downloading a piece of codethat plugs itself into (he appropriate spot in the browser. It tells the browser,Trom now on you canperform this new activity/* (You need to download lhe plug-in only once.) Some fast and powerful behavioris added to browsers via plug-ins. but writing a plug-in is not a trivial task, and isn't something you dwant to do as part of the process of building a particular site. The value of (he plug-in for client-sideprogramming is lhai ii allows an expert programmer【o develop a new language and add that language to a browser without lhe pennission ot lhe browser inanufaciurer. Thus, plug-ins provide a "back door* thatallows the creation of new client-side programming languages (although noi all languages are implementedas plug-ins)・2.3Scripting languagesPlug-ins resulted in an explosion of scripting languages. With a scripting language you embed lhe sourcecode for your clieni-sidc program directly into the HTML page, and the plug-in that interprets thatlanguage is automaiically aciivaicd while the HTML page is being displayed・ Scripting languages tend lobe reasonably easy to understand and. because they arc simply text that is part of an HTML page, theyload very quickly as part of the single server hit required to procure that page・ The iradc-off is thatyour code is exposed for everyone to see (and steal)・ Generally, however, you aren t doing amazinglysophisticated things with scripting languages so this is not loo much of a hardship・This points out that the scripting languages used inside Web browsers arc really intended to solvespecific types of problem、, primarily lhe creation of richer and more inieractive graphical user inieifaces (GUIs). However, a scripting language might solve 80 percent of lhe problem、encountered in client-side programming. Your problems might very well fit completely within that 80 percent, and sincescripting languages can allow easier and faster development, you should probably consider a scriptinglanguage before l(x)king at a more involved solution such as Java or ActiveX programming・The most commonly discussed browser scripting languages arc JavaScript (which has nothing to do withJava: ill named that way just to grab some of Java's marketing momenium), VBSeripi (which looks likeVisual Basic), and Tcl/Tk, which comes from the popular cross-plaitonn GUI-building language・ There arcothers out there・ and no doubt nwrc in development ・ JavaScript is probably the nx>st commonly supponed ・ h comes built into both Netscape Navigator and the Micnisoft Internet Explorer (IE). In addition・there are probably more JavaScript books available than there arc for the other browser languages, andsome tools automatically create pages using JavaJkript. However, if you"re already tlueni in Visual Basic or Tcl/Tk, you'll be more productive using those scripting languages raihcr than learning a new one・(Yoifll have your hands full dealing with the Web issues already.)2.4JavaIf a scripting language can solve 80 percent of the client-side programming problems, what about the other 20 percent― he "really hard stuff?" The mos【popular solution loday is Java・ Not only is it a powerful programming language built to be secure, cross・plalfornT・ and iniemationaL but Java is being continually extended to provide language features and libraries that elegantly handle problems that are difficult in traditional programming languages, such as multithreading, database access. nelwork programming, and distributed computing .Java allows client-side programming via the applet.An applet is a mini-program that will run only under a Web browser. The applet is downloaded automatically as part of a Web page (just as. example, a graphic is automatically downloaded). When the applet is activated it executes a program. This is pari of its beauty—il provides you with a way to automatically distribute the client software from the server al the tinw the user needs the clicni software, and no wx)ncr. Thu user gets the latest version ot lhe client software without fail and without difficult rcinstallation. Because of the way Java is designed, lhe programmer needs to create only a single program, and that program automatically works with all computers that have browsers with built-in Java inicqwvicrs. (This safely includes lhe vast majority of machines.) Since Java is a full-Hedged programming language, you can do as much work as possible on the client before and after making requests of the server. For example, you won't need to send a request form across the Internet to discover that you've gotten a date or some other parameter wrong, and your client computer can quickly do the work of plotting data instead of waiting for the server to make a plot and ship a graphic image back to you. Nol only do you get the ininwdiate win of speed and responsiveness, but the general network traffic and load on servers can be reduced, preventing the entire Intcnwt from slowing down.One advantage a Java applet has over a scripted program is that it's in compiled form, so the source code isn't available to lhe client On the other hand, a Java applet can be decompiled without too much trouble. but hiding your code is often not an important issue・ Two other factors can be important. As you will see later in this b(x)k. a compiled Java applet can comprise many mcxlules and take multiple server (accesses) to download. (In Java I」and higher this is minimized by Java archives, called JAR files. that allow all lhe required modules be packaged together and compressed for a single download.) A scripted program will just be integrated into the Web page as part of its text (and will generally be smaller and reduce server hits). This could be important lo (he responsiveness of your Web site. Another factor is the all-important learning curve・ Regardless ot what you've heard, Java is not a trivial language to learn. If yoif re a Visual Basic programmer, moving io VBScript will be your fastest solution, and since ii will probably solve most typical clieni/scrver problems you might be hard pressed io justify learning Java・ If yotTre experienced with a scripting language you will certainly benefit from looking al JavaScript or VBScript before committing io Java・ since they might fit your needs handily and youll be more productive sooncr.to run ils applets wiihi2.5ActiveXTo some degree, the competitor to Java is Microsott's ActiveX, although it lakes a complelcly different approach・ ActiveX was originally a Windows-only solution, although it is now being developed via an independent consortium to become cross-platfonn. Effectively, ActiveX says "if your program connects to its cnvimnmcni just so. it can be dropped into a Web page and run under a browser that supportsActiveX.** (IE directly supports ActiveX and Netscape docs g using a plug-in.) Thus, ActiveX docs notconstrain you to a panicular language・ If. for example, you*re already an experienced Windows programmer using a language such as C++, Visual Basic, or Borland's Delphi, you can create ActiveX components with almost no changes to your programming knowledge. ActiveX also provides a path for the use of legacy ccxJe in your Web pages・2.6SecurityAutomatically downloading and running program、“cross lhe Jntemel can sound like a virus-buildefs drvam. ActiveX especially brings up the thorny issue of security in client-side programming. If you click on a Web site, you might automatically download any number of things along with lhe HTML page: GIF files, script code・ compiled Java ccxle. and ActiveX components. Some of these are benign; GIF tiles can't do any hann. and scripting languages are generally limited in what they can do. Java was also designed to run its applets within a ' sandbox'' of safety, which prevents it from writing to disk or accessing memory outside the sandbox.ActivcX is at lhe opposiic end of the spectrum. Programming with ActiveX is like programming Windows—you can do anything you want. So if you click on a page that downloads an ActiveX coniponcni. that component might cause damage to the tiles on your disk. Of course・ programs that you load onio your computer that are not restricted io running inside a Web browser can do lhe same thing. Viruses downloaded fromBulletin-Board Systems (BBSs) have long been a problem, but the speed of the Internet amplifies the difTiculty.The solution seems io be "digital signatures/' whereby code is verified to show who the author is. This is based on lhe idea that a virus works because its creator can be anonymous, so if you remove the anonymity individuals will be forced to be responsible tor their actions・ This seems like a good plan because it allows programs to be much more functionak and I suspect it will eliminate malicious mischief. If. however, a program has an unintentional destructive bug it will still cause problem、.The Java appnxich is lo prevent these problems from (Kcurring, via lhe sandbox・ The Java inteq^reterthat lives on your local Web browser examines lhe applet for any untoward instructions as lhe applet is being loaded・ In particular, lhe applet cannot write files to disk or erase files (one of the mainstays of viruses). Applets are generally considered to be safe, and since this is essential for reliableclieni/server systems, any bugs in lhe Java language that allow viruses arc rapidly repaired・(Il's worth noting that the browser softwam actually enforces these security restrictions, and some bnwsers allow you to select different security levels io provide varying degrees of access io your system.)You might be skeptical of this rather draconian restriction against writing Hies to your local disk. For example, you may want io build a l(x:al database or save data tor later use offline. The initial vision seemed to be that eventually everyone would gel online to do anything important, but that was soon seenio be impractical (although low-cost ^Internet appliances * might someday satisfy the needs of a significant segineni of users). The solution is lhe "signed applet** that uses public-kcy encryption to verify that an applet docs indeed come from where it claims it does・ A signed applet can still trash your disk, bui lhe theory is (hat since you can now hold the applet creator accountable they won*t do vicious things .Java provides a framework for digital signatures so that you will eventually be able to allow an applet io step outside the sandbox if necessary.Digital signatures have missed an iniponant issue, which is the speed that people move around on the Internet. If you download a buggy program and it docs something untoward, how long will it be before you discover the damage? It could be days or even weeks・ By then. how will you track down the program that's done it? And whai good will it do you at that point?2.7Internet vs. intranetThe Web is the inosi general solution io the client/server problem・ so it makes sense that you can use lhe sank: technology lo solve a subset of lhe pniblcm, in particular the classic client/server problem within a company. With traditional client/server appniaches you have the problem of mulliple types of client computers, as well as the difficulty of installing new client softwarv・ both of which are handily solved with Web brousers and clieni-sidc programming・ When Web technology is used for an intbnuation network that is rcstricicd to a particular company, it is referred lo as an intranet. Inlrancts provide much greater security than the Iniemet. since you can physically conirol access to the servers within your company. In lenns ot training, it seems that once people understand the general concepi of a browser it's much easier tor them to deal with differences in the way pages and applets look, so the learning curve for new kinds of systems seems io be reduced.The security problem brings us lo one of the divisions that seems io be automatically forming in the world of clieni-sidc programming. If your program is running on the Iniemeu you don't know what plattomi it will be working undec and you want to be extra careful (hat you don't disseminate buggy code・ You need something cross-plalfomi and secure, like a scripting language or Java・If you* re running on an intranet, you might have a different set of constraints. It*s not uncommon (hat your machines could all be IntclA^r indows platforms. On an intranet, you're responsible for lhe quality of your own code and can repair bugs when thcy*rv discovered・ In addition, you might already have a body of legacy code that you've been using in a more traditional client/server approach・ whereby you musi physically install clieni programs every tinw you do an upgrade・ The time wasted in installing upgrades is the most compelling reason U)move to browsers, because upgrades arc invisible and aulornatic・ If you are involved in such an intranet the most sensible approach to lake is the shortest path that allows you to use your existing code base, ralher than trying to recode your programs in a new language・ When faced with (his bewildering array of solutions to lheclienl・、idc programming problem, the best plan of attack is a cosi-bcnetlt analysis. Consider the constraints of your problem and what would be lheshortest paih to your solution. Since clicni-sidc programming is still programming, it's always a good idea io take the fastest development approach tor your particular situation. This is an aggressive stance io prepan: for ineviiable encounters wilh lhe problems of program developiiwnt.2.8Server-side programmingThis whole discussion has ignored the issue of scr\cr-sidc programming. What happens when you make a request of a server? Most of the time the request is simply "send me this file.” You r browser (hen inierprets lhe file in some appropriate fashion: as an HTML page, a graphic image, a Java applet, a script program. c【c. A more complicated request to a server generally involves a ibtabasc transaction.A common scenario involves a request for a complex database search・ which the server then fonnats into an HTML page and sends to you as the result・(Of course, if the client has more intelligence via Java or a scripting language, the raw data can be seni and formaitcd at the client end, which will be faster and less load on the server.) Or you might want to register your name in a database when you join a group or place an order, which will involve changes to that database・ These database requests must be processed via some c(xle on the server side, which is generally referred to as sener-side programming. Traditionally, server-side programming has been performed using Perl and CGI scripts, but more sophisticated systems have been appearing. These include Java-based Web servers that allow you to perfonn all your server-side programming in Java by writing what are called servlets. Servlets and (heir offspring. JSPs. are two of the most compelling reasons (hat companies who develop Web sites are movingto Java・ especially because they eliminate the problems of dealing wilh differently abled browsers・2.9separate arena: applicationsMuch of the brouhaha over Java has been over applets. Java is actually a general-purpose programming language that can solve any type of problem—at least in theory・ And as pointed out previously, there might be more ctteciive ways lo solve n)osi clicni/scrver problems. When you move out of the applet arena (and simultaneously release (he restrictions, such as the one against writing to disk) you enter the world of general-puiposc applications that run standalone, without a Web browser, just like any ordinary program docs. Here. Java's strength is not only in its portability, but also its paigraminability. As you’ll see throughout this book. Java has many features that allow you to create robust pmgrams in a shorter period than with previous programming languages・Be aware that this is a mixed blessing. You pay for the improvements thmugh slower execution speed (although there is significant work going on in this area—JDK 1.3, in panicular introduces (he so-called • hotspof' pertbrniance improvements). Like any language, Java has built-in limitations that might makeit inappropriate to solve certain types of programming problems. Java is a rapidly evolving language・however and as each new release conies out ii becomes more and more attractive for solving larger sets of problems.1.MySQL数据库1.1简介MySQL数拒库己成为世界上最流行的开源数拒库.因为它的高杵能•高可為性和易用性,这也足数据库选择新代W用建、7•在LAMP F(Linux. Apache, MySQL, PHP/Perl/Python.)许藝世界上扱人和发展瑕快的组织,包括脸谱网. 谷歌,匕坯.阿尔卡特朗讯和依猱数据库中节省时间和金钱的人容量供电网络网站.商业系统和软件包.数拡廉运行在20个以I:平台包括操作系统.视谢,操作系统.操作,•、・给你的•种灵活性,曽于控制你。
Concrete MathematicsR. L. Graham, D. E. Knuth, O. Patashnik《Concrete Mathematics》,1.3 THE JOSEPHUS PROBLEM R. L. Graham, D. E. Knuth, O. Patashnik Sixth printing, Printed in the United States of America 1989 by Addison-Wesley Publishing Company,Reference 1-4pages具体数学R.L.格雷厄姆,D.E.克努特,O.帕塔希尼克《具体数学》,1.3,约瑟夫环问题R.L.格雷厄姆,D.E.克努特,O.帕塔希尼克第一版第六次印刷于美国,韦斯利出版公司,1989年,引用8-16页1.递归问题本章研究三个样本问题。
这三个样本问题给出了递归问题的感性知识。
它们有两个共同的特点:它们都是数学家们一直反复地研究的问题;它们的解都用了递归的概念,按递归概念,每个问题的解都依赖于相同问题的若干较小场合的解。
2.约瑟夫环问题我们最后一个例子是一个以Flavius Josephus命名的古老的问题的变形,他是第一世纪一个著名的历史学家。
据传说,如果没有Josephus的数学天赋,他就不可能活下来而成为著名的学者。
在犹太|罗马战争中,他是被罗马人困在一个山洞中的41个犹太叛军之一,这些叛军宁死不屈,决定在罗马人俘虏他们之前自杀,他们站成一个圈,从一开始,依次杀掉编号是三的倍数的人,直到一个人也不剩。
但是在这些叛军中的Josephus和他没有被告发的同伴觉得这么做毫无意义,所以他快速的计算出他和他的朋友应该站在这个恶毒的圆圈的哪个位置。
在我们的变形了的问题中,我们以n个人开始,从1到n编号围成一个圈,我们每次消灭第二个人直到只剩下一个人。
例如,这里我们以设n= 10做开始。
data structures and algorithm analysi英文原版 pdfTitle: Data Structures and Algorithm Analysis: A Comprehensive ReviewIntroduction:Data structures and algorithm analysis are fundamental concepts in computer science. They form the backbone of efficient and optimized software development. This article aims to provide a comprehensive review of the book "Data Structures and Algorithm Analysis" in its English original version PDF format. The review will cover the key points, structure, and significance of the book.I. Overview of the Book:1.1 Importance of Data Structures:- Discuss the significance of data structures in organizing and manipulating data efficiently.- Explain how data structures enhance the performance and scalability of software applications.1.2 Algorithm Analysis:- Describe the role of algorithm analysis in evaluating the efficiency and performance of algorithms.- Highlight the importance of selecting appropriate algorithms for different problem-solving scenarios.1.3 Book Structure:- Outline the organization of the book, including chapters, sections, and topics covered.- Emphasize the logical progression of concepts, starting from basic data structures to advanced algorithm analysis.II. Data Structures:2.1 Arrays and Linked Lists:- Explain the characteristics, advantages, and disadvantages of arrays and linked lists.- Discuss the implementation details, operations, and time complexities of these data structures.2.2 Stacks and Queues:- Define stacks and queues and their applications in various scenarios.- Elaborate on the implementation, operations, and time complexities of stacks and queues.2.3 Trees and Graphs:- Introduce the concepts of trees and graphs and their real-world applications.- Discuss different types of trees (binary, AVL, B-trees) and graphs (directed, undirected, weighted).III. Algorithm Analysis:3.1 Asymptotic Notation:- Explain the significance of asymptotic notation in analyzing the efficiency of algorithms.- Discuss the Big-O, Omega, and Theta notations and their usage in algorithm analysis.3.2 Sorting and Searching Algorithms:- Describe various sorting algorithms such as bubble sort, insertion sort, merge sort, and quicksort.- Discuss searching algorithms like linear search, binary search, and hash-based searching.3.3 Dynamic Programming and Greedy Algorithms:- Define dynamic programming and greedy algorithms and their applications.- Provide examples of problems that can be solved using these approaches.IV. Advanced Topics:4.1 Hashing and Hash Tables:- Explain the concept of hashing and its applications in efficient data retrieval.- Discuss hash functions, collision handling, and the implementation of hash tables.4.2 Graph Algorithms:- Explore advanced graph algorithms such as Dijkstra's algorithm, breadth-first search, and depth-first search.- Discuss their applications in solving complex problems like shortest path finding and network analysis.4.3 Advanced Data Structures:- Introduce advanced data structures like heaps, priority queues, and self-balancing binary search trees.- Explain their advantages, implementation details, and usage in various scenarios.V. Summary:5.1 Key Takeaways:- Summarize the main points covered in the book, emphasizing the importance of data structures and algorithm analysis.- Highlight the significance of selecting appropriate data structures and algorithms for efficient software development.5.2 Practical Applications:- Discuss real-world scenarios where the concepts from the book can be applied.- Illustrate how understanding data structures and algorithm analysis can lead to optimized software solutions.5.3 Conclusion:- Conclude the review by emphasizing the relevance and usefulness of the book "Data Structures and Algorithm Analysis."- Encourage readers to explore the book further for a deeper understanding of the subject.In conclusion, "Data Structures and Algorithm Analysis" is a comprehensive guide that covers essential concepts in data structures and algorithm analysis. The book's structure, detailed explanations, and practical examples make it a valuable resource for computer science students, software developers, and anyone interested in optimizing their software solutions. Understanding these fundamental concepts is crucial for building efficient and scalable software applications.。
外文翻译原文Computer programming data structure is an important theoretical basis for the design, it is not only the core curriculum of computer disciplines, and has become a popular elective course other Polytechnic professional, so studied this course well and studied computer are closely related.一、the concept of data structureComputer data structure is the foundation of science and technology professional classes, is the essential core curriculum. All computer system software and application software to use various types of data structures. Therefore, if we want to make better use of computers to solve practical problems, only to several computer programming languages are difficult to cope with the many complex issues. To the effective use of computers, give full play to computer performance, but also must learn and master relevant knowledge of data structure. A solid foundation of "data structure"for learning other computer professional courses, such as operating systems, translation theory, database management systems, software engineering, artificial intelligence, etc. are very useful.二、why should learn from data structure?In the early development of computers, the use of computer designed primarilyto deal with terms. When we use the computer to solve a specific problem, the following general needs through several steps : the first is a specific problem of appropriate abstract mathematical models, and then design or choose a mathematical model of the algorithm,the final procedures for debugging, testing, until they have the ultimate answer.Since then the object is INTEGER, REAL, BOOLEAN, the procedures of the main designers of energy is focused on programming skills, without attention to the data structure. With the expansion of computer applications and development of software and hardware, the issue of non-terms increasing importance. According to statistics, Now dealing with the issue of non-occupancy of more than 90% of the machine time. Such issues involve more complex data structure, the relationshipsbetween data elements generally can not be described by mathematical formula. Therefore, the key to solving such problems is no longer mathematical analysis and calculations, but to devise appropriate data structure, can effectively address the problem.Description of the terms of such non-mathematical model is not a mathematical equation, but such as tables, trees, such as map data structure. Therefore, it can be said that data structure courses primarily designed to study the issue of non-value calculation procedures as a computer operations and the relationship between objects and their operating disciplines.The purpose of the study is to understand the structure of data for computer processing of the identity object to the practical problems involved in dealing with that subject at the computer out and deal with them. At the same time, through training algorithms to improve the thinking ability of students through procedures designed to promote student skills integrated applications and professional qualities.三、the concepts and terminologySystematic study of knowledge in the data structure before some of the basic concepts and terminology to give a precise meaning.Data (Data) is the information carrier, it could be computer identification, storage and processing. It is the computer processing of raw materials, a variety of data processing applications. Computer science, computer processing is the so-called data objects, which can be numerical data can be non - numerical data. Numerical data are integer, the actual number or plural, mainly for engineering computing, scientific computing and commercial processing; Non - numerical data, including characters, text, graphics, images, voice and so on.Data elements (Data Element) is the basic unit of data. In different conditions, data elements can be called elements, nodes, the peak, recording. For example, students information retrieval system table information, a record high, 8 Queen's issue of a state tree, teaching programming issues such as a peak, known as a data element. Sometimes, a data from a number of data elements (Data Item), for example, the student information management system students each data element table is a studentrecord. It includes students of the school, name, sex, nationality, date of birth, performance data items. These data items can be divided into two types : one called early such as student gender, origin, etc., these data were no longer divided in data processing, the smallest units; Another called portfolio, the performance of students who, it can be divided into mathematics, physics, chemistry and other smaller items. Normally, in addressing the question of the practical application of each student is recorded as a basic unit for a visit and treatment.Data objects (Data Object) or data element type (Data Element Class) is the nature of the data elements with the same pool. In a specific issue, the data elements have the same nature (not necessarily equal value elements), belonging to the same data objects (data element type), the data element is an example of such data elements. For example, traffic information systems in the transportation network, is a culmination of all the data elements category, peak a and B each represent an urban middle is the data elements of the two types of examples of the value of their data elements a and B respectively.Data structure (Data Structure) refers to the mutual relationship that exists between one or more data elements together. In any case, between data elements will not be isolated in between them exist in one way or another, such as the relationship between the data element structure. According to the data elements of the relationship between different characteristics, usually have the following four basic categories of the structure :1 assembly structures. In the assembly structure, the relationship between data elements is "belonging to the same pool." Assembly elements relations is a very loose structure.2 linear structures. The structure of the data elements exist between one-to-one relationship.3 tree structure. The structure of the data elements exist between hierarchical relationship.4graphics structure. The structure of the data elements of the relationship that existed between Duoduiduo, graphics structure also known as network structure.C++Builder programming experience一、Database programmingAnd the use of Delphi, Borland C++Builder BDE (Borland Database Engine) database interface, in particular its use BDE Administrator unified management database alias, the database operation has nothing to do with the location of the database documents, thus enabling database development easier operation. But in a database application procedures at the same time we have to "release" BDE, the database for some simple procedures may BDE than our own design procedures big, but as the use of BDE InstallShield, add database alias is likely allocation failure. Therefore, we can use the following methods : still in the design stage procedure using BDE alias management database for debugging, but in procedures substantially (as in the main Chuangti OnCreate event processing function) to Table components DatabaseName attributes, such as the use of similar phrases as follows :Table1->DatabaseName = ExtractFilePath (Application->ExeName); OrTable1->DatabaseName = ExtractFilePath (Application->ExeName+ "DB");Thus, no impact on the debugging phase, will be issued if the application procedures Table1 document on the use of databases or their current catalogue "DB" virus, database procedures can be normal operation. You can even be a database to catalogue the documents in the form of character string Register (installed in the installation process), then the procedure in the acquisition of substantially from the catalogue of payrolls, Fuzhi DatabaseName attribute to be. Anyway, you do not need to install relatively large BDE forced users.二、the Registry visitAs in the design process we often required 9x/NT Windows Registry information visit, such as retrieval of information procedures, preservation of information. Register write a subroutine to visit necessary. When the Register to visit, the library will be directly available without always some duplication operation. The following can be used to access cosmetic Licheng, the character string type Jianzhi, and the retrieval of failure to return default value Default.#include < Registry.hpp >int ReadIntFromReg(HKEY Root, AnsiString Key, AnsiString KeyName, int Default) {int KeyValue;TRegistry *Registry = new TRegistry();Registry->RootKey = Root;Registry->OpenKey(Key, false);try {KeyValue = Registry->ReadInteger(KeyName);}catch(...) {KeyValue = Default;}delete Registry;return KeyValue;}void SaveIntToReg(HKEY Root, AnsiString Key, AnsiString KeyName, int KeyValue) {TRegistry *Registry = new TRegistry();Registry->RootKey = Root;Registry->OpenKey(Key, true);Registry->WriteInteger(KeyName, KeyValue);delete Registry;}char *ReadStringFromReg(HKEY Root, AnsiString Key, AnsiString KeyName, char *Default) {AnsiString KeyValue;TRegistry *Registry = new TRegistry();Registry->RootKey = Root;Registry->OpenKey(Key, false);try {KeyValue = Registry->ReadString(KeyName);}catch(...) {KeyValue = (AnsiString)Default;}delete Registry;return KeyValue.c_str();}void SaveStringToReg(HKEY Root, AnsiString Key,AnsiString KeyName, char *KeyValue) {TRegistry *Registry = new TRegistry();Registry->RootKey = Root;Registry->OpenKey(Key, true);Registry->WriteString(KeyName, (AnsiString)KeyValue);delete Registry;}We may use the following access methods (to Windows wallpaper documents) : AnsiString WallPaperFileName =ReadStringFromReg(HKEY_CURRENT_USER,"\\Control Panel\\Desktop", "Wallpaper", "");三、show / hide icons task columnStandard Windows applications generally operating in the mission mandate column on the chart shows, users can directly use the mouse clicking column logo for the mission task cut over, but some applications do not use task column signs, such as the typical Office tools, There are also procedures that can be shown or hidden customization tasks column icon, such as Winamp. We can do the procedure, as long as access Windows SetWindowLong function can drive, as follows : // hidden task column chart :SetWindowLong (Application->Handle.GWL_EXSTYLE, WS_EX_TOOLWINDOW);// task column shows signs :SetWindowLong (Application->Handle.GWL_EXSTYLE, WS_EX_APPWINDOW);四、the establishment of a simple "on" windowA complete Windows applications typically contain a "on the" window to show version information. We customized a dialog box as usual "on the" window of the "on" free customized window, indicates that more information, even including super links. If only show simple version information,Windows ShellAbout function shelf items have sufficient, following this line of code can be "on" Duihuakuang and is Windows standard "on the" Duihuakuang and procedures may show signs such as the use of resources and systems.ShellAbout (Handle, ( "on" +Application->Title+ "#"). C_str () ( "\n"+Application->Title+ "V1.0\n\n" + "夏登城版权所有!"). C_str ()Application->Icon->Handle);五、the two methods to choice catalogueIn our applications, allowing users to choose the regular catalogue, such as software manufacturers, users choose catalogue. This involves catalogue option, we may use the following methods for users to choose one of the catalogue : 1, use SHBrowseForFolder and SHGetPathFromIDList function; Company affirms its function as follows :WINSHELLAPI LPITEMIDLIST WINAPISHBrowseForFolder(LPBROWSEINFO lpbi); WINSHELLAPI BOOL WINAPI SHGetPathFromIDList(LPCITEMIDLIST pidl, LPSTR pszPath); LPBROWSEINFO 和LPITEMIDLIST structure refer Win32 files. This method of selecting catalogues available Windows desktop all available inventory, including networks of other computers sharing catalogue neighbors, but not the new catalogue. Li Cheng allows users to choose the following directory, the directory of choice Licheng return at all trails character string.#include < shlobj.h >char *GetDir(char *DisplayName, HWND Owner) {char dir[MAX_PATH] = "";BROWSEINFO *bi = new BROWSEINFO;bi->hwndOwner = Owner;bi->pidlRoot = NULL;bi->pszDisplayName = NULL;bi->lpszTitle = DisplayName;bi->ulFlags = BIF_RETURNONLYFSDIRS;bi->lpfn = NULL;bi->lParam = NULL;bi->iImage = 0;ITEMIDLIST *il = SHBrowseForFolder(bi);if(il!=NULL) {SHGetPathFromIDList(il, dir);}delete bi;return dir;}We can use the following list to be chosen from :AnsiString at Dir = (AnsiString) GetDir ( "Please select catalogue :" Handle);2, the use of SelectDirectory function. C++Builder the function SelectDirectory achievable catalogue of options, which showed that similar "open" / "preserve" Duihuakuang, but its advantage is to use / non-use keyboard input catalogue members, and allow the creation of new directories. Its original definition as follows : Extern package bool __fastcall SelectDirectory ( AnsiString &Directory, TSelectDirOpts Options, 103-116 HelpCtx);Licheng SelectDir allow you to choose the following directory :#include < FileCtrl.hpp >AnsiString SelectDir(AnsiString Dir) {if(SelectDirectory(Dir, TSelectDirOpts()<< sdAllowCreate << sdPerformCreate << sdPrompt,0))return Dir;elsereturn "";}for the following redeployed to the users choice catalogue :AnsiString SelectedDir = SelectDir ( "C:\\My Documents");外文翻译译文数据结构是计算机程序设计的重要理论设计基础,它不仅是计算机学科的核心课程,而且已成为其他理工专业的热门选修课,所以学好这门课程是与学好计算机专业是息息相关的。