syllabus info-gb-3322 design and development of...

5
Syllabus INFO-GB-3322 Design and Development of Web and Mobile Applications (Especially for Start Ups) Spring 2015 Stern School of Business Norman White, KMEC 8-88 Email: [email protected] Phone: 212 - 998 – 0842 TA: TBA Administrative Assistant: Sharon Kim ([email protected])

Upload: lamkhue

Post on 30-May-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Syllabus INFO-GB-3322

Design and Development of Web and Mobile Applications

(Especially for Start Ups)

Spring 2015

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 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 or MS/CS students with significant technical skills, so the class will move fairly rapidly. You should score at least a 10 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 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 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. 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

overview Client Server Computing model, review of web protocols, TCP/IP

See Web Outline

2

Web page development HTML, Dreamweaver, Cascading Style Sheets, Mobile considerations, publishing a web page at Stern.

See Web Outline

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. AJAX and HTML 5 capabilities.

See Web Outline

5 Alternative backend platforms

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

See Web Outline

6 Review of Relational Data Base concepts

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?

See Web Outline

7 Spring Recess (3/16– 3/20) 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 Students will access the demo servers using Remote Desktop or Xwindows clients

See Web Outline

9 Mobile development kits

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

See Web Outline

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

See Web Outline

12,13, 14

App development tips These weeks will be devoted to discussions of technical problems encountered by the teams and how they might solve them

15 Presentations Project Presentations 16 Final Projects Due

Final projects completed and ready to be graded