Design and Development of Web Based Systems
Total Page:16
File Type:pdf, Size:1020Kb
Syllabus INFO-GB-3322 Design and Development of Web and Mobile Applications (Especially for Start Ups) Spring 2016 Stern School of Business Norman White, KMEC 8-88 Email: [email protected] Phone: 212 - 998 – 0842 TA: TBA Administrative Assistant: Sharon Kim ([email protected]) Development of Web and Mobile Applications The internet has become the most common way to distribute applications to end users, whether they are web based applications, or mobile device based applications. Many startups are focused on mobile devices, and the technology to develop mobile apps has progressed rapidly to the point where one does not have to be a heavy duty programmer. Business services are quickly moving to mobile devices to stay connected with their customers, attract new customers and stay competitive. This course covers application development of a mobile app, starting from a web site and then using Jquery, Jquery Mobile and finally phonegap to turn the web site into a fully functioning mobile app. which is connected to back-end data services. Students will have access to a private cloud environment in which to experiment with their ideas. Custom servers can be built for individual projects, depending on the needs of the project. Access to the cloud will remain available for 8 months after the course has officially ended, for those groups who are pursuing financing. The course covers a wide variety of different internet development approaches and architectures. Issues such as security, performance, scalability, and maintainability of the different approaches will be examined. Web/mobile enabling of applications will be discussed, and in particular techniques for developing web/mobile-enabled databases, which can be accessed from browsers running on PCs, or mobile applications running on iphones, ipads, androids or similar devices. The class will be highly interactive, and grades will be partially based on how much you participate and contribute to the class. Class attendance is mandatory. We will be covering a wide variety of technologies and I will rely on help from the students in researching and presenting different technologies. Much of the 2nd part of the term will be spent working in groups for part of each class. In some cases, the class will be “flipped”. The students will be expected to have read/viewed the materials ahead of class, and class time will be devoted to discussing and experimenting. There is a “cloud” computing environment available so that student groups can implement their ideas on an appropriate platform. Supported platforms will include virtually anything that can run on the intel architecture, although the course will focus on using linux for back-end services. Students will have access to the Microsoft Developers Network software suite, as well as virtually all open source software packages such as apache, python, php, java, mysql, hadoop, mongoDB ,… Students need to have a moderate amount of technical background, including at least some programming experience. Stern courses such as Python programming, Dealing with Data, or Practical Data Science, taken as pre or co-requisites are sufficient. Out of class material and exercises will be used to augment in class discussions. Short pass/fail quizzes will be used to make sure that students have adequate background for different sections of the course. Some of the students will be MS/IS, MS/CS or Engineering students with significant technical skills, so the class will move fairly rapidly. You should score at least a 12 on the background quiz in order to take the class. Students who score less than 12 will have to work very hard to keep up. The class will be divided into teams, where each team has approximately equal technical skills. The course will NOT use either the Iphone or Android Software Development kits, since they demand a fairly high level of programming. Instead, the course will focus on how standard web skills and tools can be used to develop quite sophisticated mobile apps. In most cases the apps will be connected to some back-end service, either developed as part of the project, or already existing (e.g. The Twitter api) The sequence of the course will start with creating simple web pages, then customizing the pages using CSS (Cascading Style Sheets). Next, there will be a discussion of client-server computing and how it is implemented in the world wide web. Alternative processing alternatives will be evaluated. The unix shell language will be used to demonstrate a simple example of web based processing. Javascript and the javascript library, JQuery, will be used to add dynamic elements to a web page. PhP, ASP and JSP technologies will be discussed as alternative ways of doing processing on the server. Jquery mobile, phonegap and HTML 5 will be used to display pages on mobile devices. AJAX and JSON will be used to move data to and from the mobile app and back-end services. Dreamweaver will be used throughout the term to develop pages and apps. Remote (server) and local (browser) storage capabilities will be demoed. Early in the semester, students will be placed in small (4-5 person) teams that have diverse skill sets. These teams will work on conceiving, designing and developing a mobile app. Alternative server architectures will be reviewed and contrasted. As the term progresses, more and more class time will be used for teams to meet and work together on their apps. Towards the end of the term a significant amount of the class time will be devoted to working with the teams. Both the TA and I will be members of all the teams, to help out with technical issues. Be prepared to spend a significant amount of (hopefully interesting ) time on this course. The final project requirement is to develop a working mobile app that is suitable for deployment in the Iphone store or an organization. Apps can be games, social networking apps, information apps, geo location services or … . The final projects will be graded based on a combination of technical capabilities and business application. For instance, a simple app that has a well-developed business plan can receive a high grade, as can a more technically complex app. Course Requirements: There will be several homework assignments, on-line quizzes, a mid-term exam, a final (group) project, and a one page summary by each team member of their contribution to the project. Teams will prepare on-line presentations that will be reviewed by the whole class. The project will be due the end of the week of the last class. Students should purchase a student license to the Adobe Creative Cloud for access to Dreamweaver during the course. The license includes access to ALL of the Adobe products. To start, you can use apps.stern.nyu.edu for an old version of Dreamweaver. The group projects must be implemented in the Stern Sandbox cloud unless there is a significant reason why that is not feasible. Google Docs will be used to host the project code and design documents so that all team members can share information easily. Grades will be based on homeworks (20%), Mid-term (30%), Final project (40%), and class participation (10%). Please bring name tags to class. The approximate lecture outline is below, but is likely to be changed by the time the term starts. Week Topic(s) Concepts/Activities Readings 1 Introduction, course review of web protocols, TCP/IP, HTML, Web Publishing See Web Outline overview at Stern 2 Client Server Overview of N-tier Client Server computing, and See Web Outline Computing introduction to the Common Gateway 3 Common Gateway CGI model explained and a unix based shell script Interface Model assignment discussed. 4 Cascading Style Sheets Cascading Style Sheets were an introduction to html that See Web Outline made web pages much easier to maintain and customize. We will be using them to customize pages for mobile devices. 5,6 Javascript and JQuery, We will use javascript and jquery to do the heavy lifting in and server side scripting our apps. On- Review of Relational E/R models, normalization, SQL, remote access See Web Outline line Data Base concepts client/server methods (ODBC, JDBC). How do we access data bases from the web and mobile devices using AJAX and JSON? 7 Restful web services have become a standard way of See Web Outline moving data back and forth between a client web page or Mid-term Review mobile app, and a server. JSON stands for Restful web services, JavaScriptObjectNotation and is how we will pass JSON, … information between the client and the server. 8 Mid-term The first half of the class will be a mid-term, and the MVC second half will a presentation on the MVC (Model, View, Controller) framework. 9 Mobile development What do we need to build mobile apps? HTML 5, See Web Outline kits phonegap, Apple Iphone SDK, Android SDK We will demo moving an App onto a mobile device using Dreamweaver 10,11 Big Data Solutions, Google file System, Map Reduce, Hadoop Demo See Web Outline “data science” Where does the data come from? Data requirements of Project meetings Social Media sites. How can mobile devices access “big data” Map Reduce, HBASE, HIVE, PIG and other Big Data tools for managing petabytes of data Parts of class will be devoted to project meetings 12-13 Presentations Project Presentations 13 Final Projects Due Final projects completed and ready to be graded. Due on Friday of the week of the final class. .