INFO250 - Programming Languages

Exam Study Questions

Questions from earlier quizzes will appear on the Exam, too.

Database Programming for The Web: PHP, MySQL, JavaScript

End of semester Projects, Recast

Other Language, other Project:

Sketch of AnOrg's Directory: Page 1 | Page 2 | Page 3

Usability Trials

(5/4) What a pleasure it is to see some enthusiastic responses to the 'usability tests' for the intranet at hand. While several in the class were kicked back or playing games and useless, Mssrs Aldridge and George and the Freshman Team led the class in this exercise, have enthusiastically and methodically checked out the classic weaknesses, generating dozens and dozens of email notices to the Site Manager in the process. They have identified, wreaked havoc with, and helped to solve SQL, HTML, and CSS injection exploits known to all who would deface a Web2 site, and have warded off a couple other dreadful exploits, like JavaScript injections.

These Fresh Persons have trounced the other teams and deserve a gold star:

Other teams have been useful, have figured out the clumbsy UI and put together sham organizations, and have identified lots of other usability issues, and the Instructor is most appreciative. This code and database will be made 'portable' and turned over to the teams right soon...

Here are the usability issues the class has turned up, list still being edited as at May 4:

More SQL, beyond Select

Individual Project Assigned 3/16, 10 points, due Friday 3/25:

Individual Project Assigned 2/18, for 15 points, due Wednesday the 2nd of March:

Here is a link to Discussion of the Sample Scripts. Use this for explanation of the PHP language features. Use the docs at for more details about each PHP language element.

Development Environment

Database programming for the web is an inherently complex task involving multiple skills, data structures, and programming languages. Careful attention to error messages from the server and browser is required. The database needs to be quickly available to test SQL statements used in the scripts, to see the effect SQL in the scripts has on the database, and to delete trashed records or make changes to the schema.

The more a programmer can _see_ of these rather abstract components as they work, the easier the work becomes. One way to keep the components visible is to have at least three putty sessions running plus a FireFox browser with a View Source and Tools -> Error Console available:

Here is a link to a screenshot showing such an arrangement of putty sessions and browser:


An 'IDE' (Integrated Development Environment) such as the Open Source Eclipse, IBM's WebSphere (which relies heavily on Eclipse), or Microsoft's Visual Studio (which Looks a lot like Eclipse) provides all these 'views' within a single window. And some, like Visual Studio, allow drag/drop convenience for combining database objects with progamming objects with minimum scripting involved. The proprietary Zend Studio is a powerful (not-cheap) IDE that provides 4GL power to 3GL PHP and SQL languages.

Current Stuff as at Feb 10, 2011

Past Stuff:

(1/19) Team exercise to finish the Stat Pack! Accommodate MySQL data sources. See /home/gschool/DatabaseAvg.php for an example of a command-line interface to choose the table and column to use for descriptive stats. Plan to present pristine structured notation for your team's application.

DBMS (Queries) Study Questions

Exam Study Questions

1/3 & 5:  'LAMP' is prevalent in job listings, stands for Linux/Apache/MySQL/PHP-Perl-Python.  These next few classes are an intro to this environment, starting with the M-MySQL.  

(11/5) Recent and past events necessitate a formal policy for students in INFO250. Please read & heed these rules. Sign your copy and give it to the instructor.

as offered at Maggie Walker Governor's School 2008 -- 2009

Old Topics, starting 9/3/08:

We'll be using PHP as the first language, followed by JavaScript & Visual Basic.NET, then your choice of other languages next semester: RPG, Java, C++, Python, Perl, &?, &?...

9/3 'Programming Languages' don't exist in a vacuum, business doesn't run on PCs.  The environment today, effect of FOSS on proprietary OS & languages Software Wars; Kinds of Software; *IX History; Language History...

9/5 'Range of Computing Platforms' from embedded thru super computers

9/9 'Generations of Programming Languages' 1 thru 4, 5 maybe...

9/15 Algorithms, Flowcharts vs. Structured Notation.  Algorithm for counting & accumulating numbers and calculating an average.  'Desk checking' the algorithm on the board.

