CISC 3140 (CIS 20.2) DESIGN & IMPLEMENTATION OF SOFTWARE APPLICATION II

Similar documents
Using Moodle in ESOL Writing Classes

Android App Development for Beginners

Applying Information Technology in Education: Two Applications on the Web

Specification of the Verity Learning Companion and Self-Assessment Tool

An Introduction to Simio for Beginners

MASTER OF SCIENCE (M.S.) MAJOR IN COMPUTER SCIENCE

JING: MORE BANG FOR YOUR INSTRUCTIONAL BUCK

Spring 2015 Online Testing. Program Information and Registration and Technology Survey (RTS) Training Session

Introduction to Moodle

EDIT 576 (2 credits) Mobile Learning and Applications Fall Semester 2015 August 31 October 18, 2015 Fully Online Course

STUDENT MOODLE ORIENTATION

Teaching Algorithm Development Skills

Web-based Learning Systems From HTML To MOODLE A Case Study

EDIT 576 DL1 (2 credits) Mobile Learning and Applications Fall Semester 2014 August 25 October 12, 2014 Fully Online Course

Trip to the beach essay >>>CLICK HERE<<<

1 Use complex features of a word processing application to a given brief. 2 Create a complex document. 3 Collaborate on a complex document.

Appendix L: Online Testing Highlights and Script

TA Certification Course Additional Information Sheet

Shared Portable Moodle Taking online learning offline to support disadvantaged students

Open Source Mobile Learning: Mobile Linux Applications By Lee Chao

The Flaws, Fallacies and Foolishness of Benchmark Testing

Speak Up 2012 Grades 9 12

BSM 2801, Sport Marketing Course Syllabus. Course Description. Course Textbook. Course Learning Outcomes. Credits.

Modeling user preferences and norms in context-aware systems

Group Assignment: Software Evaluation Model. Team BinJack Adam Binet Aaron Jackson

Student User s Guide to the Project Integration Management Simulation. Based on the PMBOK Guide - 5 th edition

An Evaluation of E-Resources in Academic Libraries in Tamil Nadu

Chamilo 2.0: A Second Generation Open Source E-learning and Collaboration Platform

SYLLABUS- ACCOUNTING 5250: Advanced Auditing (SPRING 2017)

1 Instructional Design Website: Making instruction easy for HCPS Teachers Henrico County, Virginia

EdX Learner s Guide. Release

Ministry of Education, Republic of Palau Executive Summary

K 1 2 K 1 2. Iron Mountain Public Schools Standards (modified METS) Checklist by Grade Level Page 1 of 11

disadvantage research and research research

Please find below a summary of why we feel Blackboard remains the best long term solution for the Lowell campus:

Utilizing FREE Internet Resources to Flip Your Classroom. Presenter: Shannon J. Holden

LEARN TO PROGRAM, SECOND EDITION (THE FACETS OF RUBY SERIES) BY CHRIS PINE

"On-board training tools for long term missions" Experiment Overview. 1. Abstract:

Tour. English Discoveries Online

CWIS 23,3. Nikolaos Avouris Human Computer Interaction Group, University of Patras, Patras, Greece

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

Testing A Moving Target: How Do We Test Machine Learning Systems? Peter Varhol Technology Strategy Research, USA

Accounting 312: Fundamentals of Managerial Accounting Syllabus Spring Brown

PowerTeacher Gradebook User Guide PowerSchool Student Information System

Foothill College Summer 2016

CS 1103 Computer Science I Honors. Fall Instructor Muller. Syllabus

Demography and Population Geography with GISc GEH 320/GEP 620 (H81) / PHE 718 / EES80500 Syllabus

Computer Organization I (Tietokoneen toiminta)

CENTRAL MAINE COMMUNITY COLLEGE Introduction to Computer Applications BCA ; FALL 2011

From Self Hosted to SaaS Our Journey (LEC107648)

content First Introductory book to cover CAPM First to differentiate expected and required returns First to discuss the intrinsic value of stocks

On-Line Data Analytics

Course Syllabus p. 1. Introduction to Web Design AVT 217 Spring 2017 TTh 10:30-1:10, 1:30-4:10 Instructor: Shanshan Cui

