Syllabus INFO-GB-3322 Design and Development of Web and Mobile Applications (Especially for Start Ups) Fall 2015 Stern School of Business Norman White, KMEC 8-88 Email: nwhite@stern.nyu.edu Phone: 212-998 0842 TA: TBA Administrative Assistant: Sharon Kim (skim2@stern.nyu.edu)
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, from a web page to a web site, including mobile apps. 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. 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 2 nd 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 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, including Windows 7, Windows Server (including IIS, SQL Server etc.), and any flavors of linux. 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, Students should have the ability to build a simple web page and be proficient with common Microsoft office business applications, including ACCESS. There will be some programming used as examples of how to build dynamic web pages and mobile apps. 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. Many of the students will be MS/IS students with significant technical skills, so the class will move fairly rapidly. If you score less than 10 on the background quiz, you will have to catch up rapidly in order to stay with the class. The class will be divided into teams, where each team has approximately equal technical skills. All students should have had at least some programming experience equivalent to the Stern Programming in Python class, INFO- GB-2335.
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, putting emphasis on where processing can be done. 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 ways of doing processing on the server. Students will have an exercise to add server side processing to a web page using php. Jquery mobile, phonegap and HTML 5 will be used to display web pages on mobile devices. Dreamweaver will be used throughout the term to develop pages and apps. Remote (server) and local (browser) storage capabilities will be demoed. About 1/3 of the way through the course, students will be placed in small (4-5 person) teams to work on 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 almost all 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. The final project requirement is for a working mobile app that is suitable for deployment in an organization, or for general usage. 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 small 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 week after the last class. The group projects must be implemented in the Stern Sandbox cloud unless there is a significant reason why that is not feasible. Github 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 overview Client Server Computing model, review of web protocols, TCP/IP 2 Web page development HTML, Dreamweaver, Cascading Style Sheets, Mobile considerations, publishing a web page at Stern. 3 Browser based scripting Javascript, jquery, jquery mobile. How does one add logic to a web page? Customizing web pages for different devices. Convert a web app to a mobile app. 4 Server side scripting Examples, Overview of server side scripting languages, PERL, PHP, ASP, JSP, Common Gateway interface model, forms processing. How do we enable web and mobile users to run applications. Combining client and server side scripting. 5 Alternative backend platforms 6 Review of Relational Data Base concepts AJAX and HTML 5 capabilities. Advantages and disadvantages, popular platforms (Apache, Iplanet, Solaris, SGI, Linux), Java Servlets, Java Server Pages, web services, application servers, fast CGI, mod Perl etc. (possible speaker ). Draft Project descriptions due E/R models, normalization, SQL, remote access client/server methods (ODBC, JDBC). How do we access data bases from the web and mobile devices using AJAX and JSON? 7 Spring Recess (3/17 3/21) 8 Cloud Computing Mid-Term review Mid-term exam The advantages and disadvantages of cloud computing will be discussed, and a demonstration of the Stern Cloud will be given. Sample servers will be built and deployed., demo of the Stern cloud 9 Mobile development kits Students will access the demo servers using Remote Desktop or Xwindows clients What do we need to build mobile apps? HTML 5, phonegap, Apple Iphone SDK, Android SDK We will demo moving an App onto a mobile device using Dreamweaver 10 Mobile continued Teams will spend part of class in project meetings 11 Big Data Solutions, data science Google file System, Map Reduce, Hadoop Demo Where does the data come from? Data requirements of 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 App development tips This week will be devoted to discussions of technical problems encountered by the teams and how they might solve them 14,15 Presentations Project Presentations 16 Final Projects Due Final projects completed and ready to be graded