Syllabus for

Internet-Based Computing

COSC 231, Winter 2023

(Lecture: M/W 1:00-2:50 Pray-Harold 520)

Instructor: Matt Evett ; Dept. Computer Science; Pray-Harold 511B
Tel: 734-487-1227;
e-mail: mevett@emich.edu;
Course web site: http://canvas.emich.edu/;

Office Hours: See mattsOfficeHours.txt and mattsScripts.js and via Zoom (see Canvas for link).
(These times are subject to change. Please see my web site, http://emunix.emich.edu/~evett for up-to-date hours.) You may drop by at times other than office hours, but in that case I cannot guarantee that I'll be able to see you.

Purpose: An introduction to programming for the Internet, including GUI design and development, event-driven programming, web page design and construction, programming for current Internet and Web technologies. Ethical issues on the Internet.

Textbook: Connolly & Hoar, Fundamentals of Web Development, 3rd ed., Pearson, 2021. You'll also need a Java text that covers Swing and graphical programming. Absolute Java (4th or 5th ed.), by Savitch, will suffice, but there are many other options.

Quizzes and exams: There will be a series of short quizzes (about one every week or two), a midterm, and a comprehensive final exam. If, for any reason, a student needs to reschedule an exam, they should submit a written request to me (e-mail is acceptable) at least one week before the exam.

Programming exercises: There will be a series of programming assignment and exercises, and the lab periods will be devoted to them. There will also be larger programming assignments, to be completed by students outside of class.

Grades: The final grade will be a weighted average of all grades received during the course: 5% of average quiz grade, 15% of the midterm grade, 25% of the final exam grade, and 55% of programming exercises and labs. Labs and programming exercises have equal value, unless noted in the assignment.

Tardiness Policy: Programming and other homework assignments will be due at the beginning of class. After that, assignments will be accepted through the start of the next scheduled class, but will suffer a full grade penalty. E.g., if a late programming assignment is worthy of an 'A', I will mark it a 'B'. Assignments more than one class late will not be accepted, and will receive a grade of 'F'.

Attendance Policy: We're all grown-ups, when and whether you attend class is up to you. However, missed assignments, and exams shall only be excused by a doctor's written note, verifying that the student was medically indisposed to attend class that day. Keep in mind, too, that study after study has demonstrated that regular class attendance dramatically improves student grades. Bear in mind that many labs will be due the day they are assigned.

Doing one's own work: Students are required to attend to the policy on academic irregularity outlined in the EMU student handbook. In addition, collaboration among students in solving programming and homework assignments is forbidden unless I explicitly allow it. If I receive programs or homework assignments that are substantially equivalent, or which are not the original work of the student submitting the material, I will not hesitate to punish all involved parties to the fullest extent, up to and including assignment of a failing grade for the course, and referral to the Office of Judicial Student Services for possible punitive action at the University level, which may include expulsion from the University. In addition, the University and the Computer Science Department maintain policies regarding proper behavior on its computer systems. Failure to adhere to these policies can result in loss of computer privileges, and possible legal action. If you are having problems with programming assignments, please seek help from the professor or department tutors.

Information Promulgation: Students are required to attend to the Canvas course shell. The shell will serve as the official site for all information pertaining to changes to programming assignments, deadlines, etc. Feel free to use the shell to post questions to me and to your fellow students.

Topics Covered:

  1. Introduction to the Internet and the World Wide Web (3 hours)
    • Current network protocols
    • Network structure: client/server model, back-end/front-end processing
    • Controlling authorities and resources for the Internet developer
  2. Introduction to programming markup languages (9 hours)
    • Using plain text editor and browser: HTML5 , CSS,
    • Use of tools for the same.
  3. Introduction to programming scripting languages: Javascript (9 hours)
  4. Basics of programming GUIs: using event-driven programming (12 hours)
  5. Introduction to ethical issues on the Internet (9 hours)
    • Privacy
    • Intellectual property: protection, theft and plagiarism
    • Computer crime
    • Phishing, spamming, tracking user information, etc.

Goals and Objectives:

  1. Understand the context of programming on the Internet, including historical perspective, protocols, architecture and organization of the ‘net.
  2. Be able to create usable web sites using markup languages and scripting.
  3. Fluency in at least one tool for web site development.
  4. Be able to understand how to obtain resources for learning Web technologies
  5. Be able to create attractive and compelling GUIs and dynamic displays.
  6. Understanding of principles and practice of good quality GUIs.
  7. Be able to write and maintain programs with event-driven control.
  8. Understanding of basic principles of ethical and societal issues on the Internet.

Calendar:

The following dates are subject to change. See the course shell for up-to-date deadlines.

Date Text Topics Assignments
1/11  Ch 1 & 2 Intro to Web/HTML Ch1 &2  
1/18 through Images at w3schools, Ch 2 Basic HTML Lab 1, Assgn 1
1/23 w3schools, Chapter3,4  Intro HTML, CSS 1 Assgn 2
1/30 w3schools, Chapter4, 5 Table and Forms Lab 2, Lab Firebug
2/6 Chapter 7 CSS 2, Layout Lab 3
2/13 Chapter8 JavaScript Lab 4, Lab 5
2/20 Chapter 8, 9 JavaScript Lab 6
2/27  Spring Break    
3/6   Ch 9, 10  Javascript  GUI Lab 1, Assgn 3 (JS)
3/13  Java text Java GUI, Swing GUI Lab 2, GUI Lab 3
3/20 Java text Java GUI, Swing Lab 8
3/27 Java text Basic PHP Lab 9, Assgn (Bouncing)
4/3 Handouts Model-view-component pattern Lab 10
4/10 Handouts Online ethics  
4/17 Handouts Online privacy Assgn (TicTacToe)
4/26  Wednesday   Final Exam, 1:00-2:30