TOWARDS A GREEN PROGRAMMING PARADIGM FOR MOBILE SOFTWARE DEVELOPMENT

Size: px
Start display at page:

Download "TOWARDS A GREEN PROGRAMMING PARADIGM FOR MOBILE SOFTWARE DEVELOPMENT"

Transcription

1 TOWARDS A GREEN PROGRAMMING PARADIGM FOR MOBILE SOFTWARE DEVELOPMENT Selvakumar Samuel Asia Pacific University of Technology and Innovation Technology Park Malaysia Bukit Jalil, Malaysia. selvakumar@apu.edu.my Dr. Arangasamy Kovalan Periyar Maniammai University Vallam, Thanjavur , Tamilnadu, India. kovapmu@gmail.com ABSTRACT This paper evaluates the features of mainstream programming paradigms. Imperative, object oriented programming and functional programming concepts are considered here. This is an effort to identify the programming paradigms which consume less resource from mobile devices. In general any programming language is a collection of API s which is mainly based on a core programming paradigm and a few other programming paradigms, for example Java programming language is based on Object oriented programming paradigm as a core and also integrated other imperative programming paradigms concepts. Designers usually depend on the programming languages, language oriented programming design is in current practice. Choosing appropriate programming paradigms during the mobile application design is not in practice now; Failure to use best approaches for mobile computing from programming paradigms will cause mobile applications to consume more mobile resources. Imperative paradigm concepts such as inheritance, creating redundant objects, unnecessary constructors, recursion, strings concatenation, thread synchronization, using global variables and abstract methods results in redundancy, memory leaks, stack overflow, low execution speed and consumes more memory. These features are relatively not suitable for mobile software development. Functional paradigm concepts such as higher order functions, tail recursion, lazy evaluation, referential transparency, parametric polymorphism, and list comprehension principles are suitable for mobile software development as they consume less memory and or use less processing power. Many modern programming languages such as Java, Scala, C#, F#, etc., support the fusion of object oriented and functional programming paradigms. Using appropriate paradigms on those programming languages will optimize the resource utilisation of mobile applications. KEYWORDS Green computing, Mobile Computing, Mobile Application Development, Programming Paradigms and Functional paradigm. 1. INTRODUCTION Presently, mobile devices are able to do things that are normally done with computers including desktops and laptops except for software development. The advantage of mobile devices is that it consumes much less power compared to computers hence if used for common computing need; it will save energy and contribute towards keeping our planet green. In programming, there are many paradigms that have been suggested and this keeps evolving, in order to suit the requirements of software development of the respective times. A paradigm defines a fundamental approach to design a solution for a given problem. Choosing an optimal paradigm will enhance the accuracy and performance of the solution. Mostly procedural, structural and object oriented features are common when we use languages like Java, C#, C++, Objective C etc. for mobile software development. Inappropriate use of paradigms consuming more resources while running the mobile applications in mobile devices. Programming paradigm plays a major role in optimizing the program design. As we know optimization can occur at a number of levels. Design level optimization will allow the system to make best use of the available resources. The architectural design of a system overwhelmingly affects its performance. The choice of paradigms affects efficiency more than any other item of the design [4]. The following simple JavaMe code Example1 demonstrates the role and dominancy of programming paradigms in a program design. ISBN: SDIWC 74

