This session. Abstract Data Types. Modularisation. Naming modules. Functional Programming and Reasoning
|
|
- Catherine George
- 7 years ago
- Views:
Transcription
1 This session Functional Programming and Reasoning Dr Hans Georg Schaathun University of Surrey After this session, you should be able to use ADT-s in software design be able to implement simple ADT-s in haskell based on a specification Spring 2010 Week 4 Dr Hans Georg Schaathun Spring 2010 Week 4 1 / 32 Dr Hans Georg Schaathun Spring 2010 Week 4 3 / 32 Modularisation Naming modules Divide large problems into smaller ones solve each subproblem separately Functions is one way to split large programs But large programs, with many functions, would still be hard to structure allow you to split programs into multiple files Each file is one module module Ant where It is good practice to give your modules a name The filename should match the module name the Ant module resides in Ant.hs This is necessary to import the module into another Dr Hans Georg Schaathun Spring 2010 Week 4 5 / 32 Dr Hans Georg Schaathun Spring 2010 Week 4 6 / 32
2 Sample module Importing modules module Ant where import Insect data Ants = Queen Int Float Worker Float anteater x = x - 1 import Insect Whenever you need functions from a module you import it Access to all functions in the module Dr Hans Georg Schaathun Spring 2010 Week 4 7 / 32 Dr Hans Georg Schaathun Spring 2010 Week 4 8 / 32 Import Controls Program versus module Limited imports import Ant ( Ants(..) ) Excluding functions import Ant hiding ( anteater ) import Prelude hiding ( words ) Fully qualified names import qualified Ant Ant.anteater Local name import Insect as Ant importing Ant, but calling it Insect All of these techniques may be important to avoid name clashes but you don t need them for now We have not yet written a program only modules The hugs command line allows us to test modules we can evaluate any expression testing any function in the module A program needs to know what to evaluate that is an object main in a module Main Dr Hans Georg Schaathun Spring 2010 Week 4 9 / 32 Dr Hans Georg Schaathun Spring 2010 Week 4 10 / 32
3 The Main module Sample Main module A program needs a top-level module Main module Main where Defining an expression main this expression is evaluated when the program is run The main expression must be an IO type we will discuss how to do this later (Week 9?) Such a program can be run as a script runhugs main.hs or compiled using the Glasgow Haskell Compiler module Main where data Shape = Circle Float Rectangle Float Float area :: Shape -> Float area (Circle r) = pi*r^2 area (Rectangle x y) = x*y s :: Shape s = Circle 2.3 main = print (area s) Dr Hans Georg Schaathun Spring 2010 Week 4 11 / 32 Dr Hans Georg Schaathun Spring 2010 Week 4 12 / 32 Software design Which modules? Encapsulation Each module should have a clear purpose clear scope documentation Main contains the main routine only definitions particular to this programme separate modules for reusable functions Often, one module for each data type including functions on the data type Think about how you split the program into modules A module often contains many definitions only a few are docuemented intended for use in importing modules many auxiliary definitions and features for internal use This causes problems information overload for the programmer using the module name clashes with other modules Good practice: hide all unnecessary definitions Dr Hans Georg Schaathun Spring 2010 Week 4 13 / 32 Dr Hans Georg Schaathun Spring 2010 Week 4 15 / 32
4 Example Inventory of a Store Abstract Datatype A data type to hold a library catalogue Possibly type Library = [(Book,Int)] using your Book type from the exercises storing the number of copies Do you need to know how the type is implemented? No. You need to know the functions working on the type. getstock :: Library -> Book -> Int initial :: Library (empty library) addbook :: Library -> Book -> Library All functionality available via the functions You do not need to know the implementation data Library = Lib [ (Book,Int) ], or data Library = Lib (Book -> Int) An abstract data type (ADT) is a type which can only be accessed or manipulated using a limited set of clearly defined functions. New functions must be defined in terms of the primitive functions No direct access to the data many things will be impossible This prevents abuse of the data type and thus prevents many errors Dr Hans Georg Schaathun Spring 2010 Week 4 16 / 32 Dr Hans Georg Schaathun Spring 2010 Week 4 17 / 32 Defining an ADT Export Controls module Library( Library, initial, getstock, addbook ) where We list explicitely which names to export The type Library is exported its constructors are not Exported functions (initial, getstock, addbook) gives access to the type This Haskell s ADT mechanism Export Controls can be used in different ways ADT-s are special in that the constructors are hidden module Library( Library(..), initial, getstock, addbook ) where (..) means that the constructors should be exported as well this is not an ADT You can choose (almost) freely what to export Dr Hans Georg Schaathun Spring 2010 Week 4 18 / 32 Dr Hans Georg Schaathun Spring 2010 Week 4 19 / 32
5 Classes and Instances Advantages of ADT-s Defining an ADT, you will often want to overload standard functions instance Show Library where Such instances are always exported Inherent properties of the data type cannot be hidden Interchangeable different implementations of the same ADT can be interchanged... as long as the specification is the same Delegate the implementation if you agree on the interface (functions) you know it will work with other modules Updates with backwards compatibility add features while continuing to support old ones Dr Hans Georg Schaathun Spring 2010 Week 4 20 / 32 Dr Hans Georg Schaathun Spring 2010 Week 4 21 / 32 example Library catalogue A specification is a careful description of a program or module formal specification languages (such as Z) natural language It defines exactly how the module is intended to work exactly which functions are supported A type Library storing records of books number of copies per book Required functions addbook :: Library -> Book -> Library add a new book to the library if the book exists already, increase number of copies initial :: Library return a Library with no books getstock :: Library -> Book -> Int given a book return Dr Hans Georg Schaathun Spring 2010 Week 4 23 / 32 Dr Hans Georg Schaathun Spring 2010 Week 4 24 / 32
6 Why use specification Data structures Software projects are big communication and collaboration essential Agreeing on specifications allow independent implementation One person can implement the ADT Others can write modules using the ADT It is important to be able to program strictly to specifications otherwise the modules won t fit together ADT-s are common for defining e.g. lists, queues, stacks, heaps, etc. Holding large quantities of data Different functions for data processing and access sorting searching last/first element Dr Hans Georg Schaathun Spring 2010 Week 4 25 / 32 Dr Hans Georg Schaathun Spring 2010 Week 4 27 / 32 Example: Queue Different ways to define data types First in, first out Insert elements at the end of the queue Retrieve elements from the head of the queue Usually no searching ADT functions emptyq (create empty queue) isemptyq (is the queue empty?) addq (add element) remq (remove/retrieve element) data NewType = Cons1 T11 T12... Cons2 T21 T algebraic data type as discussed the most flexible construct newtype NewType = Cons1 T1 special case with only one constructor and one argument more efficient (internally) than data otherwise equivalent type NewType =... alias for another data type often tupples no type checking between the alias and the original type Dr Hans Georg Schaathun Spring 2010 Week 4 28 / 32 Dr Hans Georg Schaathun Spring 2010 Week 4 29 / 32
7 Queue Implementation Summary Closing module Queue(Queue,emptyQ,isEmptyQ,addQ,remQ) where newtype Queue a = Qu [a] -- parameterised emptyq - Qu [] isemptyq (Qu []) = True isemptyq _ = False addq x (Qu xs) = Qu ( xs++[x] ) remq Qu ([]) = error "Cannot remove from empty queue" remq Qu (x:xs) = (x,xs) Module allows structuring your program An ADT is a module with a carefully controlled interface The coursework will require an ADT you are given a front-end module have to implement the ADT strictly to specification the use of ADT-s ensure compatibility Dr Hans Georg Schaathun Spring 2010 Week 4 30 / 32 Dr Hans Georg Schaathun Spring 2010 Week 4 32 / 32
The Clean programming language. Group 25, Jingui Li, Daren Tuzi
The Clean programming language Group 25, Jingui Li, Daren Tuzi The Clean programming language Overview The Clean programming language first appeared in 1987 and is still being further developed. It was
More informationRegular Expressions and Automata using Haskell
Regular Expressions and Automata using Haskell Simon Thompson Computing Laboratory University of Kent at Canterbury January 2000 Contents 1 Introduction 2 2 Regular Expressions 2 3 Matching regular expressions
More informationNPV Versus IRR. W.L. Silber -1000 0 0 +300 +600 +900. We know that if the cost of capital is 18 percent we reject the project because the NPV
NPV Versus IRR W.L. Silber I. Our favorite project A has the following cash flows: -1 + +6 +9 1 2 We know that if the cost of capital is 18 percent we reject the project because the net present value is
More informationEmbedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive
More informationFunctional Programming
FP 2005 1.1 3 Functional Programming WOLFRAM KAHL kahl@mcmaster.ca Department of Computing and Software McMaster University FP 2005 1.2 4 What Kinds of Programming Languages are There? Imperative telling
More information1998. (R. Bird and P. Wadler, Introduction to Functional Programming, Prentice
Mathematical Structures in Programs 15 Algebra) The Shorter Oxford English Dictionary): the reunion of broken parts a calculus of symbols combined according to defined laws Haskell 3 4 Richard Bird. Introduction
More informationCS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
More informationCMSC 202H. ArrayList, Multidimensional Arrays
CMSC 202H ArrayList, Multidimensional Arrays What s an Array List ArrayList is a class in the standard Java libraries that can hold any type of object an object that can grow and shrink while your program
More informationQUEUES. Primitive Queue operations. enqueue (q, x): inserts item x at the rear of the queue q
QUEUES A queue is simply a waiting line that grows by adding elements to its end and shrinks by removing elements from the. Compared to stack, it reflects the more commonly used maxim in real-world, namely,
More informationLecture 12: Abstract data types
Lecture 12: Abstract data types Algebras Abstract data types Encapsulation and information hiding Parameterization Algebras Definition Which kinds of data do we want to discuss? What can we do with it?
More information1 Organization of Operating Systems
COMP 730 (242) Class Notes Section 10: Organization of Operating Systems 1 Organization of Operating Systems We have studied in detail the organization of Xinu. Naturally, this organization is far from
More informationD06 PROGRAMMING with JAVA. Ch3 Implementing Classes
Cicles Formatius de Grau Superior Desenvolupament d Aplicacions Informàtiques D06 PROGRAMMING with JAVA Ch3 Implementing Classes PowerPoint presentation, created by Angel A. Juan - ajuanp(@)gmail.com,
More informationMultichoice Quetions 1. Atributes a. are listed in the second part of the class box b. its time is preceded by a colon. c. its default value is
Multichoice Quetions 1. Atributes a. are listed in the second part of the class box b. its time is preceded by a colon. c. its default value is preceded by an equal sign d. its name has undereline 2. Associations
More informationMethod To Solve Linear, Polynomial, or Absolute Value Inequalities:
Solving Inequalities An inequality is the result of replacing the = sign in an equation with ,, or. For example, 3x 2 < 7 is a linear inequality. We call it linear because if the < were replaced with
More informationGlossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
More information15-150 Lecture 11: Tail Recursion; Continuations
15-150 Lecture 11: Tail Recursion; Continuations Lecture by Dan Licata February 21, 2011 In this lecture we will discuss space usage: analyzing the memory it takes your program to run tail calls and tail
More informationData Structures Using C++ 2E. Chapter 5 Linked Lists
Data Structures Using C++ 2E Chapter 5 Linked Lists Test #1 Next Thursday During Class Cover through (near?) end of Chapter 5 Objectives Learn about linked lists Become aware of the basic properties of
More informationPART-A Questions. 2. How does an enumerated statement differ from a typedef statement?
1. Distinguish & and && operators. PART-A Questions 2. How does an enumerated statement differ from a typedef statement? 3. What are the various members of a class? 4. Who can access the protected members
More informationCS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team
CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A
More information09336863931 : provid.ir
provid.ir 09336863931 : NET Architecture Core CSharp o Variable o Variable Scope o Type Inference o Namespaces o Preprocessor Directives Statements and Flow of Execution o If Statement o Switch Statement
More informationTesting and Tracing Lazy Functional Programs using QuickCheck and Hat
Testing and Tracing Lazy Functional Programs using QuickCheck and Hat Koen Claessen 1, Colin Runciman 2, Olaf Chitil 2, John Hughes 1, and Malcolm Wallace 2 1 Chalmers University of Technology, Sweden
More informationType Classes with Functional Dependencies
Appears in Proceedings of the 9th European Symposium on Programming, ESOP 2000, Berlin, Germany, March 2000, Springer-Verlag LNCS 1782. Type Classes with Functional Dependencies Mark P. Jones Department
More informationProgramming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions
COMP209 Object Oriented Programming Designing Classes 2 Mark Hall Programming by Contract (adapted from slides by Mark Utting) Preconditions Postconditions Class invariants Programming by Contract An agreement
More informationCompuScholar, Inc. Alignment to Utah's Computer Programming II Standards
CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards Course Title: TeenCoder: Java Programming Course ISBN: 978 0 9887070 2 3 Course Year: 2015 Note: Citation(s) listed may represent
More informationMark Scheme (Results) November 2013. Pearson Edexcel GCSE in Mathematics Linear (1MA0) Higher (Non-Calculator) Paper 1H
Mark Scheme (Results) November 2013 Pearson Edexcel GCSE in Mathematics Linear (1MA0) Higher (Non-Calculator) Paper 1H Edexcel and BTEC Qualifications Edexcel and BTEC qualifications are awarded by Pearson,
More information13 Classes & Objects with Constructors/Destructors
13 Classes & Objects with Constructors/Destructors 13.1 Introduction In object oriented programming, the emphasis is on data rather than function. Class is a way that binds the data & function together.
More informationVariable Base Interface
Chapter 6 Variable Base Interface 6.1 Introduction Finite element codes has been changed a lot during the evolution of the Finite Element Method, In its early times, finite element applications were developed
More informationPhilosophy of GIMnet
Philosophy of GIMnet Software Modularity and Reusability through Service Oriented Architecture and Hardware Abstraction Introduction GIMnet MaCI GIMnet = tcphub + GIMI Enables communication between distributed
More informationMoving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
More informationC++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
More informationBCS2B02: OOP Concepts and Data Structures Using C++
SECOND SEMESTER BCS2B02: OOP Concepts and Data Structures Using C++ Course Number: 10 Contact Hours per Week: 4 (2T + 2P) Number of Credits: 2 Number of Contact Hours: 30 Hrs. Course Evaluation: Internal
More information3. Mathematical Induction
3. MATHEMATICAL INDUCTION 83 3. Mathematical Induction 3.1. First Principle of Mathematical Induction. Let P (n) be a predicate with domain of discourse (over) the natural numbers N = {0, 1,,...}. If (1)
More informationTime Limit: X Flags: -std=gnu99 -w -O2 -fomitframe-pointer. Time Limit: X. Flags: -std=c++0x -w -O2 -fomit-frame-pointer - lm
Judge Environment Language Compilers Language Version Flags/Notes Max Memory Limit C gcc 4.8.1 Flags: -std=gnu99 -w -O2 -fomit-frame-pointer - lm C++ g++ 4.8.1 Flags: -std=c++0x -w -O2 -fomit-frame-pointer
More informationManaging Variability in Software Architectures 1 Felix Bachmann*
Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA fb@sei.cmu.edu Len Bass Software Engineering Institute Carnegie
More informationLecture 2: Data Structures Steven Skiena. http://www.cs.sunysb.edu/ skiena
Lecture 2: Data Structures Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena String/Character I/O There are several approaches
More informationAnalysis of a Search Algorithm
CSE 326 Lecture 4: Lists and Stacks 1. Agfgd 2. Dgsdsfd 3. Hdffdsf 4. Sdfgsfdg 5. Tefsdgass We will review: Analysis: Searching a sorted array (from last time) List ADT: Insert, Delete, Find, First, Kth,
More informationIntroduction to Object-Oriented Programming
Introduction to Object-Oriented Programming Objects and classes Abstract Data Types (ADT) Encapsulation and information hiding Aggregation Inheritance and polymorphism OOP: Introduction 1 Pure Object-Oriented
More informationJohannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria
OBJECT-ORIENTED DOCUMENTATION C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria Abstract Object-oriented programming improves the reusability of software
More informationPOLYTYPIC PROGRAMMING OR: Programming Language Theory is Helpful
POLYTYPIC PROGRAMMING OR: Programming Language Theory is Helpful RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: ralf@cs.uu.nl Homepage: http://www.cs.uu.nl/~ralf/
More informationName: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.
Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to
More informationSoftware Quality Factors OOA, OOD, and OOP Object-oriented techniques enhance key external and internal software quality factors, e.g., 1. External (v
Object-Oriented Design and Programming Deja Vu? In the past: Structured = Good Overview of Object-Oriented Design Principles and Techniques Today: Object-Oriented = Good e.g., Douglas C. Schmidt www.cs.wustl.edu/schmidt/
More informationCourse MS10975A Introduction to Programming. Length: 5 Days
3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: rwhitney@discoveritt.com Web: www.discoveritt.com Course MS10975A Introduction to Programming Length: 5 Days
More informationCISC 181 Project 3 Designing Classes for Bank Accounts
CISC 181 Project 3 Designing Classes for Bank Accounts Code Due: On or before 12 Midnight, Monday, Dec 8; hardcopy due at beginning of lecture, Tues, Dec 9 What You Need to Know This project is based on
More informationClasses and Objects in Java Constructors. In creating objects of the type Fraction, we have used statements similar to the following:
In creating objects of the type, we have used statements similar to the following: f = new (); The parentheses in the expression () makes it look like a method, yet we never created such a method in our
More informationCSc 372. Comparative Programming Languages. 21 : Haskell Accumulative Recursion. Department of Computer Science University of Arizona
1/18 CSc 372 Comparative Programming Languages 21 : Haskell Accumulative Recursion Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2013 Christian Collberg 2/18 Stack
More informationLibrary Intro AC800M
Library Intro AC800M Connecting Libraries Standard Custom Prepare Connect Application Library Data Types Blocks Modules Library Intro AC800M Connecting Libraries Standard Custom Prepare Connect Application
More informationIntroduction to Algorithms March 10, 2004 Massachusetts Institute of Technology Professors Erik Demaine and Shafi Goldwasser Quiz 1.
Introduction to Algorithms March 10, 2004 Massachusetts Institute of Technology 6.046J/18.410J Professors Erik Demaine and Shafi Goldwasser Quiz 1 Quiz 1 Do not open this quiz booklet until you are directed
More information2 SYSTEM DESCRIPTION TECHNIQUES
2 SYSTEM DESCRIPTION TECHNIQUES 2.1 INTRODUCTION Graphical representation of any process is always better and more meaningful than its representation in words. Moreover, it is very difficult to arrange
More informationObject Oriented Software Design II
Object Oriented Software Design II Introduction to C++ Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 20, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February
More informationMore C++ Concepts. Operator overloading Friend Function This Operator Inline Function
More C++ Concepts Operator overloading Friend Function This Operator Inline Function 1 Review There are different types of member functions in the definition of a class Accessor int Str :: get_length();
More informationYear 9 set 1 Mathematics notes, to accompany the 9H book.
Part 1: Year 9 set 1 Mathematics notes, to accompany the 9H book. equations 1. (p.1), 1.6 (p. 44), 4.6 (p.196) sequences 3. (p.115) Pupils use the Elmwood Press Essential Maths book by David Raymer (9H
More informationIntroduction to Programming System Design. CSCI 455x (4 Units)
Introduction to Programming System Design CSCI 455x (4 Units) Description This course covers programming in Java and C++. Topics include review of basic programming concepts such as control structures,
More informationInformation technology Programming languages Fortran Enhanced data type facilities
ISO/IEC JTC1/SC22/WG5 N1379 Working draft of ISO/IEC TR 15581, second edition Information technology Programming languages Fortran Enhanced data type facilities This page to be supplied by ISO. No changes
More informationDescription of Class Mutation Mutation Operators for Java
Description of Class Mutation Mutation Operators for Java Yu-Seung Ma Electronics and Telecommunications Research Institute, Korea ysma@etri.re.kr Jeff Offutt Software Engineering George Mason University
More informationKITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php info@kitestechnology.com technologykites@gmail.com Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
More informationAdvantage of Jquery: T his file is downloaded from
What is JQuery JQuery is lightweight, client side JavaScript library file that supports all browsers. JQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling,
More informationCSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues. Linda Shapiro Spring 2016
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Linda Shapiro Registration We have 180 students registered and others who want to get in. If you re thinking of dropping
More informationBinary compatibility for library developers. Thiago Macieira, Qt Core Maintainer LinuxCon North America, New Orleans, Sept. 2013
Binary compatibility for library developers Thiago Macieira, Qt Core Maintainer LinuxCon North America, New Orleans, Sept. 2013 Who am I? Open Source developer for 15 years C++ developer for 13 years Software
More information3.GETTING STARTED WITH ORACLE8i
Oracle For Beginners Page : 1 3.GETTING STARTED WITH ORACLE8i Creating a table Datatypes Displaying table definition using DESCRIBE Inserting rows into a table Selecting rows from a table Editing SQL buffer
More informationIntroduction to Data Structures
Introduction to Data Structures Albert Gural October 28, 2011 1 Introduction When trying to convert from an algorithm to the actual code, one important aspect to consider is how to store and manipulate
More informationIntroduction to Python
1 Daniel Lucio March 2016 Creator of Python https://en.wikipedia.org/wiki/guido_van_rossum 2 Python Timeline Implementation Started v1.0 v1.6 v2.1 v2.3 v2.5 v3.0 v3.1 v3.2 v3.4 1980 1991 1997 2004 2010
More informationData Structures Using C++ 2E. Chapter 5 Linked Lists
Data Structures Using C++ 2E Chapter 5 Linked Lists Doubly Linked Lists Traversed in either direction Typical operations Initialize the list Destroy the list Determine if list empty Search list for a given
More informationBitrix Site Manager 4.1. User Guide
Bitrix Site Manager 4.1 User Guide 2 Contents REGISTRATION AND AUTHORISATION...3 SITE SECTIONS...5 Creating a section...6 Changing the section properties...8 SITE PAGES...9 Creating a page...10 Editing
More informationChapter 5 Names, Bindings, Type Checking, and Scopes
Chapter 5 Names, Bindings, Type Checking, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Type Checking Strong Typing Scope Scope and Lifetime Referencing Environments Named
More informationManual English KOI Desktop App 2.0.x
Manual English KOI Desktop App 2.0.x KOI Kommunikation, Organisation, Information Comm-Unity EDV GmbH 2010 Contents Introduction... 3 Information on how to use the documentation... 3 System requirements:...
More informationSpecialized Programme on Web Application Development using Open Source Tools
Specialized Programme on Web Application Development using Open Source Tools Objective: At the end of the course, Students will be able to: Understand various open source tools(programming tools and databases)
More informationProblem of the Month: Cutting a Cube
Problem of the Month: The Problems of the Month (POM) are used in a variety of ways to promote problem solving and to foster the first standard of mathematical practice from the Common Core State Standards:
More informationAlgorithms and Data Structures
Algorithms and Data Structures Part 2: Data Structures PD Dr. rer. nat. habil. Ralf-Peter Mundani Computation in Engineering (CiE) Summer Term 2016 Overview general linked lists stacks queues trees 2 2
More informationStorage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas
CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage
More informationTutorial 1: The Freehand Tools
UNC Charlotte Tutorial 1: The Freehand Tools In this tutorial you ll learn how to draw and construct geometric figures using Sketchpad s freehand construction tools. You ll also learn how to undo your
More informationComputing Concepts with Java Essentials
2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann
More informationTopic VII. Data abstraction and modularity SML Modules a. References: Chapter 7 of ML for the working programmer (2ND
References: Topic VII Data abstraction and modularity SML Modules a Chapter 7 of ML for the working programmer (2ND EDITION) by L. C. Paulson. CUP, 1996. a Largely based on an Introduction to SML Modules
More informationThe ADT Binary Search Tree
The ADT Binary Search Tree The Binary Search Tree is a particular type of binary tree that enables easy searching for specific items. Definition The ADT Binary Search Tree is a binary tree which has an
More informationApplication Unit, MDRC AB/S 1.1, GH Q631 0030 R0111
, GH Q631 0030 R0111 SK 0010 B 98 The application unit is a DIN rail mounted device for insertion in the distribution board. The connection to the EIB is established via a bus connecting terminal at the
More informationLast Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
More informationApproach of Unit testing with the help of JUnit
Approach of Unit testing with the help of JUnit Satish Mishra mishra@informatik.hu-berlin.de About me! Satish Mishra! Master of Electronics Science from India! Worked as Software Engineer,Project Manager,Quality
More informationCreating Posters in Excel (2007 & 2010)
Creating Posters in Excel (2007 & 2010) Although it would be nice to have a poster printer in each of our homes and work areas, having such a tool is unfortunately not something that will become a reality
More informationSimplifying Algebraic Fractions
5. Simplifying Algebraic Fractions 5. OBJECTIVES. Find the GCF for two monomials and simplify a fraction 2. Find the GCF for two polynomials and simplify a fraction Much of our work with algebraic fractions
More information1 Abstract Data Types Information Hiding
1 1 Abstract Data Types Information Hiding 1.1 Data Types Data types are an integral part of every programming language. ANSI-C has int, double and char to name just a few. Programmers are rarely content
More informationPHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram.
PHP Code Design PHP is a server-side, open-source, HTML-embedded scripting language used to drive many of the world s most popular web sites. All major web servers support PHP enabling normal HMTL pages
More information3.1 Solving Systems Using Tables and Graphs
Algebra 2 Chapter 3 3.1 Solve Systems Using Tables & Graphs 3.1 Solving Systems Using Tables and Graphs A solution to a system of linear equations is an that makes all of the equations. To solve a system
More informationTraining Needs Analysis
Training Needs Analysis Microsoft Office 2007 Access 2007 Course Code: Name: Chapter 1: Access 2007 Orientation I understand how Access works and what it can be used for I know how to start Microsoft Access
More informationIF The customer should receive priority service THEN Call within 4 hours PCAI 16.4
Back to Basics Backward Chaining: Expert System Fundamentals By Dustin Huntington Introduction Backward chaining is an incredibly powerful yet widely misunderstood concept, yet it is key to building many
More information1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++
Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The
More informationAn overview of FAT12
An overview of FAT12 The File Allocation Table (FAT) is a table stored on a hard disk or floppy disk that indicates the status and location of all data clusters that are on the disk. The File Allocation
More informationObject-Oriented Databases
Object-Oriented Databases based on Fundamentals of Database Systems Elmasri and Navathe Acknowledgement: Fariborz Farahmand Minor corrections/modifications made by H. Hakimzadeh, 2005 1 Outline Overview
More informationHypothesis testing - Steps
Hypothesis testing - Steps Steps to do a two-tailed test of the hypothesis that β 1 0: 1. Set up the hypotheses: H 0 : β 1 = 0 H a : β 1 0. 2. Compute the test statistic: t = b 1 0 Std. error of b 1 =
More informationPrinciples of Economics: Micro: Exam #2: Chapters 1-10 Page 1 of 9
Principles of Economics: Micro: Exam #2: Chapters 1-10 Page 1 of 9 print name on the line above as your signature INSTRUCTIONS: 1. This Exam #2 must be completed within the allocated time (i.e., between
More informationChapter 3. Cartesian Products and Relations. 3.1 Cartesian Products
Chapter 3 Cartesian Products and Relations The material in this chapter is the first real encounter with abstraction. Relations are very general thing they are a special type of subset. After introducing
More informationThe Technology Behind a Graphical User Interface for an Equational Reasoning Assistant
The Technology Behind a Graphical User Interface for an Equational Reasoning Assistant Andy Gill Department of Computing Science, University of Glasgow Abstract The Haskell Equational Reasoning Assistant
More informationSemantic Checker (Part I)
Semantic Checker (Part I) Now, the coding (and the fun) begins. Your Parser fix: parser integration main statements i/o statments don't worry about: error recovery (possibly stripping those rules out)
More informationMATH 60 NOTEBOOK CERTIFICATIONS
MATH 60 NOTEBOOK CERTIFICATIONS Chapter #1: Integers and Real Numbers 1.1a 1.1b 1.2 1.3 1.4 1.8 Chapter #2: Algebraic Expressions, Linear Equations, and Applications 2.1a 2.1b 2.1c 2.2 2.3a 2.3b 2.4 2.5
More informationData Structures and Algorithms Lists
Data Structures and Algorithms Lists Chris Brooks Department of Computer Science University of San Francisco Department of Computer Science University of San Francisco p.1/19 5-0: Abstract Data Types An
More informationTwin A Design Pattern for Modeling Multiple Inheritance
Twin A Design Pattern for Modeling Multiple Inheritance Hanspeter Mössenböck University of Linz, Institute of Practical Computer Science, A-4040 Linz moessenboeck@ssw.uni-linz.ac.at Abstract. We introduce
More informationIDW -- The Next Generation Data Warehouse. Larry Bramblett, Data Warehouse Solutions, LLC, San Ramon, CA
Paper 170-27 IDW -- The Next Generation Larry Bramblett, Solutions, LLC, San Ramon, CA ABSTRACT systems collect, clean and manage mission critical information. Using statistical and targeted intelligence,
More informationLimitations of Data Encapsulation and Abstract Data Types
Limitations of Data Encapsulation and Abstract Data Types Paul L. Bergstein University of Massachusetts Dartmouth pbergstein@umassd.edu Abstract One of the key benefits provided by object-oriented programming
More informationINTRODUCTION The collection of data that makes up a computerized database must be stored physically on some computer storage medium.
Chapter 4: Record Storage and Primary File Organization 1 Record Storage and Primary File Organization INTRODUCTION The collection of data that makes up a computerized database must be stored physically
More informationMATLAB Programming. Problem 1: Sequential
Division of Engineering Fundamentals, Copyright 1999 by J.C. Malzahn Kampe 1 / 21 MATLAB Programming When we use the phrase computer solution, it should be understood that a computer will only follow directions;
More informationNumerical integration of a function known only through data points
Numerical integration of a function known only through data points Suppose you are working on a project to determine the total amount of some quantity based on measurements of a rate. For example, you
More information