Fall 2007 Syllabus
CISC103: Intro to Computer Science with Web Applications
Sections 010, 011
Instructor |
Phillip T. Conrad, Ph.D., Assistant Professor |
Office |
414 Smith Hall |
Postal Address |
Department of Computer & Information Sciences, 103 Smith Hall, Newark, DE 19716 USA |
Phone |
(302) 831-8622 (email is preferred). |
Fax |
(302) 831-8458 |
Email |
pconrad@udel.edu (Please cc your TA unless you have a specific reason not to, and try to send from your udel email address; mail from AOL, Yahoo etc. often gets blocked as spam) |
Web |
http://www.udel.edu/CIS/103/pconrad |
Office Hours |
TBA
Or by appointment (send email to pconrad@udel.edu request an appointment,
To avoid delays, put "CISC103 Appointment Request" in the subject line.
No office hours on days when UD classes do not meet or are cancelled due to weather, etc.
Any other adjustment to office hours will be announced via email to the class.
|
TA: Oana Tudor, <oanat@udel.edu>, Office Hours and Location TBA.
Course Objectives for CISC103
Provided you participate fully in the assigned readings, lab exercises, projects, and other course activities, by the end of course, you should be able to do all of the following.
- The student will be able to create simple web pages by hand editing HTML,XHTML,CSS and JavaScript files.
- The student will be able to identify various parts of an HTML/XHTML document, including:
- element names and element content
- open tags, closing tags, and self-closing tags
- attribute names and attribute values
- properly nested and improperly nested elements
- The student will be able to demonstrate how to use both the file transfer features of the SSH Secure Shell client, and simple Unix commands to set up a web page on a Unix file server.
- The student will explain the difference between syntax (formatting rules) and semantics (the meaning of language constructs), and will be able to demonstrate this understanding by labelling aspects of the language as either syntax or semantics.
- The student will be able to identify the syntax and semantics of the most important HTML/XHTML elements, including at least the following:
- html, head, body, title, h1, h2, h3, h4, h5, h6, p, a, br, hr, em, div, span, pre, code, em, strong, table, tr, td, th, thead, tbody, caption, img.
- The student will be able to name three ways of using CSS, explain the benefits/drawbacks of each one, and demonstrate that they know how to use CSS in this way:
- inline CSS
- internal style sheets
- external style sheets
- The student will be able to various syntax features of the CSS language, including:
- properties, selectors, classes, ids, pseudo-classes, property values.
- The student will be able to explain what a deprecated element is, give examples of some deprecated elements and attributes, and explain why elements the font and center elements are deprecated.
- The student will be able to explain the difference between HTML and XHTML, and explain the advantages and disadvantages of each over the other.
- The student will be able to explain various aspects of validation of web documents, including:
- explaining the purpose of a DOCTYPE declaration is at the beginning of an HTML/XHTML file
- explaining the benefits of writing "valid" HTML/XHTML
- giving examples of some common validation errors including improper nesting, unclosed tags, missing quotation marks on attribute values, and use of deprecated or non-standard elements or attributes.
- identifying those common validation errors in sample HTML/XHTML code, and
- avoiding those common validation errors in their own HTML/XHTML code.
- being able to
- The student will be able to:
- explain the Computer Science principle known as "separation of concerns" in general,
- as it applies specifically to the separation of content and formatting for creating web pages and web sites
- demonstrate an understanding of the principle by creating web pages where content is specified purely in XHTML, and formatting is specified purely in CSS, and either one can be changed without affecting the other.
- The student will be able to demonstrate a knowledge of the difference between block and inline HTML/XHTML elements, and between how block and inline elements are laid out by the browser by
- matching common HTML elements with their appropriate type (block, inline, or neither).
- demonstrating a knowledge of the difference
- matching element layouts with the code that generated them
- writing code to generate various desired layouts
- The student will be able to explain the difference between static and dynamic web pages, and demonstrate an understanding of this explanation by writing example code for each.
- The student will be able to explain the difference between client-side and server side dynamic content, and will be able to demonstrate this understanding by writing example code for each, including:
- an example of JavaScript code to demonstrate client-side dynamic content (JavaScript will be a major course topic)
- an example of PHP to demonstrate server-side dynamic content. (PHP will be a minor course topic.)
- The student will be able to demonstrate an understanding of basic programming skills in JavaScript, including:
- writing functions that take numeric parameters and compute numeric results
- writing functions that take text parameters and compute text results
- assigning values to variables, and using variables in expressions.
- writing functions that use control structures including if/else, while loops, and for loops.
- The student will be able to explain and applying the concept of type in programming, in the following ways:
- by identifying type as an attribute of variables, expressions, and literal values
- by identifying the type of specific variables, expressions and literal values in a segment of JavaScript code
- by differentiating between how JavaScript handles values such as 5 and "5" differently because they have different types.
- The student will be able to use the boolean operators "and" (&&), and "or"
(||) in logical expressions.
- The student will be able to use a JavaScript interpreter (separate from a web browser) to prototype and test code before embedding it in a web page.
- The student will be able to demonstrate an understanding of three ways of including JavaScript in a web page, namely (1) inline event handlers (2) internal script elements, (3) external script files
- The student will be able to demonstrate how to use each of these techniques
- The student will be able to identify circumstances when each of these is appropriate.
- The student will be able to demonstrate how to use the JavaScript getElementById() method to:
- get input from the user using forms
- change the content of an HTML element
- change the formatting of an HTML element
- The student will be able to demonstrate an ability to use simple Unix file manipulation commands.
- The student will demonstrate an understanding of data representation on digital computers by converting between ASCII, decimal, binary, octal and hexadecimal values.
- The student will be able to demonstrate an understanding of the concept of scope in JavaScript, including differentiating between local and global variables.
- The student will be able to differentiate between formal and actual parameters (also known as formal and actual function arguments).
- The student will demonstrate an understanding of function calls, and if/else, while loops and for loops in JavaScript by successfully determining the output of simple JavaScript code.
- The student will be able to determine whether a function is recursive or not, and will be able to identify the two criteria necessary criteria for a recursive function to complete successfully (non recursive base case, and recursive call making progress towards the base case).
- The student will be able to distinguish between scalar and array values, and between array values and array indices.
- The student will be able to distinguish between methods and properties of JavaScript objects, and will be able to show how to use dot syntax to access methods and properties of these objects.
- The student will be able to identify the role and significance of standards bodies such as W3C and ECMA to someone who is creating professional web content, and will be able to identify that W3C standardizes HTML/XHTML/CSS, while ECMA standardizes JavaScript.
- The student will be able to distinguish between a web client and a web server
- The student will be able to identify that the client is the browser.
- The student will be able to list Internet Explorer, Firefox and Safari as examples of common browsers.
- The student will be able to list Apache and IIS as common Web Servers.
- The student will be able to use Dreamweaver to edit HTML/XHTML using both the code and design views, and to edit CSS files in code view.
- The student will demonstrate a knowledge of basic JavaScript programming idioms that arise frequently in practice, including:
- writing content to the "current document" using document.write();
- presenting an alert box using window.alert();
- The student will be able to articulate skillful use of alert boxes (e.g. for debugging, and conditions requiring user attention) and also indicate reasons that they should be used sparingly on finished designs.
- The student will be able to articulate similarities and differences between JavaScript and Adobe Flash (formerly Macromedia Flash).
- The student will be able to articulate reasons for commenting code, demonstrate how to include comments in HTML/XHTML, CSS and JavaScript code, and will follow good commenting practice in the code that the student develops.
- The student will be able to explain what the Document Object Model is in JavaScript, and demonstrate a basic understanding of DOM relationships such as parent and child elements through JavaScript code.
Required Textbooks and Materials
Principles of computer science illustrated through programming in scripting languages such as JavaScript and VBScript. Topics include control structures,arrays, functions, and procedures. Programming projects illustrate web-based applications.
[Note: we will likely focus exclusively on JavaScript and omit VBScript this semester.]
Grading:
Lab Policies are at the following link, and are included herein by reference:
http://www.udel.edu/103/pconrad/07F/labs/lab_policy.html
A summary is as follows:
- Show up for lab and for class .
- Observe due dates
- Respect late penalties.
- Do honest work.
- Treat people with respect.
Reading Assignments are posted on the course calendar. The assignments are listed on Sundays on the course calendar (to avoid cluttering the course days in the week). You are responsible for checking the calendar periodically and staying on top of the reading; additional announcements/reminders about the reading assignments might or might not be made in lecture.
Exams are closed book; however I allow one sheet of notes to be brought into your exam. This should be one 8.5x11 sheet of paper only, you must write your name on it, and you must turn it in with your exam. You may not use any notes whatsoever for quizzes, unless otherwise announced.
Quizzes Both pre-announced and unannounced quizzes may be given at any time. Quizzes will be counted Missed quizzes due to unexcused absences will be counted as a zero. For excused absences, the instructor will substitute a default grade which is the nearest integer approximation of the students average so far at that point in the course (i.e. the quiz neither helps nor hurts the grade). A perfect score will be substituted if a quiz is missed before any other grades are recorded.
Lab attendance is required. Attendance will be taken. If you have a standing conflict with the lab time, you need to transfer into a different section... one with which you don't have a standing conflict (because the rule won't be any different there!)
Follow instructions in assignments regarding submission. Pencil/Paper homework must be submitted in lab. Some work must be submitted on paper, while electronic submission may be acceptable for other work. However, you must follow the submission instructions in the assignment; you may not submit electronically if the assignment specifically requires paper submission. Paper submission may only be done in person in lecture for lecture hwk, and in lab for lab homework and lab assignments, (unless you have prior permission from the TA via email with a CC to me; this should be done only in unusual, rare, special circumstances.)
No makeup for daily homework except for "official excused absenses". Official excused absences include those where there is a note from the athletic department (e.g. for intercollegiate sports teams) or from the Dean's office (e.g. for serious illness or family emergency). For occasional cold or flu, one or two missed assignments are not going to seriously impact your grade, as long as you don't make it a habit.
Academic Honesty: You are required to comply with all University policies regarding Academic Honesty and to familiarize yourself with those policies. See the lab policy page (at the link listed above) for more detail, and academic honesty page for more details (also found at the policy link shown below). Suspected violations of academic are prosecuted through the office of Judicial Affairs, and may result in probation, deferred suspension, suspension, or expulsion. We catch people all the time. Do honest work; to do otherwise will cheapen your own self-image, and it isn't worth the risk..
Additional Course policies may be found at this link, and included herein by reference: http://www.udel.edu/103/pconrad/07F/policy
ADA Accomodations: If you have a disability that requires special accommodation, please contact me by email (pconrad@udel.edu) or by phone (831-8622) within the first week of classes.
Disclaimer: Information in the syllabus is subject to change as the instructor sees fit, or as required by Departmental, College, or University policy, provided that reasonable notice is given to the class.
Invitation: Please contact me by email, phone or during my office hours if you would like to discuss any aspect of the course; I welcome the opportunity to be of assistance.
Phillp T. Conrad, Fall 2007