06.08.2014 Views

Design and Development of Web Based Systems - NYU Stern ...

Design and Development of Web Based Systems - NYU Stern ...

Design and Development of Web Based Systems - NYU Stern ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Syllabus<br />

INFO-GB-3322<br />

INFO-UB-3322<br />

<strong>Design</strong> <strong>and</strong> <strong>Development</strong> <strong>of</strong> <strong>Web</strong> <strong>and</strong> Mobile Applications<br />

(Especially for Start Ups)<br />

Fall 2013<br />

<strong>Stern</strong> School <strong>of</strong> Business<br />

Norman White, KMEC 8-88<br />

Email: nwhite@stern.nyu.edu<br />

Phone: 212 - 998 – 0842<br />

TA: Thi Nguyen (tnguyen@stern.nyu.edu)<br />

Administrative Assistant: Sara Gorecki (sgorecki@stern.nyu.edu)


<strong>Development</strong> <strong>of</strong> <strong>Web</strong> <strong>and</strong> Mobile Applications<br />

The internet has become the most common way to distribute applications to end users, whether they are<br />

web based applications, or mobile device based applications. Many startups are focused on mobile<br />

devices, <strong>and</strong> the technology to develop mobile apps has progressed rapidly to the point where one does<br />

not have to be a heavy duty programmer.<br />

This course covers application development, from a web page to a web site, including mobile apps.<br />

applications. Students will have access to a private cloud environment in which to experiment with their<br />

ideas. Custom servers can be built for individual projects, depending on the needs <strong>of</strong> the project. Access<br />

to the cloud will remain available for 8 months after the course has <strong>of</strong>ficially ended, for those groups<br />

which are pursuing financing.<br />

The course covers a wide variety <strong>of</strong> different internet development approaches <strong>and</strong> architectures. Issues<br />

such as security, performance, scalability, <strong>and</strong> maintainability <strong>of</strong> the different approaches will be<br />

examined. <strong>Web</strong>/mobile enabling <strong>of</strong> applications will be discussed, <strong>and</strong> in particular techniques for<br />

developing web/mobile-enabled databases, which can be accessed from browsers running on PCs, or<br />

mobile applications running on iphones, ipads, <strong>and</strong>roids or similar devices.<br />

The class will be highly interactive, <strong>and</strong> grades will be partially based on how much you participate <strong>and</strong><br />

contribute to the class. We will be covering a wide variety <strong>of</strong> technologies <strong>and</strong> I will rely on help from<br />

the students in researching <strong>and</strong> presenting different technologies. Much <strong>of</strong> the 2 nd part <strong>of</strong> the term will be<br />

spent working in groups for part <strong>of</strong> each class. In some cases, the class will be “flipped”. The students<br />

will be expected to have read the materials ahead <strong>of</strong> class, <strong>and</strong> class time will be devoted to discussing<br />

<strong>and</strong> experimenting.<br />

There is a “cloud” computing environment available so that student groups can implement their ideas on<br />

an appropriate platform. Supported platforms will include virtually anything that can run on the intel<br />

architecture, including Windows XP, Windows 7, Windows Server (including IIS, SQL Server etc.), <strong>and</strong><br />

any flavors <strong>of</strong> linux. Students will have access to the Micros<strong>of</strong>t Developers Network s<strong>of</strong>tware suite, as<br />

well as virtually all open source s<strong>of</strong>tware packages such as apache, python, php, java, mysql, hadoop, …<br />

Students should have the ability to build a simple web page <strong>and</strong> be pr<strong>of</strong>icient with common Micros<strong>of</strong>t<br />

<strong>of</strong>fice business applications, including ACCESS. There will be light programming used as examples <strong>of</strong><br />

how to build dynamic web pages <strong>and</strong> mobile apps. Out <strong>of</strong> class material <strong>and</strong> exercises will be used to<br />

augment in class discussions. Short pass/fail quizzes will be used to make sure that students have<br />

adequate background for different sections <strong>of</strong> the course. Many <strong>of</strong> the students will be MS/IS students<br />

with significant technical skills, so the class will move fairly rapidly. If you score less than 10 on the<br />

background quiz, you will have to catch up rapidly in order to stay with the class. The class will be<br />

divided into teams, where each team has approximately equal technical skills.


The sequence <strong>of</strong> the course will start with creating simple web pages, then customizing the pages using<br />

CSS (Cascading Style Sheets). Next, there will be a discussion <strong>of</strong> client-server computing <strong>and</strong> how it is<br />

implemented in the world wide web, putting emphasis on where processing can be done. Javascript <strong>and</strong><br />

the javascript library, jquery will be used to add dynamic elements to a web page. PhP, ASP <strong>and</strong> JSP<br />

technologies will be discussed as ways <strong>of</strong> doing processing on the server. Students will have an exercise<br />

to add server side processing to a web page using php. Jquery mobile, phonegap <strong>and</strong> HTML 5 will be<br />

used to display web pages on mobile devices. Dreamweaver CSS 5 will be used throughout the term to<br />

develop pages <strong>and</strong> apps. Remote (server) <strong>and</strong> local (browser) storage capabilities will be demoed. About<br />

