The purpose of this course is to understand what are the Programming Languages, what is meant by Web Programming, Programming Client-side and server-side. In particular, this course gives the basic knowledge of server-side programming by using programming languages PHP and MySQL. Moreover, from a practical point of view, we want to understand what are the "Content Management System (CMS)" and to learn how to use them at least, at a basic level. To this end, during the course we will consider the open source CMS Joomla and we'll see how to install and configure it. To carry out the practical activities of the course is necessary to have an Internet connection, a browser (Mozilla Firefox is recommended and, if necessary, its portable version), an FTP client (we recommend the Plug-In for Firefox called FireFTP. If you do not have FTP then it can be useful a PHP script that does it for you on the server: may be an unzipper in php. Also a zipper in php may be useful) and an ASCII text editor to write HTML, JavaScript and PHP (for example, notepad++ for Windows and possibly its portable version. In general, for other text editor see the following page).

Learning Materials:

Teaching material on Joomla:

  1. The Internet is a computer network = a computer network (that is, the hardware component representing the computing devices/nodes and the eventual direct communication channels/links among them. It is mathematically modelled as a graph) + a communication protocol (that is, the software component given by the language spoken by the nodes). The communication protocol of Internet is the TCP/IP or Internet Protocol Suite.
  2. The URL addresses/URI, file systems, directory structures and paths.
  3. The World Wide Web is a particular service of Internet.
  4. Definition of CMS.
  5. What is Joomla.
  6. Site of Joomla (where to find the current Joomla 3 software release to download).
  7. Sites of documentation for the installation, operation and customization of Joomla:
    1. docs.joomla.org,
    2. How to copy a joomla web site,
    3. Screencast on how to copy a template Joomla Web site,
    4. Groups and permissions in Joomla 3,
    5. On the Joomla templates,
    6. Free Joomla 3 templates on Google search,
    7. developer.joomla.org,
    8. Joomla 3 on Google search,
    9. www.joomla.it.

Teaching materials on Automatic Communication Theory:

  1. The cartesian product of sets. Relations, equivalence relations and functions. Injective, surjective and bijective functions and infinite sets.
  2. The Graphs,
  3. The Trees and application of Trees in Computer Science.
  4. Communication, Computer Science and Automatic Communication.
  5. What is a Computer and the Computer Science.
  6. Turing machines and the concept of automatic work.
  7. Hierarchy of computational capabilities of various computer models in the case of languages: the Chomsky Hierarchy.
    1. The formal languages,
    2. The formal grammars,
    3. The Automata.
  8. What is communication.
  9. Multimedia, interactivity and hypermedia.
  10. The Signals. Analog signals versus digital signals. The resolution of a digital signal.
  11. Andrew McAfee's talks: are droids taking our jobs (at TED), the future of jobs.
  12. Example of (very very) near future cultured people.

Material on Programming Languages ​​:

  1. Alan Turing.
  2. The Turing Machine.
  3. The concept of algorithm and program.
  4. John von Neumann: from the ENIAC to the stored-program computer EDVAC computer.
  5. The Computer and the modern architecture of von Neuman (see also the von Neumann machine and modern computers on wikipedia).
  6. Formal languages ​​(= languages ​​"interpreted" by the machines) versus natural languages ​​(= languages ​​"interpreted" by humans).
  7. Programming languages: Machine languages ​​versus high level programming languages.
  8. Compilers and interpreters.
  9. Client-side scripting and Web Browsers.
  10. Server-side scripting and Web Servers.

Material on PHP:

  1. What is PHP.
  2. Official PHP site.
  3. PHP manual at php.net: section Getting Started and section "Language Reference". The interpreter Symbol table. The regular expressions. The stack.
  4. PHP Manual on wikibooks.org.
  5. Object orientation, Object oriented programming and PHP OOP basics techniques. The Encapsulation technique.
  6. PHP reference guide search on Google.

Material on MySQL:

  1. What is MySQL.
  2. What is a Database and a Database Management System (DBMS).
  3. What is a Relational database.
  4. The Structured Query Language (SQL) = Data Definition Language (DDL) + Data Manipulation Language (DML) + Data Control Language (DCL).
  5. SQL Manual on wikibooks.org.
  6. The MySQL PHP drivers (API) ( = PHP interface functions with MySQL). Manual of the original MySQL-PHP API.
  7. The 5.7 MySQL reference manual on http://dev.mysql.com/doc/refman/5.7/en/. You may find interesting the following chapters: Language Structure, Data Types, Functions and Operators and SQL Statement Syntax.

Subsidiary Teaching Material:

Material on HTML:

  1. HTML 4.0 Reference del Web Design Group (WDG) - (html).

Material on the CSS:

  1. CSS Reference del Web Design Group (WDG) - (html).

Material on JavaScript:

  1. JavaScript documentation  of the Mozilla Foundation.

-LGT