2 Example 1 importjavax.microedition.lcdui.*; importjavax.microedition.midlet.*; public class Example1 extends MIDlet { private Form form; public Example1() { form = new Form("Example1"); form.append(new StringItem(null, "Hello Mobile World")); public void startapp() { Display.getDisplay(this).setCurrent(for m); public void pauseapp() { public void destroyapp(boolean unconditional) { notifydestroyed(); The output of the above 12- lines code is just to display a message Hello mobile world as shown in Figure 1 below. But the usage of programming paradigms is vast, it has most of the object oriented and other programming concepts such as class, objects, encapsulation, packages, inheritance, abstract methods, static, constructors, etc., while it executes it will take more mobile resources which is not worthwhile for the required output. This is the main flaw of the current approaches. Choosing the appropriate paradigms for program design will increase the efficiency, performance and accuracy of the system. This will use relatively less resources. This discussion is applicable for desktop development as well but most required for mobile software development. 2. IMPERATIVE AND OBJECT ORIENTED PROGRAMMING PARADIGMS IN MOBILE SOFTWARE DEVELOPMENT Programming paradigms such as procedural, structural, etc. can be considered as imperative programming paradigms and the programming languages based on those concepts are referred to called imperative programming languages. Imperative and Object Oriented Programming are common when we use any mainstream programming languages for desktop and mobile software development. As per the investigation object oriented programming concepts are dominating mobile software development. Concepts such as multiple inheritance, creating multiple objects are often used in the mobile application design. Other concepts such as abstract methods, recursive procedures, concatenating string, thread synchronization, declaring global variables, etc. are mostly used in mobile application designs. Basically they are not appropriate for mobile software development. Since most of the development tools are based on the imperative programming and object oriented programming paradigms, these concepts are being used by the software developers. 2.1 Evaluation Comments This section briefly evaluates major programming concepts of imperative programming paradigms in order to optimize the resource utilization of mobile devices. Figure 1 Mobile devices have limited resources compared to desktop machines; hence application of the desktop development approaches is not suitable for mobile application development Objects The object-oriented system is heavily constrained by the nature of the object sizes. Flushing of the objects by the virtual memory manager must defragment the primary storage before the new object can be stored. It is observed that the speed of the execution of the ISBN: SDIWC 75

3 benchmarks in case of procedural programming style is 8% more as compared to the object oriented programming. It is analyzed that this is mainly due to the increased instruction count, larger code size and increased number of accesses to the data memory for the objectoriented versions [7]. A primary way to reduce total memory requirements of your application is to avoid using object types. Instead, use scalar types, which use less memory than object types. Always reuse objects instead of creating new objects. This reduces both memory allocation and the need for processing power. Memory allocation is reduced because multiple references can use the same object at different times in the application s life cycle. Obviously, both objects that use the same memory cannot run simultaneously. The need for processing power is reduced because a portion of the processing is required to allocate new memory doesn t need to be invoked since memory has already been allocated when the object is instantiated. This and similar data management subtleties usually have little or no noticeable impact on a mobile software. However, this kind of attention to detail will have a dramatic impact on the performance of a mobile application Constructors, Destructors and Abstract Methods As we discussed in section 2.1.1, if we minimize the creation of more objects by reusing the objects and on the other hand will minimize the use of constructors. The following screen (figure 2) shows the volume of resources used by the Example 1 program just to display a message Hello Mobile World and also it is listed that how many object have been created, classes used and all. This result supports the arguments of this paper. Most of the object oriented languages having destructor or garbage collector mechanisms but you don t know when the garbage collector will collect your garbage. Therefore, it is critical that you clean up after the application finished using memory. Likewise most of the programmers use the approach like Example 1while designing their mobile applications in JavaME. Indirectly it is increasing the constructor usages and number of source code lines. This should be avoided. Same effect can be achieved by providing all the codes in the startapp() abstract method. Figure 2 In addition to this due to the language architecture, most of the built-in classes are abstract. Hence in most cases we have to define the abstract methods unnecessarily like pause() functions in Example 1. Alternative approaches are necessary to avoid this type of flaws Inheritance As you can see from Example 1 such a simple program needs to use more resources (see Figure 2) unnecessarily to execute the programs due to the inheritance mechanism. Inheritance is another processing drain that can be avoided by designing an application to eliminate Inheritance or at least reduce multiple inheritance to the minimum necessary to achieve the objective of the application since it increases the application s use of memory in addition to increasing the application s processing requirements Recursive Procedures In Imperative And Object Oriented Programming. If possible, recursive procedures should be avoided for mobile software design as it pushes stacks to large sizes. Imperative programming recursive functions uses dynamic memory management (stacks) while tail recursive ISBN: SDIWC 76

4 technique in functional programming uses static memory management (i.e. not using stacks); hence tail recursive is better for mobile software development. When applications use a function that calls itself, the function should not be deeply nested. Similarly, copying large objects or passing them by value should be avoided wherever possible in favour of using pointers or passing the objects by reference [9] Others Practises Concepts such as concatenating strings, thread synchronization and use of global variables should be formulated. In many applications, developers assign values to data members of a class rather than using a local variable. You can increase processing speed of your application if you eliminate the extra steps of accessing a data member of a class by assigning values to local variables. Concatenation also increases the application s use of memory in addition to increasing the application s processing requirements, which becomes apparent by comparing processing a string with processing a concatenated string. Another way to increase performance is to avoid using synchronization where possible. Synchronization requires additional processing steps that are not necessary when synchronization is deactivated. 3. FUNCTIONAL PROGRAMMING Upon reviewing various programming paradigms, author have identified that most of the functional programming concepts are suitable for mobile software development. In functional programming, programs are executed by evaluating expressions, in contrast with imperative programming where programs are composed of statements which change global state when executed [10]. Functional programming avoids states and mutable data. Some of the important functional programming concepts are higher order functions, closures, lazy evaluation, tail recursions, referential transparency, functional composition, parametric polymorphism and pure functions. These concepts are relatively suitable for mobile computing requirements. The paradigm of functional programming is used in languages like Haskell, Lisp, F#, Ruby, Smalltalk, Python, scala etc. and now supported by Java Functional libraries such as FunctionalJ, Functional Java and LamdaJ, Javascript, c, c++, etc. Ericsson has been successfully using a functional language called Erlang for quite a long time for their mobile software projects. Apple starts using in Ojective C for iphone programming. 3.1 Evaluation Comments Functional paradigm generally eliminates the redundancy and uses only required functionalities to perform the task, these features are more suitable for mobile computing requirements. Certain mobile applications may involve computationally intensive algorithms. Functional programs are inherently parallelized, which can help us to implement computationally intensive algorithms in resource constrained mobile applications. Asynchronous and parallel programmings are essential components of a mobile application. Creation of HTTP channels, asynchronous calls, completion routines are common here. Microsoft F# handles this difficulty with a functional programming concept called workflows Higher Order Functions For a mobile application development that requires high degree of modularity and scalability, higher order functions would be a good option. A function that takes another function as one of its arguments or returns a function as result is called a higher-order function. Shown below is an example using map (higher order function) and list in Functional Java where a function increments each element of the list to produce a new list. This method has prevented repeated iteration over the data, hence optimizing the speed and size of code. Example 2 import fj.*; import static fj.data.*; import static fj.pre.*; public final class HofList{ public static void main(final String s[]){ final List<Integer>l1 = list(11,21,31); final List<Integer>l2= l1.map(add.f(10)); listshow(intshow).println(l2); ISBN: SDIWC 77

5 Using Map function we can write a code as simple as possible to search the entire internet contents with a basic string searcher as a parameter, which means map function can be used to tackle huge problems in an instant. Lots of Google applications use Map and Reduce (a family of higher order functions) and they all benefit whenever someone optimizes it or fixes bugs [2]. Functional programming took a tightly coupled section of code and removed the dependency by use of higher-order functions Referential Transparency Pure computations yield the same value each time they are invoked. This property is called referential transparency. A mobile application may require proof of correctness of an algorithm, a clear understanding of the code by the programmer and the compiler for better code optimization. Referential Transparency would be a clear solution to this. Referential transparency helps the compiler to optimize code by memorization, common sub-expression elimination. A program could have been written to invoke a function inside a loop construct. A referentially transparent function could be moved outside the loop since it can be evaluated at any time. Such decisions can be taken by an intelligent compiler easily when we use referential transparency Polymorphism Functional paradigms implements polymorphism in two ways namely, Ad-hoc polymorphism and Parametric polymorphism. Generally polymorphism enables a single interface to operate upon values of different data types. Adhoc polymorphism may provide different functionalities through a single interface when the number and type of data vary. Instead, when the same functionality needs to be provided, parametric polymorphism should be chosen. This choice is necessary to avoid redundancy of code. Hence a clear choice of the type of polymorphism should be made. In this case, functional approach is better than imperative programming polymorphism approach. Due to the effectiveness Java and C++ have already derived the parametric polymorphism under the names Generic class and Templates. This is yet another concept to save mobile resources Lazy Evaluation Vs Eager Evaluation In imperative programming language to find nth elements of an unsorted list is expensive since it will search the entire list, this is called Eager Evaluation. But in a functional programming language the lazy evaluation approach is in practice. Lazy evaluation ensures that the list will only be sorted enough to find the nth element and it s actually performs well although it would have to perform some moderately complex book-keeping. For mobile computing the lazy evaluation approach is more suitable than eager evaluation approach of imperative paradigms as it uses less processing power Recursion As discussed in section 2.1.4, recursive technique is inefficient in OOP and procedural programming, as it push stack to large sizes. Functional programming recursive techniques are fast, simple and not using stacks. Functional languages also tend to make function calls very cheap and allocation on the heap cheap. That is combined with a recursive type and recursive techniques all adds up to heavy use of recursion, while retaining performance [1,5]. Hence it is very suitable for mobile computing. Tail recursion is iteration in any pure functional language implementation. The following simple program Example 3 is to add a sequence of numbers using GHC Haskell. Example 3 loop: leaq 1(%rsi), %rax addq %rsi, %r14 cmpq $ , %rax jge.lbb1_5 addq $2, %rsi addq %rax, %r14 test: # %tailrecurse cmpq $ , %rsi jl loop (Source [11]) So we had a pipeline of recursive functions, which were compiled to a single tail- recursive function, which was compiled to a single imperative loop using no stack. This is why both ISBN: SDIWC 78

6 functional composition (functional concept) and recursion are extremely efficient in optimizing function languages. 4. FUSION OF FUNCTIONAL AND OBJECT ORIENTED PARADIGMS Microsoft F #, Scala Java-based functional programming libraries, such as LamdaJ, FunctionalJ, functional Java incorporates concepts from object-oriented languages and functional. It provides features such as higherorder functions, closures, currying, filtering and functional composition instead of multiple inheritance. All this is complemented by a powerful type system, which allows expressing programs in a concise and elegant, but type-safe [6]. We can use these types of programming languages to design green mobile programs by choosing appropriate paradigms. But intensive research needs to be done to design an appropriate language for only supporting suitable programming as per our discussion which can serve our green mobile computing needs. 5. CONCLUSION In conclusion, if we formulate the programming paradigm by identifying the suitable features from both functional and non-functional programming paradigm, it will help us to achieve optimal resources utilization of mobile devices. In order to avoid the memory leak and stack overflow, minimize the use of object oriented features such as inheritance, creating many objects and avoid features such as recursion, concatenating strings thread synchronization and declaring global variables. Due to these issues, generally Java like languages execution speed is low and it takes more memory. Functional programming features such as higher order functions, parametric polymorphism, referential transparency and list comprehension principles are more suitable for current mobile computing scenario. 6. ACKNOWLEDGEMENT Thanks to God for making this paper successful. Sincere thanks to our university for allowing me to use the resources during research and analysis process. I would like to thank library manager Ms. Haresh Kumari and my colleagues for extending their valuable support and encouragement.last but not least thanks to my family for their understanding, tolerance and patience while I was writing this paper. 7. REFERENCES 1. Don Stewart: Efficient recursion in functional languages vs inefficient recursion in different paradigms stack overflow (2013). 2. Joel Sposky : Can your programming language do this, Joel on Software (2006). 3. John Hughes: Why Functional Programming Matters, Research Topics in Functional Programming ed. D. Turner, Addison-Wesley, pp (1990). 4. Jon Bentley : Writing Efficient Programs, ISBN (1982). 5. Mark Jason Dominus: The wonderful "High Order perl (2005). 6. Martin Odersky, Philippe Altherr, (eds) : The Scala language specification. Technical report, EPFL (2004). 7. Sunil Dutt, Shubhnandan, S. Jamwal & Devanand : Object Oriented Vs Procedural Programming Embedded Systems, International Journal of Computer Science & Communication Vol. 1, No. 2, (2010). 8. Xiaogeng Zhao and Peter Clayton: A Comparative Analysis of Java and.net Mobile Development Environments for Supporting Mobile Services, Rhodes University (2003). 9. Danail Dochev and Ivo Hristov: Mobile Learning Applications- Ubiquitous Characteristics and Technological Solutions, Institute of Information Technologies,1113 Sofia (2006) g#referential_transparency (2013) ISBN: SDIWC 79

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General

More information

CRITICAL EVALUATION ON SOFTWARE DEVELOPMENT PROCESS MODELS WITH RESPECT TO MOBILE SOFTWARE DEVELOPMENT

CRITICAL EVALUATION ON SOFTWARE DEVELOPMENT PROCESS MODELS WITH RESPECT TO MOBILE SOFTWARE DEVELOPMENT CRITICAL EVALUATION ON SOFTWARE DEVELOPMENT PROCESS MODELS WITH RESPECT TO MOBILE SOFTWARE DEVELOPMENT Kesava Pillai Rajadorai, Sa adah Hassan and Novia Admodisastro Faculty of Computer Science and Information

More information

Curriculum Map. Discipline: Computer Science Course: C++

Curriculum Map. Discipline: Computer Science Course: C++ Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code

More information

Fundamentals of Java Programming

Fundamentals of Java Programming Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors

More information

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

CompuScholar, 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 information

Glossary of Object Oriented Terms

Glossary 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 information

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

KITES 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 information

Functional Programming

Functional 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 information

CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.

CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship. CSCI 253 Object Oriented Design: Java Review OOP George Blankenship George Blankenship 1 Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation Abstract Data Type (ADT) Implementation

More information

The C Programming Language course syllabus associate level

The C Programming Language course syllabus associate level TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming

More information

Aspect-Oriented Programming

Aspect-Oriented Programming Aspect-Oriented Programming An Introduction to Aspect-Oriented Programming and AspectJ Niklas Påhlsson Department of Technology University of Kalmar S 391 82 Kalmar SWEDEN Topic Report for Software Engineering

More information

Moving from CS 61A Scheme to CS 61B Java

Moving 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 information

Java Application Developer Certificate Program Competencies

Java Application Developer Certificate Program Competencies Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle

More information

Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters

Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.

More information

Evolution of the Major Programming Languages

Evolution of the Major Programming Languages 142 Evolution of the Major Programming Languages Object Oriented Programming: Smalltalk Object-Oriented: It s fundamental characteristics are: Data abstraction, Inheritance and Dynamic Binding. The essence

More information

Android Application Development Course Program

Android Application Development Course Program Android Application Development Course Program Part I Introduction to Programming 1. Introduction to programming. Compilers, interpreters, virtual machines. Primitive data types, variables, basic operators,

More information

Chapter 5 Names, Bindings, Type Checking, and Scopes

Chapter 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 information

Programming Languages

Programming Languages Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:

More information

Course MS10975A Introduction to Programming. Length: 5 Days

Course 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 information

Functional Programming in C++11

Functional Programming in C++11 Functional Programming in C++11 science + computing ag IT-Dienstleistungen und Software für anspruchsvolle Rechnernetze Tübingen München Berlin Düsseldorf An Overview Programming in a functional style

More information

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq Introduction to Programming using Java wertyuiopasdfghjklzxcvbnmqwertyui

More information

CEC225 COURSE COMPACT

CEC225 COURSE COMPACT CEC225 COURSE COMPACT Course GEC 225 Applied Computer Programming II(2 Units) Compulsory Course Duration Two hours per week for 15 weeks (30 hours) Lecturer Data Name of the lecturer: Dr. Oyelami Olufemi

More information

Java EE Web Development Course Program

Java EE Web Development Course Program Java EE Web Development Course Program Part I Introduction to Programming 1. Introduction to programming. Compilers, interpreters, virtual machines. Primitive types, variables, basic operators, expressions,

More information

Objectif. Participant. Prérequis. Remarque. Programme. C# 3.0 Programming in the.net Framework. 1. Introduction to the.

Objectif. Participant. Prérequis. Remarque. Programme. C# 3.0 Programming in the.net Framework. 1. Introduction to the. Objectif This six-day instructor-led course provides students with the knowledge and skills to develop applications in the.net 3.5 using the C# 3.0 programming language. C# is one of the most popular programming

More information

MA-WA1920: Enterprise iphone and ipad Programming

MA-WA1920: Enterprise iphone and ipad Programming MA-WA1920: Enterprise iphone and ipad Programming Description This 5 day iphone training course teaches application development for the ios platform. It covers iphone, ipad and ipod Touch devices. This

More information

Efficiency Considerations of PERL and Python in Distributed Processing

Efficiency Considerations of PERL and Python in Distributed Processing Efficiency Considerations of PERL and Python in Distributed Processing Roger Eggen (presenter) Computer and Information Sciences University of North Florida Jacksonville, FL 32224 ree@unf.edu 904.620.1326

More information

Java SE 8 Programming

Java SE 8 Programming Oracle University Contact Us: 1.800.529.0165 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features and Application Programming

More information

Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)

Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies) Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies) Duration of Course: 6 Months Fees: Rs. 25,000/- (including Service Tax) Eligibility: B.E./B.Tech., M.Sc.(IT/ computer

More information

Chapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages

Chapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming

More information

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014 CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections

More information

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages ICOM 4036 Programming Languages Preliminaries Dr. Amirhossein Chinaei Dept. of Electrical & Computer Engineering UPRM Spring 2010 Language Evaluation Criteria Readability: the ease with which programs

More information

Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding

Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects

More information

Programming Language Concepts for Software Developers

Programming Language Concepts for Software Developers Programming Language Concepts for Software Developers Peter Sestoft IT University of Copenhagen, Denmark sestoft@itu.dk Abstract This note describes and motivates our current plans for an undergraduate

More information

Overview. Elements of Programming Languages. Advanced constructs. Motivating inner class example

Overview. Elements of Programming Languages. Advanced constructs. Motivating inner class example Overview Elements of Programming Languages Lecture 12: Object-oriented functional programming James Cheney University of Edinburgh November 6, 2015 We ve now covered: basics of functional and imperative

More information

Java Interview Questions and Answers

Java Interview Questions and Answers 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java

More information

CSE341: Programming Languages Lecture 7.5 Course Motivation. Dan Grossman Fall 2011

CSE341: Programming Languages Lecture 7.5 Course Motivation. Dan Grossman Fall 2011 CSE341: Programming Languages Lecture 7.5 Course Motivation Dan Grossman Fall 2011 Course Motivation (Did you think I forgot? ) Why learn languages that are quite different from Java, C, C++? Why learn

More information

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design

More information

Chapter 12 Programming Concepts and Languages

Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution

More information

Pure and functional JavaScript Developer Conference 2013. Jakob Westhoff (@jakobwesthoff) November 7th, 2013

Pure and functional JavaScript Developer Conference 2013. Jakob Westhoff (@jakobwesthoff) November 7th, 2013 Pure and functional JavaScript Developer Conference 2013 Jakob Westhoff (@jakobwesthoff) November 7th, 2013 I am Jakob Westhoff Senior PHP professional Senior JavaScript professional Open source enthusiast

More information

Functional Programming. Functional Programming Languages. Chapter 14. Introduction

Functional Programming. Functional Programming Languages. Chapter 14. Introduction Functional Programming Languages Chapter 14 Introduction Functional programming paradigm History Features and concepts Examples: Lisp ML 1 2 Functional Programming Functional Programming Languages The

More information

Programming Language Pragmatics

Programming Language Pragmatics Programming Language Pragmatics THIRD EDITION Michael L. Scott Department of Computer Science University of Rochester ^ШШШШШ AMSTERDAM BOSTON HEIDELBERG LONDON, '-*i» ЩЛ< ^ ' m H NEW YORK «OXFORD «PARIS»SAN

More information

Variable Base Interface

Variable 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 information

15-150 Lecture 11: Tail Recursion; Continuations

15-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 information

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition Java 6 'th edition Concepts INTERNATIONAL STUDENT VERSION CONTENTS PREFACE vii SPECIAL FEATURES xxviii chapter i INTRODUCTION 1 1.1 What Is Programming? 2 J.2 The Anatomy of a Computer 3 1.3 Translating

More information

Resource Utilization of Middleware Components in Embedded Systems

Resource Utilization of Middleware Components in Embedded Systems Resource Utilization of Middleware Components in Embedded Systems 3 Introduction System memory, CPU, and network resources are critical to the operation and performance of any software system. These system

More information

Lecture 1: Introduction

Lecture 1: Introduction Programming Languages Lecture 1: Introduction Benjamin J. Keller Department of Computer Science, Virginia Tech Programming Languages Lecture 1 Introduction 2 Lecture Outline Preview History of Programming

More information

Course Title: Software Development

Course Title: Software Development Course Title: Software Development Unit: Customer Service Content Standard(s) and Depth of 1. Analyze customer software needs and system requirements to design an information technology-based project plan.

More information

EFFICIENCY CONSIDERATIONS BETWEEN COMMON WEB APPLICATIONS USING THE SOAP PROTOCOL

EFFICIENCY CONSIDERATIONS BETWEEN COMMON WEB APPLICATIONS USING THE SOAP PROTOCOL EFFICIENCY CONSIDERATIONS BETWEEN COMMON WEB APPLICATIONS USING THE SOAP PROTOCOL Roger Eggen, Sanjay Ahuja, Paul Elliott Computer and Information Sciences University of North Florida Jacksonville, FL

More information

C++ INTERVIEW QUESTIONS

C++ 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 information

C++ Programming Language

C++ Programming Language C++ Programming Language Lecturer: Yuri Nefedov 7th and 8th semesters Lectures: 34 hours (7th semester); 32 hours (8th semester). Seminars: 34 hours (7th semester); 32 hours (8th semester). Course abstract

More information

Replication on Virtual Machines

Replication on Virtual Machines Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism

More information

General Introduction

General Introduction Managed Runtime Technology: General Introduction Xiao-Feng Li (xiaofeng.li@gmail.com) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime

More information

The Rules 1. One level of indentation per method 2. Don t use the ELSE keyword 3. Wrap all primitives and Strings

The Rules 1. One level of indentation per method 2. Don t use the ELSE keyword 3. Wrap all primitives and Strings Object Calisthenics 9 steps to better software design today, by Jeff Bay http://www.xpteam.com/jeff/writings/objectcalisthenics.rtf http://www.pragprog.com/titles/twa/thoughtworks-anthology We ve all seen

More information

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm

More information

University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011

University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011 University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011 Department Mission The Department of Computer Science in the College of Arts and Sciences

More information

Application Development,.NET

Application Development,.NET Application Development,.NET Orsys, with 30 years of experience, is providing high quality, independant State of the Art seminars and hands-on courses corresponding to the needs of IT professionals. Orsys

More information

1/20/2016 INTRODUCTION

1/20/2016 INTRODUCTION INTRODUCTION 1 Programming languages have common concepts that are seen in all languages This course will discuss and illustrate these common concepts: Syntax Names Types Semantics Memory Management We

More information

Organization of Programming Languages CS320/520N. Lecture 05. Razvan C. Bunescu School of Electrical Engineering and Computer Science bunescu@ohio.

Organization of Programming Languages CS320/520N. Lecture 05. Razvan C. Bunescu School of Electrical Engineering and Computer Science bunescu@ohio. Organization of Programming Languages CS320/520N Razvan C. Bunescu School of Electrical Engineering and Computer Science bunescu@ohio.edu Names, Bindings, and Scopes A name is a symbolic identifier used

More information

Building Scalable Applications Using Microsoft Technologies

Building Scalable Applications Using Microsoft Technologies Building Scalable Applications Using Microsoft Technologies Padma Krishnan Senior Manager Introduction CIOs lay great emphasis on application scalability and performance and rightly so. As business grows,

More information

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

PART-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 information

Programming and Software Development CTAG Alignments

Programming and Software Development CTAG Alignments Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical

More information

WebSphere Architect (Performance and Monitoring) 2011 IBM Corporation

WebSphere Architect (Performance and Monitoring) 2011 IBM Corporation Track Name: Application Infrastructure Topic : WebSphere Application Server Top 10 Performance Tuning Recommendations. Presenter Name : Vishal A Charegaonkar WebSphere Architect (Performance and Monitoring)

More information

I. INTRODUCTION. International Journal of Computer Science Trends and Technology (IJCST) Volume 3 Issue 2, Mar-Apr 2015

I. INTRODUCTION. International Journal of Computer Science Trends and Technology (IJCST) Volume 3 Issue 2, Mar-Apr 2015 RESEARCH ARTICLE An Exception Monitoring Using Java Jyoti Kumari, Sanjula Singh, Ankur Saxena Amity University Sector 125 Noida Uttar Pradesh India OPEN ACCESS ABSTRACT Many programmers do not check for

More information

An Internet Course in Software Development with C++ for Engineering Students

An Internet Course in Software Development with C++ for Engineering Students An Internet Course in Software Development with C++ for Engineering Students Yosef Gavriel, Robert Broadwater Department of Electrical and Computer Engineering Virginia Tech Session 3232 Abstract This

More information

Elemental functions: Writing data-parallel code in C/C++ using Intel Cilk Plus

Elemental functions: Writing data-parallel code in C/C++ using Intel Cilk Plus Elemental functions: Writing data-parallel code in C/C++ using Intel Cilk Plus A simple C/C++ language extension construct for data parallel operations Robert Geva robert.geva@intel.com Introduction Intel

More information

WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER

WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER Course Outline (2015) Basic Programming With Procedural & Object Oriented Concepts (C, C++) Training Office# Road: 11, House: 1 A, Nikunja 2, Khilkhet,

More information

Tail Recursion Without Space Leaks

Tail Recursion Without Space Leaks Tail Recursion Without Space Leaks Richard Jones Computing Laboratory University of Kent at Canterbury Canterbury, Kent, CT2 7NF rejukc.ac.uk Abstract The G-machine (Johnsson, 1987; Peyton Jones, 1987)

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

El Dorado Union High School District Educational Services

El Dorado Union High School District Educational Services El Dorado Union High School District Course of Study Information Page Course Title: ACE Computer Programming II (#495) Rationale: A continuum of courses, including advanced classes in technology is needed.

More information

.NET Overview. David Smith. Today s s Topics. Why am I here? A tool. Microsoft s s Vision for.net

.NET Overview. David Smith. Today s s Topics. Why am I here? A tool. Microsoft s s Vision for.net .NET Overview David Smith Microsoft Student Ambassador CS Major Michigan State University Today s s Topics Why I m I m here. Exciting Demo IssueVision What is.net? Why learn.net? Look into the Demo Old

More information

opalang - Rapid & Secure Web Development

opalang - Rapid & Secure Web Development opalang - Rapid & Secure Web Development Syllabus Brief History of Web Development Ideas and Goals The Language itself Community Reason for Development Services and Apps written in OPA Future of OPA OPA

More information

CSCI E 98: Managed Environments for the Execution of Programs

CSCI E 98: Managed Environments for the Execution of Programs CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last 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 information

Extending Tizen Native Framework with Node.js

Extending Tizen Native Framework with Node.js Extending Tizen Native Framework with Node.js Nishant Deshpande Hyunju Shin Ph.D. Samsung Electronics Contents Native or Web? Why JavaScript, Node.js? Proposed Architecture Sample Applications Going Forward

More information

Visual Programming of Logic, Motion, and Robotics

Visual Programming of Logic, Motion, and Robotics ADVANCED Motion Controls October 2014 Visual Programming of Logic, Motion, and Robotics Sándor Barta Overview The art of programming consists of mentally translating a workflow into a sequential programming

More information

Some programming experience in a high-level structured programming language is recommended.

Some programming experience in a high-level structured programming language is recommended. Python Programming Course Description This course is an introduction to the Python programming language. Programming techniques covered by this course include modularity, abstraction, top-down design,

More information

Java Coding Practices for Improved Application Performance

Java Coding Practices for Improved Application Performance 1 Java Coding Practices for Improved Application Performance Lloyd Hagemo Senior Director Application Infrastructure Management Group Candle Corporation In the beginning, Java became the language of the

More information

PIE. Internal Structure

PIE. Internal Structure PIE Internal Structure PIE Composition PIE (Processware Integration Environment) is a set of programs for integration of heterogeneous applications. The final set depends on the purposes of a solution

More information

.NET and J2EE Intro to Software Engineering

.NET and J2EE Intro to Software Engineering .NET and J2EE Intro to Software Engineering David Talby This Lecture.NET Platform The Framework CLR and C# J2EE Platform And Web Services Introduction to Software Engineering The Software Crisis Methodologies

More information

Web Development in Java

Web Development in Java Web Development in Java Detailed Course Brochure @All Rights Reserved. Techcanvass, 265, Powai Plaza, Hiranandani Garden, Powai, Mumbai www.techcanvass.com Tel: +91 22 40155175 Mob: 773 877 3108 P a g

More information

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON PROBLEM SOLVING WITH SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON Addison Wesley Boston San Francisco New York London

More information

DIPLOMADO DE JAVA - OCA

DIPLOMADO DE JAVA - OCA DIPLOMADO DE JAVA - OCA TABLA DE CONTENIDO INTRODUCCION... 3 ESTRUCTURA DEL DIPLOMADO... 4 Nivel I:... 4 Fundamentals of the Java Programming Language Java SE 7... 4 Introducing the Java Technology...

More information

ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology)

ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology) ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology) Subject Description: This subject deals with discrete structures like set theory, mathematical

More information

DataDirect XQuery Technical Overview

DataDirect XQuery Technical Overview DataDirect XQuery Technical Overview Table of Contents 1. Feature Overview... 2 2. Relational Database Support... 3 3. Performance and Scalability for Relational Data... 3 4. XML Input and Output... 4

More information

Java the UML Way: Integrating Object-Oriented Design and Programming

Java the UML Way: Integrating Object-Oriented Design and Programming Java the UML Way: Integrating Object-Oriented Design and Programming by Else Lervik and Vegard B. Havdal ISBN 0-470-84386-1 John Wiley & Sons, Ltd. Table of Contents Preface xi 1 Introduction 1 1.1 Preliminaries

More information

Java Programming. Binnur Kurt binnur.kurt@ieee.org. Istanbul Technical University Computer Engineering Department. Java Programming. Version 0.0.

Java Programming. Binnur Kurt binnur.kurt@ieee.org. Istanbul Technical University Computer Engineering Department. Java Programming. Version 0.0. Java Programming Binnur Kurt binnur.kurt@ieee.org Istanbul Technical University Computer Engineering Department Java Programming 1 Version 0.0.4 About the Lecturer BSc İTÜ, Computer Engineering Department,

More information

How to create/avoid memory leak in Java and.net? Venkat Subramaniam venkats@durasoftcorp.com http://www.durasoftcorp.com

How to create/avoid memory leak in Java and.net? Venkat Subramaniam venkats@durasoftcorp.com http://www.durasoftcorp.com How to create/avoid memory leak in Java and.net? Venkat Subramaniam venkats@durasoftcorp.com http://www.durasoftcorp.com Abstract Java and.net provide run time environment for managed code, and Automatic

More information

Real Time Programming: Concepts

Real Time Programming: Concepts Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize

More information

OKLAHOMA SUBJECT AREA TESTS (OSAT )

OKLAHOMA SUBJECT AREA TESTS (OSAT ) CERTIFICATION EXAMINATIONS FOR OKLAHOMA EDUCATORS (CEOE ) OKLAHOMA SUBJECT AREA TESTS (OSAT ) FIELD 081: COMPUTER SCIENCE September 2008 Subarea Range of Competencies I. Computer Use in Educational Environments

More information

Tutorial on Writing Modular Programs in Scala

Tutorial on Writing Modular Programs in Scala Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 13 September 2006 Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 1 of 45 Welcome to the

More information

MICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES FIELD 050: COMPUTER SCIENCE

MICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES FIELD 050: COMPUTER SCIENCE MICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES Subarea Educational Computing and Technology Literacy Computer Systems, Data, and Algorithms Program Design and Verification Programming Language

More information

Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111

Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111 Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages Corky Cartwright Swarat Chaudhuri November 30, 20111 Overview I In OO languages, data values (except for designated non-oo

More information

Semester Review. CSC 301, Fall 2015

Semester Review. CSC 301, Fall 2015 Semester Review CSC 301, Fall 2015 Programming Language Classes There are many different programming language classes, but four classes or paradigms stand out:! Imperative Languages! assignment and iteration!

More information

Japan Communication India Skill Development Center

Japan Communication India Skill Development Center Japan Communication India Skill Development Center Java Application System Developer Course Detail Track 2b Java Application Software Developer: Phase1 SQL Overview 70 Introduction Database, DB Server

More information

AP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities

AP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities AP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities The classroom is set up like a traditional classroom on the left side of the room. This is where I will conduct my

More information

Object Oriented Software Design II

Object 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 information

Architectural Patterns (3)

Architectural Patterns (3) Scatter/Gather Architectural Patterns (3) Prof. Cesare Pautasso http://www.pautasso.info cesare.pautasso@usi.ch @pautasso Goal: send the same message to multiple recipients which will (or may) reply to

More information

Art of Code Front-end Web Development Training Program

Art of Code Front-end Web Development Training Program Art of Code Front-end Web Development Training Program Pre-work (5 weeks) Codecademy HTML5/CSS3 and JavaScript tracks HTML/CSS (7 hours): http://www.codecademy.com/en/tracks/web JavaScript (10 hours):

More information

Real-Time Analytics on Large Datasets: Predictive Models for Online Targeted Advertising

Real-Time Analytics on Large Datasets: Predictive Models for Online Targeted Advertising Real-Time Analytics on Large Datasets: Predictive Models for Online Targeted Advertising Open Data Partners and AdReady April 2012 1 Executive Summary AdReady is working to develop and deploy sophisticated

More information

A Middleware Strategy to Survive Compute Peak Loads in Cloud

A Middleware Strategy to Survive Compute Peak Loads in Cloud A Middleware Strategy to Survive Compute Peak Loads in Cloud Sasko Ristov Ss. Cyril and Methodius University Faculty of Information Sciences and Computer Engineering Skopje, Macedonia Email: sashko.ristov@finki.ukim.mk

More information