1/3 <strong>of</strong> the way through the course, students will be placed in small (4-5 person) teams to work on<br />

developing a mobile app. Alternative server architectures will be reviewed <strong>and</strong> contrasted. As the term<br />

progresses, more <strong>and</strong> more class time will be used for teams to meet <strong>and</strong> work together on their apps.<br />

Both the TA <strong>and</strong> I will be members <strong>of</strong> all the teams, to help out with technical issues.<br />

The final project requirement is for a working mobile app that is suitable for deployment in an<br />

organization, or for general usage. Apps can be games, social networking apps, information apps, geo<br />

location services or … . The final projects will be graded based on a combination <strong>of</strong> technical<br />

capabilities <strong>and</strong> business application. For instance, a simple app that has a well-developed business plan<br />

can receive a high grade, as can a more technically complex app.<br />

Course Requirements: There will be several small homework assignments, on-line quizzes, a mid-term<br />

exam, a final (group) project, <strong>and</strong> a one page summary by each team member <strong>of</strong> their contribution to<br />

the project. The last class will be devoted to project presentations. The project will be due the week after<br />

the last class.<br />

The group projects must be implemented in the <strong>Stern</strong> S<strong>and</strong>box cloud unless there is a significant<br />

reason why that is not feasible. Google Docs will be used to host the project code <strong>and</strong> design documents<br />

so that all team members can share information easily.<br />

Grades will be based on homeworks (20%), Mid-term (25%), Final project (30%), <strong>and</strong> class<br />

participation (25%). Please bring name tags to class.


Week Topic(s) Concepts/Activities Readings<br />

1 Introduction, course<br />

overview<br />

Client Server Computing model, review <strong>of</strong> web protocols,<br />

TCP/IP<br />

See <strong>Web</strong> Outline<br />

2 <strong>Web</strong> page development HTML, Dreamweaver, Cascading Style Sheets, Mobile<br />

considerations, publishing a web page at <strong>Stern</strong>.<br />

3 Browser based scripting Javascript, jquery , jquery mobile. How does one add<br />

logic to a web page? Customizing web pages for different<br />

devices. Convert a web app to a mobile app.<br />

4 Server side scripting Examples, Overview <strong>of</strong> server side scripting languages,<br />

PERL, PHP, ASP, JSP, Common Gateway interface<br />

model, forms processing.<br />

How do we enable web <strong>and</strong> mobile users to run<br />

applications. Combining client <strong>and</strong> server side scripting.<br />

See <strong>Web</strong> Outline<br />

See <strong>Web</strong> Outline<br />

5 Alternative backend<br />

platforms<br />

6 Review <strong>of</strong> Relational<br />

Data Base concepts<br />

Mid-term review<br />

AJAX <strong>and</strong> HTML 5 capabilities.<br />

Advantages <strong>and</strong> disadvantages, popular platforms (Apache,<br />

Iplanet, Solaris, SGI, Linux), Java Servlets, Java Server<br />

Pages, web services, application servers, fast CGI, mod<br />

Perl etc. (possible speaker ).<br />

Draft Project descriptions due<br />

E/R models, normalization, SQL, remote access<br />

client/server methods (ODBC, JDBC). How do we access<br />

data bases from the web <strong>and</strong> mobile devices using AJAX<br />

<strong>and</strong> JSON?<br />

See <strong>Web</strong> Outline<br />

See <strong>Web</strong> Outline<br />

7<br />

Cloud Computing<br />

Mid-term exam<br />

The advantages <strong>and</strong> disadvantages <strong>of</strong> cloud computing will<br />

be discussed, <strong>and</strong> a demonstration <strong>of</strong> the <strong>Stern</strong> Cloud will<br />

be given.<br />

See <strong>Web</strong> Outline<br />

Sample servers will be built <strong>and</strong> deployed…., demo <strong>of</strong> the<br />

<strong>Stern</strong> cloud<br />

8 Mobile development<br />

kits<br />

Students will access the demo servers using Remote<br />

Desktop or Xwindows clients<br />

What do we need to build mobile apps? HTML 5,<br />

phonegap, Apple Iphone SDK, Android SDK<br />

See <strong>Web</strong> Outline<br />

We will demo moving an App onto a mobile device using<br />

Dreamweaver<br />

9 Mobile continued Teams will spend part <strong>of</strong> class in project meetings<br />

10 Big Data Solutions,<br />

“data science”<br />

Google file System, Map Reduce, Hadoop Demo<br />

Where does the data come from? Data requirements <strong>of</strong><br />

Social Media sites. How can mobile devices access “big<br />

data”<br />

Map Reduce, HBASE, HIVE, PIG <strong>and</strong> other Big Data<br />

tools for managing petabytes <strong>of</strong> data<br />

See <strong>Web</strong> Outline<br />

Parts <strong>of</strong> class will be devoted to project meetings<br />

11 App development tips This week will be devoted to discussions <strong>of</strong> technical<br />

problems encountered by the teams <strong>and</strong> how they might<br />

solve them<br />

12 Final Projects Project Presentations with Food <strong>and</strong> Drink

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!