RETURNING TEACHER REQUIRED TRAINING MODULE YE TRANSCRIPT

CPMT 1347 Computer System Peripherals COURSE SYLLABUS

Economics 201 Principles of Microeconomics Fall 2010 MWF 10:00 10:50am 160 Bryan Building

CURRICULUM VITAE PERSONAL DETAILS. Evans Anderson Kirimi Miriti Year of Birth: English (Excellent), Kiswahili (Excellent), French (Fair).

Cognitive Thinking Style Sample Report

Intel-powered Classmate PC. SMART Response* Training Foils. Version 2.0

EXPO MILANO CALL Best Sustainable Development Practices for Food Security

University of Florida ADV 3502, Section 1B21 Advertising Sales Fall 2017

Bittinger, M. L., Ellenbogen, D. J., & Johnson, B. L. (2012). Prealgebra (6th ed.). Boston, MA: Addison-Wesley.

MVRA MEMBERSHIP QUESTIONNAIRE ANALYSIS MARCH 2005 AUDATEX ESTIMATING SYSTEM

AU MATH Calculus I 2017 Spring SYLLABUS

Valcik, N. A., & Tracy, P. E. (2013). Case studies in disaster response and emergency management. Boca Raton, FL: CRC Press.

Jeff Walker Office location: Science 476C (I have a phone but is preferred) 1 Course Information. 2 Course Description

Development of an IT Curriculum. Dr. Jochen Koubek Humboldt-Universität zu Berlin Technische Universität Berlin 2008

Spring 2014 SYLLABUS Michigan State University STT 430: Probability and Statistics for Engineering

Blended E-learning in the Architectural Design Studio

Business Analytics and Information Tech COURSE NUMBER: 33:136:494 COURSE TITLE: Data Mining and Business Intelligence

EVERYTHING DiSC WORKPLACE LEADER S GUIDE

Five Challenges for the Collaborative Classroom and How to Solve Them

How to make an A in Physics 101/102. Submitted by students who earned an A in PHYS 101 and PHYS 102.

Getting Started Guide

Courses in English. Application Development Technology. Artificial Intelligence. 2017/18 Spring Semester. Database access

Top Ten Persuasive Strategies Used on the Web - Cathy SooHoo, 5/17/01

a) analyse sentences, so you know what s going on and how to use that information to help you find the answer.

Coding II: Server side web development, databases and analytics ACAD 276 (4 Units)

Houghton Mifflin Online Assessment System Walkthrough Guide

Course Content Concepts

BHA 4053, Financial Management in Health Care Organizations Course Syllabus. Course Description. Course Textbook. Course Learning Outcomes.

CS Course Missive

Custom Program Title. Leader s Guide. Understanding Other Styles. Discovering Your DiSC Style. Building More Effective Relationships

COMM 210 Principals of Public Relations Loyola University Department of Communication. Course Syllabus Spring 2016

Hongyan Ma. University of California, Los Angeles

ANT 2000: Intro to Anthropology Room #RDB 1100 (Law Bldg) Mon. & Wed. 2:00 4:45 p.m. Summer B 2012 (June 25 Aug. 8)

New Paths to Learning with Chromebooks

Science Olympiad Competition Model This! Event Guidelines

Section 7, Unit 4: Sample Student Book Activities for Teaching Listening

The Moodle and joule 2 Teacher Toolkit

TEACHING IN THE TECH-LAB USING THE SOFTWARE FACTORY METHOD *

the conventional song and dance formula is kept in 21st century H istory Movies, filmmakers are now moving towards

Nutrition 10 Contemporary Nutrition WINTER 2016

Meriam Library LibQUAL+ Executive Summary

K5 Math Practice. Free Pilot Proposal Jan -Jun Boost Confidence Increase Scores Get Ahead. Studypad, Inc.

MULTIMEDIA Motion Graphics for Multimedia

Texas A&M University-Central Texas CISK Comprehensive Networking C_SK Computer Networks Monday/Wednesday 5.

Shank, Matthew D. (2009). Sports marketing: A strategic perspective (4th ed.). Upper Saddle River, NJ: Pearson/Prentice Hall.

TeacherPlus Gradebook HTML5 Guide LEARN OUR SOFTWARE STEP BY STEP