9/17 Introduction to Programming:

9/28 Examining and Describing Data:

Network Admins: arp may answer questions? Get the thing backed up!

Next Points, assigned 2/27, for advanced DBMS Project, to gather data for statistical analysis:

  • Learn to administer your database at Demo facility with SQL Scripting to create tables, to dump them, &c. This link provides the basics for this.
  • Use the site at, or start with an _approved_ fresh technique, and use Structured Notation to make a design for your new site.
  • Make a table with User data (UserId, Password, Authority, Preferences, &c) and php scripts to authenticate and authorize Users' access to the pages involved in the solution using a mechanism to protect each page from Unauthorized Access. This may be similar to that used in /home/gschool/web/ or it may be an _approved_ approach.
  • Design and construct tables needed: There will need to be a table to identify 'batches' of data, the dependent & independent variables &c needed to title columns & rows on reports, and to collect the Observations. Present structured designs for approval before getting into construction.

SQL Data Types & Keys: (2/27) Examine the SQL Scripts at /home/gschool, create tables, drop tables, insert records, &c, &c..

Last chance for Last Points, assigned 2/2, for Intro Exercise about reporting on data at SeSPoP. Demo the following on or before Thursday 2/12 for max 15 points:

  • Proficiency with MySQL at the command line, especially agility with 'simple inner joins' in the where clause. You're welcome to investigate the JOIN keyword, especially the sometimes-critically needed OUTER JOIN if you're intrepid, and I'll get some data in the SeSPoP database for you to try it out. Demo proficiency by making at least two queries at the command line, both involving joins and neither being a direct copy of the queries in the GET & POST examples at SeSPoP. One of the queries should demo the sum() operation, using group by & order by clauses to shape the report.
  • Database Reporting to The Web using PHP & MySQL may be demo'd either by making a fresh start if you think you can do it by the due date, or by copying LinkToReports.html, DonationReports.php, LinkToReportsPOST.php, & DonationReportsPOST.php from astudent/web/ to your own web directory, where they may be studied and integrated into your websites' css & pages with minimum mods.
  • Delivering 'active content' requested by a User, either directly on your home page at, or on a page like LinkToReports.html. At least two of your new reports must use FORM elements, especially the <select control with appropriate <options, and use of POST data to pass the selection into your demo script. The other two reports may be chosen using GET data or POST.
  • Improvement of the clearly flawed example scripts by removing the database authentication data to a file in your /home directory, referenced with PHP's require statement, and not in your 'web root directory'. Request that I set it as in apache's group so that a chmod 660 may be set to deny this privileged information from others. Any other improvements, please keep me aware...
  • Clearly Structured Notation of the project, showing the html & php pages & 'requires' involved in the project, highlighting how GET & POST data are used to deliver the appropriate reports, and how the newly encountered if/then/elseif structure is used to validate and act on $NextAction, or a variable like it, and otherwise document your work.

1/14:  'LAMP' is prevalent in job listings, stands for Linux/Apache/MySQL/PHP-Perl-Python.  These next few classes are an intro to this environment.  

  • Intro to DBMS as shown in class.

    Use, Learn SQL as your intro text for MySQL and visit for a detailed reference. Use SeSPoP to make some queries, focusing on queries that require joining tables and providing totals & subtotals.

    More intro to DBMS as at SeSPoP. 

    Log into mysql _after_ you log into! From the command line, use this to get the mysql prompt:

             mysql -ustudents -plittlesecret EBUS202

  • Use, Server Scripting, Learn PHP as your introductory text to Web Programming with PHP. (Prior work with PHP was for CLI -- Please do not run CLI scripts from the web!)   Visit often for detailed stuff about PHP.   

    If you want to walk on the wild side and deplay the LAMP environment on your notebook computer, download wampserver and it will insall WAMP - Windows, Apache, &c

    Discussion of the sample scripts: Database programming with PHP & MySQL 

  • Project #3: Using the $_GET samples, make three queries that are not already on one of the reports pages at and get them linked to your home page.  They must demo table joins & functions like sum/group by. They should be appropriately tabulated with tables or divs.

  • Project #4: Using the $_POST samples, make three queries where the User of the web page gets to select from a list of properties, and gets back an appropriately tabulated report.

  • As Project #4 is demo'd complete individual and team databases will be provided so you can proceed directly to Advanced Stuff.  Watch this spot for more: techniques for database abstraction & UI using PHP & browser interface; essentials of CRUD; transaction logging; &c; &c...

  • Project #5 will be to explore the DOM and structured & OO programming with JavaScript

  • Then, teams construct 'Stat Sites' as tasked a few weeks back...

  • Be thinking of 2nd & 3rd languages to master for next semester.

