Hons. B.Sc. Degree in Software Engineering/Development. Web and Cloud Development

Similar documents
webapp2 Documentation

Jaesun Han (NexR CEO & Founder)

한재선 KAIST 정보미디어경영대학원겸직교수 & NexR 대표이사

App Engine Web App Framework

Google & the Cloud. GData, Mashup Editor, AppEngine. Gregor Hohpe Software Engineer Google, Inc. All rights reserved,

App Engine Web App Framework

CS2021-Week 9 - Forms. HTML Forms. Python Web Development. h?ps:// cs253/unit-2html. Form for Submitting input:

CS2021- Week 10 Models and Views. Model, View, Controller. Web Development Model, Views, Controller Templates Databases

CS4HS Using Google App Engine. Michael Parker

Front End Programming

Google App Engine Data Store. Google is BIG. Advanced Stuff.

MongoDB and Python. Niall O Higgins. Beijing Cambridge Farnham Köln Sebastopol Tokyo

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015

Building Python web app on GAE

Chapter 19: Twitter in Twenty Minutes

Rapid Development with Django and App Engine. Guido van Rossum May 28, 2008

CSC 443: Web Programming

web.py Tutorial Tom Kelliher, CS 317 This tutorial is the tutorial from the web.py web site, with a few revisions for our local environment.

MongoDB Web Architecture

DIGIT.B4 Big Data PoC

Hue Application for Big Data Ingestion

welcome to BOILERCAMP HOW TO WEB DEV

Biocomputing II Coursework guidance

MCSE Mobility Earned: MCSE Cloud Platform & Infrastructure Earned: 2017 MCSE MCSE. MCSD App Builder. MCSE Business Applications Earned 2017

Interview Questions And Answers For Experienced Candidates In Php Mysql

RESUME/COVER LETTER WORKSHOP CAREER CENTER

MY ATTEMPT TO RID THE CLINICAL WORLD OF EXCEL MIKE MOLTER DIRECTOR OF STATISTICAL PROGRAMMING AND TECHNOLOGY WRIGHT AVE OCTOBER 27, 2016

Database madness with & SQL Alchemy. Jaime Buelta. wrongsideofmemphis.worpress.com

FULL STACK FLEX PROGRAM

Html5 Css3 Javascript Interview Questions And Answers Pdf >>>CLICK HERE<<<

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

FULL STACK FLEX PROGRAM

MCSE Cloud Platform & Infrastructure CLOUD PLATFORM & INFRASTRUCTURE.

MongoDB w/ Some Node.JS Sprinkles

relational Key-value Graph Object Document

Using Data Science to deliver Workforce & Labour Market Insights. Gary Gan Co-Founder, JobKred

Building Scalable Web Apps with Python and Google Cloud Platform. Dan Sanderson, April 2015

NoSQL + SQL = MySQL Get the Best of Both Worlds

STREAMLINED CERTIFICATION PATHS

The NoPlsql and Thick Database Paradigms

