“Let COVID-19 Not Stop Learning”

Total Page:16

File Type:pdf, Size:1020Kb

“Let COVID-19 Not Stop Learning” “Let COVID-19 Not Stop Learning” Name of the Department – PG Department of Computer Science Class – BCA 1 Section Teacher’s Subject Name of the Topic Web Link/ PDF Link/Any other Material Supplied Name A Prof. Fundamentals of Web Hosting https://www.slideshare.net/Cloudbells/web-hosting-cloudbellscom Sukhwinder Web Programming Java Script Events https://drive.google.com/open?id=1JUPZTYCpdEun- FrSQxHHkJvhZZk2jl-T Important question with answers https://drive.google.com/open?id=1aVRZHyqVacKzbfRzkYqZFqdn on HTML gS7trnko DHTML Short Question https://drive.google.com/open?id=1NWY14EMFfhtmQD2SzKFgWg m-n7GbqWqF Domain Name & Web Hosting https://drive.google.com/open?id=1B_PlqkVt8oX8bEI0tCiOOZG6Q Mh6rv2J Web Terminologies https://drive.google.com/open?id=19nUuwrELZe_7SGSOthpZqwGw Q1xTLvKt Previous year qus paper https://drive.google.com/open?id=14h35AJQuiameufKJi7Kl_BhBtD VPgNZu Web Designing qus ans https://drive.google.com/open?id=1ZMNsd55PCMstViki0U92EsPiO Jj-nEVW Revision Basic HTML https://youtu.be/x9bTBcron78 CSS https://youtu.be/3Fd11f00zOs Form Validation https://youtu.be/ROWiB4LNfYw A Prof. Aman C++ Polymorphism https://drive.google.com/file/d/1Ln5072SgcSimPyDZ4KmCYAu- f3bur2FG/view?usp=sharing Inheritance https://drive.google.com/file/d/1M3tHf9tWaUFZwukqdQIsfPXG240 yoPrl/view?usp=sharing https://drive.google.com/file/d/1M4Yon7XG9OzLlUsPXHrANXU3c mH5asJq/view?usp=sharing File Handling https://youtu.be/-hlASALk6gA File opening modes https://youtu.be/zh67WGJKKhE Default Arguments https://drive.google.com/file/d/1rFPHTgE11SbZ- qnnX7HrdD6NGU1i1491/view?usp=sharing Open() in Files C++ https://youtu.be/zh67WGJKKhE File Pointers https://youtu.be/iZnrqwWTyGw Exception Handling https://youtu.be/Lk4M_aEVk90 Operator Overloading https://youtu.be/qR-oCkHBBiw Revision Operator Overloading https://youtu.be/7pQEvX5F6jU A Prof. Navdeep Computer Flip Flops and their working https://drive.google.com/open?id=1MqCjWc7_X6Q1cxfxoEEPq3ru Organization AUeIoR7B Booth’s Algorithm https://www.youtube.com/watch?v=DIp4GqSCZho B Prof. Sarabjeet Fundamentals of Assignment https://youtu.be/ORV1HOSgv2Q Web Programming Java Script Events https://drive.google.com/file/d/1XDvNAEFSA6DJPZjMTsnZSekDss YLggGu/view?usp=sharing JavaScript 85 short question https://drive.google.com/file/d/1X6OhaW6Rhhu0x0fHpM8zaZJ5kjo answers bD_48/view?usp=sharing HTML short question answers https://drive.google.com/file/d/1g- nvzTqDmLZYoedRHFIsp8hhUGIZarbq/view?usp=sharing Dreamweaver short question https://drive.google.com/file/d/1pjl855pSJtAMusuqVmBKuhWd77h answers Bhnr4/view?usp=sharing DHTMLshort question answers https://drive.google.com/file/d/1hwh2QlQQ7ZHYmN6C0lPmbresV MtklOpP/view?usp=sharing Domain Names and Web Hosting https://drive.google.com/file/d/1ZgDWis9GL5ztSZYJQPgtRfEPdOC 6lfn6/view?usp=sharing Web Terminologies https://drive.google.com/file/d/1wF8oo8yYb1Fr7uY6eglD6V4NgrAl 9sRj/view?usp=sharing Previous year qus paper https://drive.google.com/file/d/10CCxfIzRo2I8ksiaZhHKBLOnPeOP 1g4q/view?usp=sharing Web Designing qusans https://drive.google.com/file/d/1Q9U_cVqY5yQ5WwzEIkl8304HCh n6jqVC/view?usp=sharing Web Programming unit – 1(Online https://drive.google.com/drive/folders/1eMt_JOE8bo9EdtuNHVDPM class through ZOOM app) yhDzsTX5A6k?usp=sharing Revision (Online class through https://drive.google.com/drive/folders/1yLa_XbpWsxmEAjswdT2Jo ZOOM app) oDkcl6mSPec?usp=sharing Revision Internet/Intranet/Extranet https://drive.google.com/file/d/1Om9AKzAgYcN6dTNNK- yCwu2vWjJwBeDI/view?usp=sharing B Prof. Daman C++ Self createdprograms on https://data-flair.training/blogs/inheritance-in-cpp/amp/ Inheritance(3 links) https://drive.google.com/open?id=1IIpBaZL1cn6D8TW7x8UluHM7 OYyqd0Tf https://drive.google.com/open?id=1oh2dKfvjAV2TlLcUpe0U598Lr3 1HxtOf Polymorphism https://drive.google.com/open?id=1OMZvcliErMQ9r_4l67_pDDeHd AnW_fQ0 Exception Handling https://drive.google.com/open?id=1UJRSUG0eIHNplERJresakzzxJv QJveu6 Parameter Passing Technique https://drive.google.com/open?id=1o0NhT5JRw4SGGjkuJairnXglSl EaU7TY Type Conversion https://drive.google.com/open?id=1dJRKy4aA2FZwYRDl3AMUzm A915ZX0MR6 Operators https://drive.google.com/open?id=1nLH5AoA5bFm7pm99xxt8xQnv Arjhhwpg File Handling(2 links) https://www.sitesbay.com/cpp/cpp-file-handling https://drive.google.com/open?id=1dyeDfZZI0sT9yrhfRrYTPrNZZY s6eCHK Revision Feature of oops https://youtu.be/krDOalw6jfI Important Question of C++ https://drive.google.com/open?id=1cKdc8hCFpwyAoOTwPCbNB4L e3VoWq8il Exception Handling https://drive.google.com/open?id=1buMrbe79triIQ4RetQjV1OlX- Mz0gCWm B Prof. Shivangi Computer Assembly language https://drive.google.com/file/d/1IXrxWKigwVxeAcHsdmyxwK2tks2 Organization hlHTJ/view?usp=sharing Microprocessor https://drive.google.com/open?id=1Ij_9jugWRW40gIoTYuyVhQMS QQJGsYYB Virtual Memory Concept https://youtu.be/FhRJx33g8ew Register Transfer and micro- https://youtu.be/VdqlNp69FrE oprations https://youtu.be/YwzgXnAQdNU https://youtu.be/ObfrGBUB4uc https://youtu.be/mSIj078dzPI Booth's Algorithm for negative https://www.youtube.com/watch?v=ReQ8RSBvS3E number JK Flip Flop https://www.youtube.com/watch?v=-nFCMAtDm5I Online previous year question https://drive.google.com/open?id=1JB7shESpEIq8Ev_E0Af08TFJ3v paper discussion 6KIMwe previous year question paper https://drive.google.com/open?id=1JGbjajgXvh5ChRivfQD_rrPcuJ4a QYBo Fixed & Floating point https://drive.google.com/open?id=1JN3ve_0rAWn87qH6GgTEJJHr7 representation IlBInrZ Revision With previous year https://drive.google.com/open?id=1JGbjajgXvh5ChRivfQD_rrPcuJ4a Question Paper QYBo Micro-operations on zoom app https://drive.google.com/open?id=1JN3ve_0rAWn87qH6GgTEJJHr7 IlBInrZ Class – BCA 2 Section Teacher’s Subject Name of the Topic Web Link/ PDF Link/Any other Material Supplied Name A Prof. Munish DBMS Section wise full notes https://s.docworkspace.com/d/ABT05oSmvIklgdGIqrOdFA DBMS Cursor Management https://www.youtube.com/watch?v=Oj7344m_fy0 Exception Handling https://www.youtube.com/watch?v=jBzhLOCBuuA https://www.youtube.com/watch?v=lpExvX0qfag https://www.youtube.com/watch?v=k3xCWONvRxY DataBase Triggers https://www.youtube.com/watch?v=R3fvX_xf5P4 https://www.youtube.com/watch?v=-OR7zLzCh_I https://www.youtube.com/watch?v=i5fw-67P3XY Creating DataBase https://www.youtube.com/watch?v=mb6kNXE0QQ4 Users Joins https://www.youtube.com/watch?v=zYH-e6tUYbw Grant & Revoke https://www.youtube.com/watch?v=12ly1opuGTw Commands Condition control https://www.youtube.com/watch?v=MSzV8VELylk Statements in Pl\Sql Revision SQL Clauses https://www.youtube.com/watch?v=cXmrIJ98jkQ Group Function https://www.youtube.com/watch?v=Yr4pHPZCshA Normalization for https://www.youtube.com/watch?v=ABwD8IYByfk Revision B Prof. Navdeep DBMS Cursor Management https://www.youtube.com/watch?v=Oj7344m_fy0 Exception Handling https://www.youtube.com/watch?v=jBzhLOCBuuA https://www.youtube.com/watch?v=lpExvX0qfag https://www.youtube.com/watch?v=k3xCWONvRxY DataBase Triggers https://www.youtube.com/watch?v=R3fvX_xf5P4 https://www.youtube.com/watch?v=-OR7zLzCh_I https://www.youtube.com/watch?v=i5fw-67P3XY Creating DataBase https://www.youtube.com/watch?v=mb6kNXE0QQ4 Users Joins https://www.youtube.com/watch?v=zYH-e6tUYbw Grant & Revoke https://www.youtube.com/watch?v=12ly1opuGTw Commands Grant & Revoke https://youtu.be/m3QQ56xKr0k Commands Revision SQL Clauses https://www.youtube.com/watch?v=cXmrIJ98jkQ Group Function https://www.youtube.com/watch?v=Yr4pHPZCshA Normalization https://youtu.be/sXC7Js3RZIg Normalization for https://www.youtube.com/watch?v=ABwD8IYByfk Revision Both A & B Prof. Shivangi Operating System File Permissions https://www.guru99.com/file-permissions.html With Linux Important Question For https://drive.google.com/open?id=1InDj2xP26mqtLDSV263Zv7FYY7MVT revision MIC Backup in linux https://youtu.be/b2ucESEurTQ https://youtu.be/bp2hkmZdsDg Safety Algorithm https://www.youtube.com/watch?v=lWflxws2GVw DeadLock Mounting and https://linuxize.com/post/how-to-mount-and-unmount-file-systems-in-linux/ Unmounting file system changing group https://www.geeksforgeeks.org/chgrp-command-in-linux-with- ownership examples/amp/ Page Replacement https://www.youtube.com/watch?v=Ub4VVDGLJx0 Algorithms Umask & File Hierarchy https://www.computerhope.com/unix/uumask.htm https://www.geeksforgeeks.org/linux-file-hierarchy-structure/ Online Class (Demand https://drive.google.com/open?id=1J6bG8rY1KUW_KTCTd6GSnAOOld6Le Paging) JQk Online Class Virtual https://youtu.be/zxfccHcl1Ns memory previous year question https://drive.google.com/open?id=1IqPCVXhanIgimMBPcNjITrYhsOCZcpQ paper V https://drive.google.com/open?id=1InMN53k8KpXDdYnEClDivGowxbJmrI dy Vi-Editor with online https://youtu.be/zxfccHcl1Ns Class Both A & B Prof. Muskan Software Project Software Evolution https://drive.google.com/file/d/1VFFdX85YuYdZyXlX-TfKqm2Zg- Management techniques 10bX6A/view?usp=sharing https://drive.google.com/file/d/1LDTbcb2ao9YlliFQbQLdKi9E9tBXMgC9/v iew?usp=sharing https://drive.google.com/file/d/1gP50CrWNH4BymA5iS73QOBGuo4TGtt1o /view?usp=sharing https://drive.google.com/file/d/1YdV4BSVgRGoDp7p5xkE4iegfKDp867U8/ view?usp=sharing Cost Management https://drive.google.com/open?id=12N1k491LeH0TjH6WZwK5c3P41ZqgDx EY Budgeting and Cost https://drive.google.com/file/d/12EGFGAlpoVlZlVn3ztrjZghDkYfKyw- Control j/view?usp=sharing Tools and Techniques of https://drive.google.com/file/d/12J9XJOpwc9SKslmmyp4C4a8XrokhuYRx/v cost management iew?usp=sharing COCOMO Model https://drive.google.com/file/d/12I9K0b3Y3D4TGavH8bcbu1uzlrwKKwhY/ view?usp=sharing Critical paths https://youtu.be/uCR2x-VyxLg Project Organization
Recommended publications
  • End-User Debugging for E-Commerce
    End-User Debugging for E-Commerce Henry Lieberman Earl Wagner MIT Media Lab 20 Ames St, Cambridge, MA 02139 USA {lieber, ewagner}@media.mit.edu ABSTRACT another phone number to be dialed. It might ask for card numbers or transaction numbers that aren’t readily at hand, and have to One of the biggest unaddressed challenges for the digital looked up offline. If someone in customer service is successfully economy is what to do when electronic transactions go wrong. reached, that person (often a low-paid worker in a high-pressure Consumers are frustrated by interminable phone menus, and long call center) may specify a tedious process to be performed. They delays to problem resolution. Businesses are frustrated by the may not be empowered to actually understand or fix the problem high cost of providing quality customer service. themselves. Customers find themselves bounced endlessly from We believe that many simple problems, such as mistyped one support person to another. All of us have had these kinds of numbers or lost orders, could be easily diagnosed if users were experiences. supplied with end-user debugging tools, analogous to tools for Customer service problems are incredibly frustrating. Not only do software debugging. These tools can show the history of actions they cause frustration about the immediate transaction, they also and data, and provide assistance for keeping track of and testing poison the relationship between customers and vendors. hypotheses. These tools would benefit not only users, but Customers feel like they are being deflected, that they are not businesses as well by decreasing the need for customer service.
    [Show full text]
  • Relationships Between Category Theory and Functional Programming with an Application
    Turkish Journal of Mathematics Turk J Math (2019) 43: 1566 – 1577 http://journals.tubitak.gov.tr/math/ © TÜBİTAK Research Article doi:10.3906/mat-1807-189 Relationships between category theory and functional programming with an application Alper ODABAŞ∗,, Elis SOYLU YILMAZ, Department of Mathematics and Computer Sciences, Faculty of Arts and Sciences, Eskişehir Osmangazi University, Eskişehir, Turkey Received: 25.07.2018 • Accepted/Published Online: 08.04.2019 • Final Version: 29.05.2019 Abstract: The most recent studies in mathematics are concerned with objects, morphisms, and the relationship between morphisms. Prominent examples can be listed as functions, vector spaces with linear transformations, and groups with homomorphisms. Category theory proposes and constitutes new structures by examining objects, morphisms, and compositions. Source and target of a morphism in category theory corresponds to input and output in programming language. Thus, a connection can be obtained between category theory and functional programming languages. From this point, this paper constructs a small category implementation in a functional programming language called Haskell. Key words: Category theory, functional programming, Haskell 1. Introduction Eilenberg and MacLane ([7]) are the pioneers who built the structures of the categories, functors, and natural transformations which are revealed first in 1945. A broader literature review reveals an important connection between homology and theoretical homology theory. These findings relieve mathematics from theoretical constraint and enables branches of science to involve the above relationship. The most significant transition in computer science is between category theory and computation. Oneof the most important aspects of computation is composing the new functions or modules by using the primitive functions, recursive structures, etc.
    [Show full text]
  • On the Cognitive Prerequisites of Learning Computer Programming
    On the Cognitive Prerequisites of Learning Computer Programming Roy D. Pea D. Midian Kurland Technical Report No. 18 ON THE COGNITIVE PREREQUISITES OF LEARNING COMPUTER PROGRAMMING* Roy D. Pea and D. Midian Kurland Introduction Training in computer literacy of some form, much of which will consist of training in computer programming, is likely to involve $3 billion of the $14 billion to be spent on personal computers by 1986 (Harmon, 1983). Who will do the training? "hardware and software manu- facturers, management consultants, -retailers, independent computer instruction centers, corporations' in-house training programs, public and private schools and universities, and a variety of consultants1' (ibid.,- p. 27). To date, very little is known about what one needs to know in order to learn to program, and the ways in which edu- cators might provide optimal learning conditions. The ultimate suc- cess of these vast training programs in programming--especially toward the goal of providing a basic computer programming compe- tency for all individuals--will depend to a great degree on an ade- quate understanding of the developmental psychology of programming skills, a field currently in its infancy. In the absence of such a theory, training will continue, guided--or to express it more aptly, misguided--by the tacit Volk theories1' of programming development that until now have served as the underpinnings of programming instruction. Our paper begins to explore the complex agenda of issues, promise, and problems that building a developmental science of programming entails. Microcomputer Use in Schools The National Center for Education Statistics has recently released figures revealing that the use of micros in schools tripled from Fall 1980 to Spring 1983.
    [Show full text]
  • Should C Replace FORTRAN As the Language of Scientific Programming?
    Should C Replace FORTRAN as the Language of Scientific Programming? Linda Wharton CSCI 5535 Fall 1995 Abstract Anti-FORTRAN sentiment has recently become more prevalent. Where does the attitude originate? The most probable source is academia, where C and C++ are the languages of choice. Is there a fact based justification for the attitude? FORTRAN and C are evaluated to determine whether C is a better language than FORTRAN for scientific programming. The features of FORTRAN 77, FORTRAN 90, C and C++ are compared, and evaluated as to how well they meet the requirements of the scientific programming domain. FORTRAN was designed specifically for numerical programming, and thus better meets the requirements. Three algorithms in the scientific domain are coded in both FORTRAN and C. They are evaluated on performance, readability of the code and optimization potential. In all cases the FORTRAN implementations proved superior. Is there evidence to mandate that all upgrades and new development should be done in C, rather than FORTRAN? A good computer programmer can solve any given problem in any language, however it is best to code in the language specifically designed for the problem domain. In the case of scientific programming, that language is FORTRAN. 1 Introduction In the computer arena related to scientific programming, a prevalent attitude seems to be that FORTRAN is obsolete, and C should be used as a replacement language. I am employed as a programmer that supports meteorological research. Most of the programming code I work with is written in FORTRAN. Within the course of my work, I continually encounter prejudice against FORTRAN.
    [Show full text]
  • Is Intermediate-Level Conversation the Key to the Pair Programming Success Story?
    ‘Talking the talk’: Is intermediate-level conversation the key to the pair programming success story? S. Freudenberg (née Bryant), P. Romero, B. du Boulay IDEAS Laboratory, University of Sussex [email protected] Abstract One possible method of taming the complexity of software development may be to work collaboratively. Pair programming claims to provide benefits over In fact, one form of collaborative programming has and above those offered by a programmer working now been formalised as ‘pair programming’, one of the alone. In particular, a number of studies have core practices of the Extreme Programming (XP) suggested that pair programming improves software methodology. In pair programming, “all production quality. The literature speculates that the ‘driver’ (the code is written with two people working at one programmer currently typing in the code) and machine, with one keyboard and one mouse” (Beck, ‘navigator’ work together in a complimentary manner, 2000). and that the nature of these roles may be key in A wide range of studies have considered the realizing the reported benefits. Here we dispute two of benefits of pair programming in terms of its effect on these existing claims: (i) That the navigator providing the quality of the resulting software. These studies a ‘continual review’ of the drivers work and have taken place in both academic and commercial highlighting errors (i.e. acting as a reviewer); (ii) That environments. In the commercial arena two studies are the navigator is focused on a higher level of particularly note-worthy: Nosek (1998), who showed abstraction that the driver (i.e. acting as a foreman).
    [Show full text]
  • A Language and System for Composing Autonomous, Heterogeneous and Distributed Megamodules
    A Language and System for Composing Autonomous, Heterogeneous and Distributed Megamodules Dorothea Beringer, Catherine Tornabene, Pankaj Jain, Gio Wiederhold Stanford University, Computer Science Departement, Stanford, CA 94306, USA {beringer, catherin, pjain, gio}@db.stanford.edu Abstract characteristics: The components and the client program using these components are written in the same language, New levels of software composition become possible or at least in languages on the same abstraction level. The through advances in distributed communication services. components are operated and maintained together with the In this paper we focus on the composition of megamodules, application using them. Also, the components are often which are large distributed components or computation created together, and they form a coherent library. The servers that are autonomously operated and maintained. application and the components share a common ontology The composition of megamodules offers various and computing infrastructure. In case of distributed challenges. Megamodules are not necessarily all components, one common distribution system is used, e.g. accessible by the same distribution protocol (such as either DCE [2], CORBA [3], RMI [4], or DCOM [5]. CORBA, DCOM, RMI and DCE). Their concurrent nature and potentially long duration of service execution Megamodules differ from these kind of components in necessitates asynchronous invocation and collection of various aspects. Since they are larger, and marketed as results. Novel needs and opportunities for optimization services by autonomous providers, we must assume that arise when composing megamodules. In order to meet megamodules not only encapsulate data and procedures, these challenges, we have defined a purely compositional they encapsulate data, behavior, knowledge, concurrency language called CHAIMS, and are now developing the and ontology [6].
    [Show full text]
  • A Little Language for Testing
    A Little Language for Testing Alex Groce and Jervis Pinto School of Electrical Engineering and Computer Science Oregon State University, Corvallis, OR Abstract. The difficulty of writing test harnesses is a major obstacle to the adoption of automated testing and model checking. Languages designed for harness definition are usually tied to a particular tool and unfamiliar to programmers; moreover, such languages can limit expres- siveness. Writing a harness directly in the language of the software under test (SUT) makes it hard to change testing algorithms, offers no support for the common testing idioms, and tends to produce repetitive, hard- to-read code. This makes harness generation a natural fit for the use of an unusual kind of domain-specific language (DSL). This paper defines a template scripting testing language, TSTL, and shows how it can be used to produce succinct, readable definitions of state spaces. The concepts underlying TSTL are demonstrated in Python but are not tied to it. 1 Introduction Building a test harness is an often irksome task many users of formal methods or automated testing face from time to time [18,12]. The difficulty of harness gen- eration is one reason for the limited adoption of sophisticated testing and model checking by the typical developer who writes unit tests. This is unfortunate, as even simple random testing can often uncover subtle faults. The \natural" way to write a test harness is as code in the language of the Software Under Test (SUT). This is obviously how most unit tests are written, as witnessed by the proliferation of tools like JUnit [3] and its imitators (e.g., PyUnit, HUnit, etc.).
    [Show full text]
  • XP: Taking the Psychology of Programming to the Extreme
    In E. Dunican & T.R.G. Green (Eds). Proc. PPIG 16 Pages 121-132 XP: Taking the psychology of programming to the eXtreme Sallyann Bryant IDEAS Laboratory University of Sussex [email protected] Keywords: Extreme Programming, XP, pair programming, metaphor, external representation Abstract Extreme Programming (XP) is a software development methodology which is growing in popularity and commercial use. Despite a number of published experience reports and a small number of studies, predominantly in an academic environment, our knowledge about how and why some aspects of it work is still in its infancy. One major limitation of many of these studies is a failure to question why the practices of XP appear to work or fail. This paper reviews the research on Extreme Programming and suggests further work is required in order to ascertain how these practices fit into the framework of existing knowledge on the psychological aspects of programming. Introduction Much progress has been made in terms of our knowledge and understanding of the manner in which computer systems are both produced and used. Studies of subjects ranging from the use of metaphor in user interface design (Marcus, 1997) to the implications of collaborative systems (Crabtree, 2003) and from debugging Java programs (Romero et al. 2002) to using external representations in systems design (Petre, 2003) have allowed researchers to start to uncover the psychological aspects and processes underlying our behaviours when working on or with IT. Relatively recently, Extreme Programming has been introduced as a new way of approaching the production of software. Extreme Programming is a form of ‘agile development’, defined by the Agile Alliance Manifesto (2004) as valuing: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan.
    [Show full text]
  • UC Irvine ICS Technical Reports
    UC Irvine ICS Technical Reports Title Domain engineering for software reuse Permalink https://escholarship.org/uc/item/2h12m682 Author Arango, Guillermo F. Publication Date 1988 Peer reviewed eScholarship.org Powered by the California Digital Library University of California RTP086 UNIVERSITY OF CALIFORNIA Irvine Domain Engineering for Software Reuse Technical Report 88-27 A dissertation submitted in partial satisfaction of the requirements for the degree Doctor of Philosophy in Information and Computer Science by Guillermo F. Arango -~' -~ r'"~·. Notice: This Material Committee in charge: may be protected. Professor Peter Freeman, Chair by Copyright Law Professor Richard Selby (Title 17 U.S.C.) Professor Peter Woodruff 1988 @1988 GUILLERMO F. ARANGO ALL RIGHTS RESERVED Contents 1 Introduction 1 1.1 Background-reusable software engineering 1 1.2 The technological components of reuse . 3 1.3 Problem definition . 4 1. 3 .1 The domain engineering process 4 1.3.2 Practical domain analysis 5 1.4 Thesis ............. 6 1.5 Results . 8 1.6 Outline of the dissertation ... 10 2 A Context for Domain Analysis 13 2.1 An historical sketch . 13 2.2 Domain-specific reuse ..... 15 2.2.1 Power versus Generality . 15 2.2.2 Extensible languages .. .i6 2.2.3 Domain networks and local formalisms .. 17 2.3 Case studies in domain-specific reuse . 19 2.3.1 The development of the CORE graphics standard . 20 2.3.2 Draco--An application gene~ator generator . 20 2.3.3 "Little languages" and application generators . 21 2.3.4 Libraries of domain-specific components .... 22 2.3.5 Specification acquisition in KATE .
    [Show full text]
  • Semantic Component Composition
    Semantic Component Composition Joseph R. Kiniry Department of Computer Science California Institute of Technology Mailstop 256-80 Pasadena, CA 91125 [email protected] ABSTRACT General Terms Building complex software systems necessitates the use of specification languages, formal methods, kind theory, reuse, component-based architectures. In theory, of the set of com- glue-code generation, automatic programming, domain-specific ponents needed for a design, only some small portion of languages them are “custom”; the rest are reused or refactored existing pieces of software. Unfortunately, this is an idealized situ- 1. INTRODUCTION ation. Just because two components should work together Modern software systems are increasingly complicated. Com- does not mean that they will work together. bine new technologies, complex architectures, and incredi- ble amounts of legacy code, and you have systems that no The “glue” that holds components together is not just tech- one can even partially comprehend. As complexity rises, nology. The contracts that bind complex systems together code quality drops and system reliability suffers. implicitly define more than their explicit type. These “con- ceptual contracts” describe essential aspects of extra-system Building reliable complex systems necessitates the use of semantics: e.g., object models, type systems, data represen- excellent software engineering practices and tools. But even tation, interface action semantics, legal and contractual obli- with this bag of tricks, the modern software engineer is of- gations, and more. ten overwhelmed with the technological problems inherent in building such complex systems. Most projects have to Designers and developers spend inordinate amounts of time support multiple programming languages and models, deal technologically duct-taping systems to fulfill these concep- with several different architectures (both hardware and soft- tual contracts because system-wide semantics have not been ware), have distributed and concurrent subsystems, and must rigorously characterized or codified.
    [Show full text]
  • A Domain Analysis of Data Structure and Algorithm Explanations in the Wild
    A Domain Analysis of Data Structure and Algorithm Explanations in the Wild Jeffrey Young Eric Walkingshaw Oregon State University Oregon State University School of EECS School of EECS Corvallis, Oregon, USA Corvallis, Oregon, USA ABSTRACT figures. Explanation artifacts for algorithms are interesting because Explanations of data structures and algorithms are complex interac- they typically present a complex interaction among many different tions of several notations, including natural language, mathematics, notations, including natural language, mathematics, pseudocode, pseudocode, and diagrams. Currently, such explanations are cre- executable code, various kinds of diagrams, animations, and more. ated ad hoc using a variety of tools and the resulting artifacts are Currently, explanation artifacts for algorithms are created ad static, reducing explanatory value. We envision a domain-specific hoc using a variety of tools and techniques, and the resulting ex- language for developing rich, interactive explanations of data struc- planations tend to be static, reducing their explanatory value. Al- tures and algorithms. In this paper, we analyze this domain to though there has been a substantial amount of work on algorithm sketch requirements for our language. We perform a grounded the- visualization [8, 9, 11–13, 19], and tools exist for creating these ory analysis to generate a qualitative coding system for explanation kinds of supporting artifacts, there is no good solution for creat- artifacts collected online. This coding system implies a common ing integrated, multi-notational explanations as a whole. Similarly, structure among explanations of algorithms and data structures. although some algorithm visualization tools provide a means for We believe this structure can be reused as the semantic basis of the student to tweak the parameters or inputs to an algorithm to a domain-specific language for creating interactive explanation generate new visualizations, they do not support creating cohesive artifacts.
    [Show full text]
  • Towards a First Vertical Prototyping of an Extremely Fine-Grained Parallel
    Towards a First Vertical Prototyping of an Extremely Fine-grained Parallel Programming Approach Dorit Naishlos1 * †, Joseph Nuzman2 3 * , Chau-Wen Tseng1 3 , Uzi Vishkin2 3 4 * 1 Dept of Computer Science, University of Maryland, College Park, MD 20742 2 Dept of Electrical and Computer Engineering, University of Maryland, College Park, MD 20742 3 University of Maryland Institute of Advanced Computer Studies, College Park, MD 20742 4 Dept of Computer Science, Technion - Israel Institute of Technology, Haifa 32000, Israel Tel: 301-405-8010, Fax: 301-405-6707 {dorit, jnuzman, tseng, vishkin}@cs.umd.edu ABSTRACT the limited amount of instruction-level parallelism (ILP) present in programs, and the difficulties to uncover it [12] [20] prevent Explicit-multithreading (XMT) is a parallel programming computers from fully exploiting the available on-chip resources. approach for exploiting on-chip parallelism. XMT introduces a An alternative source of parallelism is at the level of coarse- computational framework with 1) a simple programming style grained multithreading, and has been traditionally expressed that relies on fine-grained PRAM-style algorithms; 2) hardware under the shared memory or the message-passing programming support for low-overhead parallel threads, scalable load models, either directly by programmers, or with the aid of balancing, and efficient synchronization. The missing link parallelizing compilers. between the algorithmic-programming level and the architecture level is provided by the first prototype XMT compiler. This Two interesting representative design points for multi-threaded paper also takes this new opportunity to evaluate the overall single-chip architectures are: chip multiprocessors (CMP) such effectiveness of the interaction between the programming model as the Stanford Hydra [11], and Simultaneous Multithreading and the hardware, and enhance its performance where needed, (SMT) [17].
    [Show full text]