Transcription:

CISC 3140 (CIS 20.2) DESIGN & IMPLEMENTATION OF SOFTWARE APPLICATION II Instructor : M. Meyer Email : meyer@sci.brooklyn.cuny.edu Course Page: http://www.sci.brooklyn.cuny.edu/~meyer/cisc3140

CONTENTS Introduction to Course Course Topics Course Structure/Overview Foundations of Software Engineering

DESIGN & IMPLEMENTATION OF SOFTWARE APPLICATION II (GENERAL DESCRIPTION) In CIS 3120 (20.1) you began working on "software applications" rather than mere programs. Hopefully, using the programming skills you had already acquired to move forward into the basic topics of interface design, graphics and networking. In this class CIS 3140 we will continue to examine the creation of large and complex software applications. We will focus on designing, building and testing a database-backed "intelligent" web-based systems. Our emphasis will be on software development concepts, tools and technologies, database systems, and "intelligent" systems. NOTE: CISC 3140 should be taken after CIS 3120.

COURSE BACKGROUND Course designed by departmental committee. Which means I have NO leeway in changing the basic content of the lectures or labs. Much of our materials are provided courtesy of: Prof. Elizabeth Sklar (Associate Professor and Director of Multimedia Computing Program. Adjunct Instructor Jeffery Raphael I do write my own lectures and will ADD information to lectures and labs where appropriate. I also encourage you to feel free to comment on real-world practices that you have encountered.

WHO AM I? Instructor Matthew K. Meyer CISC 3140 Multimedia Programming CISC 3600 Game Programming Also taught courses in Programming, Graphics, Security 6 years industry experience Systems Administration (A+, Network+ MCSE), Software Development, Systems Integration, Web Development, IT Headhunting. I still consult on the side (Google Apps) MA Brooklyn College, PhD CUNY GC (2012) Research Areas Semantic Web (Web 3.0, Intelligent Web Systems) XML database systems XML query efficiency CS Education

COURSE WEBSITE & RULES Course Website: http://www.sci.brooklyn.cuny.edu/~meyer/cisc3140 Please go there and read! Course Rules: In addition to all UN, US, NY, and Brooklyn College rules we have two specific course rules: 1. Respect will be shown. 2. Get your money's worth! Pet Peeve -> Cell-phones If you don't understand, STOP ME!

COURSE TOPICS We will cover the following topics in 4 units: I. Software Development - foundations of software engineering, design patterns, process models, software testing II. III. IV. Database Systems - information models, mysql, php Tools and Technologies - inter-operability, xml/json, uml, configuration management, content management Intelligent Systems - intelligent interface agents, decision making, knowledge representation

GENERAL SUGGESTIONS Avoid missing ANY classes! Arrive on time. Have something to eat and drink before you come to class. Find a partner(s) in the class today: Projects will be team projects. Sharing notes and exam study partners. Plan on at least 2-3 hours a week, outside of the class to work on class projects & labs. READ the course website syllabus, at least once.

COURSE STRUCTURE 4 Units Each unit has 1 3 lectures 1 3 labs The labs will be hands-on sessions Grading Policy Assignments and projects (40%) Attendance & Participation (10%) Midterm (20%) Final (30%) (date TBA)

ONLINE RESOURCE There is no textbook for this class: Software Development technology is changing rapidly. Books are expensive (web is amazing FREE resource). Lectures will be posted on the course web page after each lecture. Labs will distributed in class and be posted after the class. Links to online resources will also be posted on the class website and in lectures and labs where appropriate. For people who want books, much of what we discuss can be found in a wide variety of books that are published by O Reilly Publishing (http://www.oreilly.com), and appropriate publications will be linked on the class web page

COURSE OVERVIEW I This is a programming course! It is assumed that you are familiar with: 1. Imperative (Structured Programming) Sequence, Selection, Repetition 2. Procedural Programming 3. Object Oriented Programming 4. Data Structures 5. Basic Search and Sort Techniques At this stage in your career, you really can, teach yourself a new programming language in a matter of weeks (IF it belongs to paradigms that you are already familiar with). We will work predominantly with PHP in this class.

COURSE OVERVIEW II Throughout the course, we will be discussing the concepts, technologies and design principles that underlie webbased systems with the following type of structure -> Note each layer is an abstract delineation.

COURSE OVERVIEW II (CONT) In the previous slide each of those layers could be: 1. Part of one application that resides on one machine. Single Player Games 2. Part of multiple applications on one machine. L.A.M.P. Single most common database enabled web system 3. Part of multiple applications on multiple machines. Client Server Model GRID Computing (Google Apps Datastore)

WE WILL BE USING LAMP LAMP is an acronym for an integrated stack of free, open source software. Derives name from the first letters of Linux (operating system), Apache HTTP Server, MySQL (database software) and Perl/PHP/Python. We will be using a LAMP setup to develop software applications in this class. You will have access to a machine (Linux OS) with a Web Server (Apache) on it that is also running a database (MySQL) and that support scripting (PHP).

YOU DON'T NEED TO DO THIS!!! A LAMP distro is an incredibly easy thing to setup at home: Install a LAMP server on Ubuntu Linux Install a LAMP server on Debian GNU/Linux Install a LAMP server on SUSE Linux XAMPP for Windows MAMP for MAC AGAIN you will have access to a LAMP distro online. You don't need to setup your own LAMP distro.

CASE STUDIES 1. Web sites that focus on delivery of goods or products (bringing stuff to people) Amazon.com a click and mortar company that didn t exist before the internet. It delivers products and also provides a means for re-sellers (other companies) to sell products through amazon s gateway. Macys.com a traditional bricks and mortar company that existed long before there was internet; but now they have a web site and support online purchases in addition to physical stores. 2. Web sites that focus on delivery of services (bringing information to people) Yahoo.com delivers a wide range of services, from email to games to a search engine to news feeds Google.com primarily a search engine, but also now supports email, web hosting a very popular mapping application, and GOOGLE APPS (perhaps the death of Office).

CASE STUDIES CONTINUED 3. Web sites that support social networking (bringing people together) Facebook.com hosts profiles, provides 'live' space for chat, space for asynchronous collaborative blogging, takes private information and sells it for profit. eharmony.com dating site 4. Web sites that contain intelligent components Hopstop.com provides personalized directions to places in NYC via public transportation Netflix.com provides preference-based matching of customers to potential goods and services

CLASS EXAMPLES Throughout the course, we will be introducing a number of different tools and technologies. It will be helpful to have a few running examples that we can refer too to illustrate concepts and ideas. We will use these examples as a kind of glue to hold everything together. One example we will use is this: 1. Suppose we want to develop a web site (or APP) called bignightout.com 2. The idea is to have a place where users can go and plan an evening out on the town. 3. At the very least there should be information about where to go for dinner and a movie.

CLASS EXAMPLES II 4. Our site will have components like: restaurant we might want to know: restaurant review location and directions category of food real-time information like how busy is it right now movie we might want to know: what is playing where and when the price of a ticket the length of the movie access to view a trailer reviews real-time information like are there any tickets left for the next showing companions we might want to find someone to go out with: do any friends want to come along? is there anyone we do not want to invite? maybe you want a blind date real-time information like where are your friends right now

CLASS EXAMPLES III We will discuss the technologies that could be used to create a site like bignightout.com We will (in groups) design the bignightout.com site (and other sites) and review each other s designs. We will build then build the bignightout.com site (and other sites) and test it! When you are done, I highly suggest, that you create a portfolio page of your site. Increasingly companies are wanting to see the finished products of programmers before they are hired: Why the new guy can't code.

TO DO 1. Complete the pre-semester survey and return it to me. 2. Acquire a Flash Drive for use in the course if you don't already have one. 3. Complete Homework #1 (in which you will): 1. READ "No Silver Bullet" by Prof Frederick P. Brooks. Available on the course website AND 2. WRITE a one page, double spaced, 12 point format, Arial Font summary of "No Silver Bullet" by Prof Frederick P. Brooks making sure to put your name, the class, the date and the title of your paper at the top of your paper.

I KNOW WHAT YOU'RE THINKING Your thinking, "Did he really just give a homework assignment on the first day?!" Your thinking, "What kind of monster would do such a thing?!" Here's the deal: 1. Sadly, statistically speaking, at least one of you is not going to pass this course. 2. I would like to find out who that person(s) is BEFORE the drop deadline passes (to save that person money). 3. Experience has shown me that the set of "the people who can't be bothered to write a simple paper during the first week of class" always comprise a proper superset of "the people who aren't going to pass this class". 4. Your first homework assignment is only worth 1 point (Attendance & Participation) but it's completion (or the lack thereof) is useful information to me (and the article is useful information to you).

Take 5

SOFTWARE ENGINEERING

SOFTWARE ENGINEERING Common Definition: Designing, implementing, and modifying software in order to improve quality, affordability, maintainability, and ease of construction. Stephen Schach Definition: Software engineering is a discipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the user s needs. In a Nutshell: Building software in a costeffective and efficient manner

PROGRAMS!= SOFTWARE PRODUCTS We start our career in computer science learning to write "programs". A program is a simple application developed by an individual for that individual (i.e. any programs you ve written for CIS 1.5) A software product on the other hand has multiple users and by definition is intended to be used by many others. Consequently we would like our software to be well tested, documented, user-friendly and maybe even include a manual (even though nobody will read it).

SOFTWARE PRODUCTS IN THE REAL WORLD Your previous courses taught you these mechanics of program writing: 1. You will always be given clear/clean understandable specifications. 2. You will always know that it is possible to write the specified program in the time allotted. In the real world: 1. Specifications are often unrealistic (if not impossible). 2. The timeframe for creating a software product is often not realistic? Consequently in the real world: Software is often delivered late, over budget and broken. The real world is wildly unpredictable and software is fundamentally brittle; yet software often lasts longer than employees or hardware; consequently software sometimes ends up being used in very different ways than how it was originally designed to be used. The field of software engineering was established in order to produce proven methodologies to help overcome these real-world issues.

SOFTWARE ENGINEERING Software engineering includes the following: requirements analysis human factors functional specification software architecture design methods programming for reliability programming for maintainability team programming methods testing methods configuration management

DOES SOFTWARE ENGINEERING HAVE TO BE COMPLEX? Yes! Computer Software is more complex than computer hardware (which has seen exponential growth in speed, performance, and cost reduction). Computer Software is one of the most complex and difficult things that human beings create. Non-redundant components. Large number of states. Problems difficult to reduce simplify (very difficult to geometrically express). Problems always changing (new features).

SOME TOOLS AND TECHNIQUES DO HELP High-Level Languages Complex Data Structures Abstract Data Structures (Classes) Multi-Tasking Standards Operating System Standards Internet Standards Interface Standards Formalized Design Methodologies & Paradigms Paradigm = Structured Approach to Solving a Problem

DESIGN METHODOLOGIES. NECESSARY? YES! "Program difficulty increases exponentially with program size. Why? Because of human psychology. The human mind can only deal with a limited number details at any time. When the number of details in a problem increases linearly, it becomes exponentially more difficult to handle." (Mall, 2004) From here on out, for the rest of your career, NEVER just sit down and start coding. PLAN first, and preferably plan within a "design methodology"; within a "design paradigm".

NOTE ON PERSONAL WEB SITE VS NON-PERSONAL WEB SITE It is assumed at this point that you have done some web development and are proficient in XHTML (or HTML 4.0) and JavaScript. Please don't confuse simple relatively static personal websites with professional websites: Personal home page is website about an individual or small group with little to no scripting and/or application or database integration. Professional website, is a large multi page (often dynamically created) website, like a news site, search engine, social networking site or web portal.

References Mall, R. (2004). Fundamentals of software engineering. New Delhi: Prentice-Hall of India Private Limited.

HANG ON, WE'RE GOING TO WATCH A MOVIE No Silver Bullet--Essence and Accidents of Software Engineering, by Frederick P. Brooks. (paper you're going to write report on) Originally published in 1986 in Information Processing 86. Reprinted in Computer, 20, 4 (April 1987) 10-19. Also reprinted in The Mythical Man- Month, Anniversary Edition (1995). (downloaded from http://osprey.unisa.ac.za/download_2003/inf425-n/a2.pdf) Professor Frederick P. Brooks (Website) Brooks lecture (Movie)