Programming: Computer Programming For Beginners: Learn The Basics Of Java, SQL & C Edition (Coding, C Programming, Java Programming, SQL

Google App Engine Using Templates

FULL STACK FLEX PROGRAM

Read & Download (PDF Kindle) Programming: C ++ Programming : Programming Language For Beginners: LEARN IN A DAY! (C++, Javascript, PHP, Python, Sql,

Advanced Programming Techniques. Database Systems. Christopher Moretti

Eric Farrar Product Manager

Evaluation Guide for ASP.NET Web CMS and Experience Platforms

MICROSOFT CLOUD PLATFORM AND INFRASTRUCTURE CERTIFICATION. Includes certifications for Microsoft Azure and Windows Server

Storage Tier. Mendel Rosenblum. CS142 Lecture Notes - Database.js

Developing Solutions for Google Cloud Platform (CPD200) Course Agenda

SQLite vs. MongoDB for Big Data

mongodb-tornado-angular Documentation

Developing with Google App Engine

FULL STACK FLEX PROGRAM

Using SQLite Ebooks Free

CS50 Quiz Review. November 13, 2017

FULL STACK FLEX PROGRAM

Tecnológico de Monterrey Coding Boot Camp LIVE ONLINE PROGRAM

Databases/JQuery AUGUST 1, 2018

Excel 2013 Helpful Tools

Type Vendor Exam # Name Size. Technical Cisco Interconnecting Cisco Networking Devices Part 1 (ICND1) 180

Chapter 18: Persistence

Developer Internship Opportunity at I-CC

מרכז התמחות DBA. NoSQL and MongoDB תאריך: 3 דצמבר 2015 מציג: רז הורוביץ, ארכיטקט מרכז ההתמחות

Oracle Sql Describe Schemas Query To Find Database

Enterprise Systems & Frameworks

Python Training. Complete Practical & Real-time Trainings. A Unit of SequelGate Innovative Technologies Pvt. Ltd.

KNIME for the life sciences Cambridge Meetup

Understanding basics of MongoDB and MySQL

Overview of Web Application Development

THE IMPORTANCE OF NICHE TECHNOLOGIES IN BUSINESS ANALYSIS. - Kat Okwera Jan 2019

Perl Validate Xml Against Schema Visual Studio

Jquery Ajax Json Php Mysql Data Entry Example

Main Frame Dial Up (1960 s)

Cloud Computing Platform as a Service

Life, the Universe, and CSS Tests XML Prague 2018

CloudSwyft Learning-as-a-Service Course Catalog 2018 (Individual LaaS Course Catalog List)

Review - Relational Model Concepts

Storing data in databases

MySQL for Developers. Duration: 5 Days

a Very Short Introduction to AngularJS

(p t y) lt d. 1995/04149/07. Course List 2018

COS 333: Advanced Programming Techniques. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University

Andowson Chang

FULL STACK FLEX PROGRAM

Webgurukul Programming Language Course

MySQL for Developers. Duration: 5 Days

Efficient and Scalable Friend Recommendations

Cloud Computing Technologies and Types

Module - 17 Lecture - 23 SQL and NoSQL systems. (Refer Slide Time: 00:04)

DRACULA. CSM Turner Connor Taylor, Trevor Worth June 18th, 2015

LIVE ONLINE PROGRAM UNIVERSITY OF ARIZONA CODING BOOT CAMP CURRICULUM OVERVIEW

Project. Minpeng Zhu

Azure Development Course

Answer the following questions PART II

App Engine: Datastore Introduction

Qiufeng Zhu Advanced User Interface Spring 2017

Lecture 14. Moving Forward 1 / 23

An APEX Dashboard for Energy Trading

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Transcription:

Hons. B.Sc. Degree in Software Engineering/Development Web and Cloud Development Summer 2012 Instructions to candidates: Answer any four questions all questions carry equal marks. Start your answer at the top of a new page in your answer booklet. Be sure to read each question carefully, noting the marks allocated to each part. Software Engineering/Software Development Page 1 of 5 Summer 2012

Question 1. (a) The MVC pattern is generally regarded as the best model to follow when doing web development. Describe each of the components of MVC in general, then relate each MVC component to Google's App Engine technology in particular. [9] (b) What is a templating system, and what benefits can it bring to a web-based development effort (identify 2 benefits). Illustrate your answer with a small example snippet of code. [5] (c) How does a templating system relate to the MVC pattern? [1] (d) Identify and describe five differences between traditional SQL-based storage technologies (such as MySQL) and the App Engine DataStore. [10] Question 2. (a) Moving to a cloud computing infrastructure is a no-brainer. If you are involved in a web development project that includes a significant big-data component, then the cloud is the only way to go. The age of do-everything, roll-your-own web development efforts is over. You are to provide two one-page arguments relating to the above statement. The first is to present an argument in favour of the statement, while the second is to present an argument against the statement. Be sure to justify the points you make with examples where appropriate. [20] (b) With reference to a cloud computing technology that you know, identify three advantages to using the technology, as well as two disadvantages. [5] Question 3. (a) Provide a brief description of each of following technologies, being sure to clearly indicate the role played by the technology as it relates to web development: 1. JavaScript 2. HTML5 3. CSS3 4. JSON [12] (b) With reference to the Python programming language, describe a possible alternative to the standard JSON technology. Be sure to discuss and describe one disadvantage and one advantage of the Python technology (with reference to JSON). [6] (c) Provide a brief description of what you believe to be the most important additions to the HTML standards as manifested in HTML5. [6] (d) Describe how does JavaScript relates to HTML5. [1] Software Engineering/Software Development Page 2 of 5 Summer 2012

Question 4. (a) Consider the following source code (where the line-numbers are for illustration purposes only): 1. import cgi 2. import datetime 3. import urllib 4. import webapp2 5. from google.appengine.ext import db 6. from google.appengine.api import users 7. class Greeting(db.Model): 8. author = db.userproperty() 9. content = db.stringproperty(multiline=true) 10. date = db.datetimeproperty(auto_now_add=true) 11. def guestbook_key(guestbook_name=none): 12. return db.key.from_path('guestbook', guestbook_name or 'default_guestbook') 13. class MainPage(webapp2.RequestHandler): def get(self): self.response.out.write('<html><body>') 14. guestbook_name=self.request.get('guestbook_name') 15. greetings = db.gqlquery("select * " "FROM Greeting " "WHERE ANCESTOR IS :1 " "ORDER BY date DESC LIMIT 10", guestbook_key(guestbook_name)) 16. for greeting in greetings: if greeting.author: self.response.out.write('<b>%s</b> wrote:' % greeting.author.nickname()) else: self.response.out.write('an anonymous person wrote:') 17. self.response.out.write('<blockquote>%s</blockquote>' % cgi.escape(greeting.content)) 18. self.response.out.write(""" <form action="/sign?%s" method="post"> <div><textarea name="content" rows="3" cols="60"></textarea></div> <div><input type="submit" value="sign Guestbook"></div> </form> <hr> <form>guestbook name: <input value="%s" name="guestbook_name"> <input type="submit" value="switch"></form> </body> </html>""" % (urllib.urlencode({'guestbook_name': guestbook_name}), cgi.escape(guestbook_name))) 19. class Guestbook(webapp2.RequestHandler): def post(self): 20. guestbook_name = self.request.get('guestbook_name') greeting = Greeting(parent=guestbook_key(guestbook_name)) if users.get_current_user(): 21. greeting.author = users.get_current_user() 22. greeting.content = self.request.get('content') 23. greeting.put() 24. self.redirect('/?' + urllib.urlencode({'guestbook_name': guestbook_name})) 25. app = webapp2.wsgiapplication([('/', MainPage), ('/sign', Guestbook)], debug=true) Provide a detailed description for each of the numbered statements (and be sure to note that some statements extend over a number of lines). [25] Software Engineering/Software Development Page 3 of 5 Summer 2012

Question 5. (a) With reference to non-relational database technologies (also known as NoSQL ), provide a brief description for each of the following NoSQL terms: 1. Document 2. Schema-less Structure 3. Collection [3] (b) Why do you think NoSQL database technologies are particularly associated with web-based applications? [2] (c) Consider the following Python code (where the line-numbers are for illustration purposes only) and answer the questions at the bottom of this page: 1. import sys 2. from datetime import datetime 3. from pymongo import Connection 4. from pymongo.errors import ConnectionFailure 5. def main(): 6. try: 7. c = Connection(host="localhost", port=27017) 8. except ConnectionFailure, e: 9. sys.stderr.write("could not connect to MongoDB: %s" % e) 10. sys.exit(1) 11. dbh = c["mydb"] 12. assert dbh.connection == c 14. user_doc = { 15. "username" : "janedoe", 16. "firstname" : "Jane", 17. "surname" : "Doe", 18. "dateofbirth" : datetime(1974, 4, 12), 19. "email" : "janedoe74@example.com", 20. "score" : 0 21. } 22. dbh.users.insert(user_doc, safe=true) 23. print "Successfully inserted document: %s" % user_doc 24. if name == " main ": 25. main() 1. What is the significance of the port=27017 part of line 7? [2] 2. Describe what line 11 does. [3] 3. Why do you think the programmer has included an assertion on line 12? [2] 4. What is the generic Python name for the data structure on lines 14-21 and what does this data structure correspond to within a MongoDB database? [3] 5. On line 22 the programmer has chosen to use insert() to add data to his collection. What other method could the programmer have used for this purpose? [2] 6. Staying with line 22, what is the purpose of the safe=true parameter? [2] 7. What could happen if the safe=true parameter was removed from line 22? [3] 8. What impact does the code on lines 24-25 have on this program's behaviour? [3] Software Engineering/Software Development Page 4 of 5 Summer 2012

Question 6. (a) You have been hired by a small software development company that specializes in building one-off custom network-based applications using Java and Oracle technologies. Like a lot of companies of its type, it has decided to move it's product offerings to a more web and Internet-focused platform. The company's management has decided to target a programming technology platform that is based on Python, JavaScript, HTML5/CSS3 and MongoDB. You have been asked to prepare a presentation to be delivered to the company's programming staff which highlights the benefits of moving to this new platform. Provide the content that you would put on each of the slides of your presentation, as well as any notes that you would include when delivering your talk. Note that you are expected to have at least 10 slides. [20] (b) The company has asked you to recommend either Python 2 or Python 3 as their main target server-side programming technology. Indicate your recommendation, and support it with five reasons for your choice. [5] Software Engineering/Software Development Page 5 of 5 Summer 2012