Web Languages: HTML, XHTML, CSS, JavaScript, MySQL, & PHP starting 12/1, updated 12/10 with requirements, 12/12 to add some links that might be helpful...

XHTML/CSS project due 1/7, scored with this rubric

Quiz #1 January 12th - Study Questions


Instructor: Gerald Saunders

Everything else needs to be entirely revamped to fit 'Programming Languages' for 2008

Course Description:

The course provides an introduction to the several technologies involved in today's web and eBusiness.  Components of today's networks & systems are presented and discussed from an historical perspective, and basic skills in the technologies supporting eBusiness are developed. 

Students learn about current hardware, software, & networking technologies;  HTML; structured programming using PHP; relational database using MySQL; Accounting; and Object-oriented programming using Javascript. 

Tools for system analysis & design are introduced and used in exercises to develop requirements for case studies and make designs for systems to meet the requirements.  Students are introduced to structured and object-oriented analysis and design techniques using the Unified Modeling Language, Unified Process, & Project Management concepts & tools.  


Internet & World Wide Web -- How to Program; Deitel, Deitel, & Goldberg; Prentice Hall; 2004 

Objectives:  To develop basic skills in the several technologies of eBusiness, introduce system design and project management tools.

  1. Survey the range of computer platforms involved in eBusiness, considering hardware and operating systems likely to be encountered in today's systems.
  2. Learn to build a web server, deploy it securely, and use it. 
  3. Gain experience with the Linux command line environment.
  4. Learn to write html, including cascading style sheets for those students most interested in ‘web design’.
  5. Learn to design and write well-structured programs, with exercises involving common data structures and delivery of active content.
  6. Gain intermediate skills in relational database.
  7. Students interested most in ‘programming’ will gain experience in supplying ‘database driven’ web content and working with web forms to provide user interface.
  8. Learn financial accounting applicable to eBusiness.
  9. Gain introductory skills with system design and project management tools


Major Topics:


  1. Survey of current hardware/software platforms and emerging technologies.
  2. Building and securing a Linux web server.
  3. Basic networking concepts: equipment, network media, addressing
  4. Basic operating system concepts
  5. Web design: Graphics for the web, and HTML
  6. Logging into a Linux server and working at the command line
  7. Introduction to structured programming logic
  8. Introduction to structured programming with PHP
  9. Introduction to relational database using MySQL
  10. Cascading Style Sheets
  11. Database programming with PHP & MySQL & web forms.
  12. Object-oriented programming with Javascript
  13. Accounting concepts for programmers
  14. System architecture & design tools: Visio, the UML & Unified Process, and MS Project


Classroom Expectations:


The classroom is a tiered computer lab with a networked computer for each student.  The instructor’s system at the lectern is connected to a hi-resolution projector.  Visualize is available so that work on any student's monitor may be displayed on all monitors, or projected for all to see.


Materials Needed:


All the ‘open source’ software is available for free.  The instructor will provide an internet-accessible server where students will make their websites.  The Microsoft Academic Alliance provides other software for free download, and of this suite we will be using Visio and MSProject. 


Students who are especially interested in pursuing information systems and want to gain more experience are encouraged to build and deploy servers/firewalls on their networks at home so that they will gain valuable experience in networking and security by ‘watching their logs’ and administering their own server on the internet.