Instructor: David R. Brooks, PhD
e-mail: brooksdr@drexel.edu BUT, this fall I am just finishing a new manuscript combining these two texts with some new material and I will put this manuscript online closer to the start of classes. If you would like a printed copy, we can arrange that at our first class meeting. I think a photocopied and spiral bound copy will cost about $15. |
This course provides an introduction to programming and problem solving. Rather than using a "traditional" programming language such as C or C++, it uses the HTML/JavaScript/PHP environment. This approach recognizes the dominant role HTML and JavaScript play in today's online world, and takes advantage of the fact that JavaScript and PHP include the most important features of modern structured programming languages. HTML is a basic Web development tool that provides the user interface for problem solving. JavaScript is a fully featured client-side language that can be used to solve a wide range of computing problems, including problems from science and engineering. JavaScript's inability to access information stored on a remote server is a limitation that can be overcome by using a server-side language such as PHP. For our purposes, PHP's ability to read and write files on a server is its most important characteristic.
Students are expected to bring to this class their own suggestions for computing problems that are relevant to their current studies. By the end of the course, students will be able to create their own online applications for solving a wide range of computing problems. Because the course emphasizes general programming principles, it prepares students to learn other languages as needed. Not so incidentally, a working knowledge of HTML, JavaScript, and PHP is a highly marketable skill.
There will be weekly homework assignments. These assignments will be more challenging later in the course. Homework assignments are due at the beginning of class each week, so that we may discuss them during class. I am always available online to discuss these assignments and I am happy to arrange to meet with you individually before class.
mon day year hour min sec AM/PM 10 17 2010 9 29 35 AM 10 17 2010 12 40 0 PM 11 3 2010 9 22 33 PM 11 4 2010 12 3 14 AM
Prior to the start of class, you must establish a
basic Web page on Drexel's dunx1 computer or elsewhere. See this file. NOTE: This file may need to be updated. If I find
problems I will try to fix them. If you find problems, please let me know.
Prior to the start of class, I will be available to help if you have questions. This Web page does not need to
include anything other than your name in plain (default) font. The point of this requirement is to minimize the amount of
class time spent going
over the purely mechanical process of setting up a Web page. You do not have to put a Web page on dunx1. If you already have a
Web site on which you can
post assignments for this class, that is OK. Here is the minimum HTML code you will need:
<html> <head> <title></title> </head> <body> Home page for [your name]. </body> </html>
You will need an HTML/JavaScript/PHP editor for this course. In principle, you can use any text editor, even Notepad. However, a "real" script editor will make your life much easier. I use the freeware version of AceHTML, available from www.visicommedia.com. The only downside to this free software is that it may require you to install other software that you don't want. I have a very old version, when this wasn't a problem. Presumably you can uninstall whatever software you don't want to keep. You do NOT need any kind of more elaborate Web design software, such as FrontPage, but you can use it if you already have it. There are several freeware editors available online, but I haven't looked at them. If you bring a Windows laptop to class, you can copy my installation program for AceHTML 5.0, which is what I use. It is pretty old, so I do not know whether it will work with Vista or Windows 7.
You will also need access to a server that is running PHP. The easiest solution is to create a local server on your own desktop and/or laptop. Note that, because of system security issues, Drexel's dunx1 computer (on which your Drexel e-mail and possibly your web page reside) does NOT support PHP (or other server-based scripting languages). Biomed's own servers also will not support server-based scripting languages. For Windows computers, you can download and install WAMP (Windows Apache server with MySQL and PHP). For Linux, use LAMP. For Macintosh, use MAMP. These are all free downloads. I have WAMP on my Windows XP computers and I found the installation to be very easy. In the past, I had problems with configuring PHP on the IIS server that comes with Windows. I have not tried MAMP, but it is reported to be easy as well. I have LAMP installed on my own Linux-based server at home, but I know virtually nothing about Linux.
Powerpoint presentations:
Chapter 1
Chapter 2
Chapter 3
Chapter 4a
Chapter 4b
Chapter 5
Chapter 6
my homework solutions
philtemp.txt data file
Chapter 7
Chapter 8
Chapter 9
These books aren't required for this course, but they are an essential investment if you continue to use HTML and JavaScript after this class. Of course, there is also a vast amount of online information about HTML and JavaScript. The book by Stauffer is no longer in print, but it was the first HTML book I ever read. I include it partly for sentimental reasons, but it is still a good source for learning HTML if you can find a used copy.
Thomas Powell, HTML: The Complete Reference, Third Edition, 2001, Osborne/McGraw-Hill, Berkeley, CA. ISBN 0-07-212951-4.
Thomas Powell and Dan Whitworth, HTML Programmer's Reference, Second Edition, 2001, Osborne/McGraw-Hill, Berkeley, CA. ISBN 0-07-213232-9.
Thomas Powell and Fritz Schneider, JavaScript: The Complete Reference, 2001, Osborne/McGraw-Hill, Berkeley, CA. ISBN 0-07-219127-9.
Todd Stauffer, Using HTML 3.2, Second Edition, 1996, Que Corporation, Indianapolis, IN. ISBN 0-7897-0985-6.
There are a lot of books about PHP, too, but I have never bothered to buy one. Once you have some idea about how programming languages work, what you need for a new language are the specific implementation details for that language. The PHP books I have seen do not address a science/engineering-oriented audience and are therefore not a very efficient way to learn what you need to know. In conjunction with the text for this course, you should be able to do what I did when I was learning PHP: use online sources. The first source to which I turn when I have a question is www.php.net/manual/en/index.php. This is not just a language reference, but the site also includes many examples of PHP code, along with useful reader commentary. It is especially useful when you have a question about using a built-in PHP function.