INFO250 - Programming Languages:

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


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 info250.info. Demo facility with SQL Scripting to create tables, to dump them, &c. This link provides the basics for this.
  • Use the site at info250.info/gschool/, 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 info250.info, 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 w3schools.com, Learn SQL as your intro text for MySQL and visit mysql.com 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 info202.info! From the command line, use this to get the mysql prompt:

             mysql -ustudents -plittlesecret EBUS202

  • Use w3schools.com, 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 us2.php.net 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 info202.info/astudent 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.


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:

  • Algorithms for describing data; sorting data with pocket sort; calculating central tendency (mean, mode, median) and standard deviation .  Use data from files provided & from coin tosses.

  • Sketches of some algorithms, may contain errors, watch out!  Please note the method used to 'show the whole thing on one page' and 'explode the details on other pages'.

  • Due 10/22, Working app to find min & max + structured notation, 10 points

  • Due 10/31,Teams of two investigate other sorting algorithms, some using features of PHP, runoff to determine fastest approach.  10 points.

  • Due 11/14, Teams demo sort algorithm & structured notation.  Sorts were: Quick Sort, Radix Sort, Merge Sort, and three variations on Pocket Sorts.  Next two classes worked out timings proving that the more complex algorithms got the quickest sorts.

  • Due 11/26, Teams demo complete descriptive stat package and structured designs, ranging 8.5 to 11.5 of 10 points when difficulty was factored in and not much for accuracy.  None showed The Mode, so this is the nugget for the next demo, to perfect the stat packages and prove them accurate.

  • Due prior to Winter Break will be polished stat packages, and individuat projects in HTML, XHTL, XML, CSS, and web-programming features of PHP, and MySQL...

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.  

Textbook:

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.