Detailed Schedule

Bolded=planned as of the time you loaded this page . . . . . . . . Unbolded=supplementary

Day

Topic

Resources

Notes to instructor

M
8/19/2024

Introduction to the course and to JavaScript (JS)

  • W3schools.com/js is the tutorial
  • w3schools.com/jsref is a reference
  • Continuing the tutorial: "JS Introduction"
  • Recording: F'24
  • Send around an attendance sheet to see if unregistered attendees

    Show this page, codeacademy JS, have them start HW

    W
    8/21/2024
    Some JavaScript basics
  • "JS Where To"
  • "JS Output"
  • alert(), confirm(), & prompt()
  • "JS Statements"
  • HW 1, due W 8/28/2024
  • Recordings: F'24, F'21
  • M
    8/26/2024

    The "grammar" of JavaScript
  • "JS Syntax"
  • "JS Comments"
  • "JS Variables" except exercises
  • Recording: F'24
  • Skip var to avoid confusion

    W
    8/28/2024

    Variables & operations
  • Let (instead of var)
  • Operators
  • More arithmetic operators
  • Recordings: F'24, F'21 parts 1 & 2
  • HW1 due; HW 2 due W 9/4/2024
  • Skip var to avoid confusion

    M
    9/2/2024

    Labor Day

    Holiday!

    W
    9/4/2024

    Boolean logic operators
  • Scan JS Assignment Operators
  •    Why not &&=, ||=, ====, >=, <=, ...?
  • Logic notes
  • JavaScript has no XOR boolean logic operator
  • Bitwise logic operators
  • Bitwise notes from W3schools
  • Advanced example: Bitwise operators
  • Recordings: F'24, F'21
  • HW 2 due; HW 3 due next W 9/11/2024
  • Why not &&=, ||=, ====, >=, <=, ...? Two philosophies: automatically make every operator with its dual; only do useful ones
    M
    9/9/2024
    Entities
  • JS Data Types
  • Recordings: F'24, F'21
  • We discussed objects somewhat, which caused the entire class period to be on this one W3schools lesson.
    An in-class exercize of defining and printing an element of an object seemed to work ok.
    They could try out multidimensional arrays on their computers, including ones with uneven rows. Students needed some exercises about the arrays notes as it got dry

    W
    9/11/2024

    Conditionals & loops

  • JS if, else, & else if; switch (if time)
  • The while and do while loop statements
  • The for loop statement
  • Foundational diagram of JS for loop
  • Recordings: F'24, F'21
  • HW3 due; HW 4 due W 9/18/2024
  • Old HW with figures Math.random() and interval notation [0,1)
    Conditional operator
    Statements vs. expressions
    Debugging: print/popup statements, step by step construction

    M
    9/16/2024

    Functions

  • JS Functions
  • Function equivalences
  • Recordings: F'24, F'21
  • For "Dot vs. square bracket access to objects" go through the HW problem. Have them write down something interesting to try in this or that sandbox. They need to get practice thinking this way for future use!

    W
    9/18/2024

    Recursion

  • Example program 1
  • Make a function; then make it call itself
  • Ex. program 2 & diagram
  • Recordings: F'24, F'21, F'19
  • HW4 due; HW 5 due W 9/25/2024
  •  

    M
    9/23/2024

    Arrays
  • Arrays
  • push(), pop(), & balanced parentheses
  • Recordings: F'24, F'21
  • Bitwise operators example is too advanced, try having them work through it as I do, then try different things themselves.

    W
    9/25/2024

    Arrays II

  • Make a 2D array. 3D. 4D.
  • Array notes; demo
  • Array Methods
  • for/in loops (works for arrays)
  • Advanced: .forEach loops
  • Supplemental: documentation
  • Recordings: F'24, F'21
  • HW5 due; HW 6 due W 10/2/2024

  • Consider spending more time on this topic next semester (see supplementary material below)

     

    HW6.html (not HW6a.html) has some object questions which are useful

    M
    9/30/2024

    Objects
  • JS Objects
  •      - in the W3schools JS ref. section
  • for/in loops
  • Dot vs. square bracket access to objects
  • Recordings: F'24, F'21, F'19
  • W
    10/2/2024

    Strings
  • JS "Strings" - basics we know
  • JS "String methods"
  • Unicode
  • HW 7 due 10/9/2024
  • Recordings: F'24, F'21, F'19
  • HW10.html has some good stuff left in it about numbers and the robots. Could be reused somehow.

    M
    10/7/2024

    Numbers: more details
  • More about JS numbers
  • Recordings: F'24, F'21
  •  

    W
    10/9/2024

    Hexadecimal and binary numbers
  • Notes on number systems
  • Slides on number systems
  • Recordings: F'24, F'21
  • HW 7 due today; HW 8 due 10/16/24
  • Interesting to show things using the address bar too: typing in the action attribute; giving it arguments using "?"

    M
    10/14/2024

    More about numbers
  • JS "Number Methods"
  • JS "Math"
  • JS "Random"
  • Recordings: F'24, F'21
  • Next time save a little more time for the Date discussion.
    Check paper folder for extra printouts of the exercise

    W
    10/16/2024

    Dates

  • JS "Dates"; time.gov; leap second
  • JS "Date Formats" - highlights
  • JS "Date Methods" - highlights
  • Recordings: F'24, F'21
  • HW8 due today; HW 9 due 10/23/2024
  • M
    10/21/2024

    Events

  • JS "Events"
  •      Mouse events
  •      (see "YOU'RE HERE!")
  • JS events example
  • Recordings: F'24, F'21, F'19
  • The lecture took several minutes less than the class time, so best to schedule in an exercise, in addition to the quiz style questions.

    W
    10/23/2024

    HTML Forms
  • HTML Forms (from HTML section)
            Modify "try it yourself" sandboxes!
            Radio buttons
  • About HTML form processing
  • Recordings: F'24, F'21, F'19
  • HW 9 due today; HW 10 due W 10/30/2024
  • M
    10/28/2024

    Forms (conclusion)
  • HTML form demo & exercise
            What on Earth is this?!
  • w3schools.com>HTML>HTML Forms:
         Form Elements
         Form input types
         How the CIA blew it with forms and JS (backup)
         Form attributes
  • Recordings: F'24, F'21, F'19

  • Week of Halloween!

    Source: https://upload.wikimedia.org/wikipedia/commons/f/f0/Halloween_Jack-o%27-lantern.jpg

     

    W
    10/30/2024

    Timing
  • JS Timing
              Sample code: setTimeout()
              The time is...
        
  • Recordings: F'24, F'21
  • HW 10 due; HW 11 due 11/6/2024; hints
  • In class exercise idea: make a button based mini-game for turning things off before they happen
    In setInterval() lesson, try alert(alert("hi")) and explain. This is a gentle approach to recursion.
    In setTimeOut() lesson, try printing out alert(setTimeout(myFunction, 3000).
    Point out the recursion.
    For animation go through the example making changes to each significant line
    Skip "JavaScript HTML DOM EventListener" since it gives another way to do things we already know how to do - confusing
    Plan: DOM Animations lesson, then have them modify the animation however they can, then report to class.

     

    M
    11/4/2024

    The DOM (start)
  • The DOM and its object hierarchy
         Yes, document is in window
  • W3schools>JAVASCRIPT>JS HTML DOM:
         DOM Intro
         DOM Methods
         DOM Document
         DOM Elements
         DOM HTML
  • Recordings: F'24, F'21, F'20 parts 1 & 2, F'19
  • W
    11/6/2024

    The DOM (cont.)

  • DOM CSS
  • w3schools.com>HTML and CSS>Learn CSS>
         CSS Syntax review

         CSS Selectors review
  • DOM Animations
  • DOM Events and "this"
  • Recordings: F'24, F'21, F'19
  • HW 11 due; HW 12 (styled by AI) due W 11/13/2024 (hints)
  • For the dimensions variables, could have students keep adding new ones to the same try it yourself exercise, instead of running them each in separate demos like the lessons have.

    If run out of time in lecture, have them start on HW, which used to be in-class exercise anyway.

    M
    11/11/2024

    The DOM (finish)

  • DOM Navigation
  • DOM Nodes
  • DOM Node Lists
  • Recordings: F'24, F'21, F'19
  • HW hints (video)
  • W
    11/13/2024

    The BOM

  • DOM recap: navigator demo V0, V1
  • BOM birds-eye view
  • w3schools.com/js > JS Window
         Resizing
         Exercise: something in
             "The Window Object"

         JS Screen
         JS Location
         JS History
         (Skip JS Navigator)
         Review JS Popup Alert
  • Recordings: F'24, F'21, F'19
  • HW 12 due;
        HW 13 due W 11/20/2024 (hints)
  • M
    11/18/2024

    Cookies

  • JS Cookies
  • Å, etc., decodeURIComponent(), & UTF-8
  • Recordings: F'24, F'19
  • HW hints video
  • Note: the w3schools lesson is not well done, & the sole try it yourself exercise is too long and involved. Plan: Bake and eat cookies they easy way
    15 min. of students finding and sharing facts about cookies
    JS Cookies lesson as a quick review
    They try making cookies using the demo page
    Spend time on unicode as needed to finish
    Possible HW problem: Upgrade the try it now exercise to delete the name cookie upon request with a delete cookie button.
    Alternative HW problem: Type into form and save into cookies, using the example I gave for processing a form in its own web page

    W
    11/20/2024

    Regular expressions
  • w3schools.com/js > JS RegExp
  • w3schools.com/jsref > JS RegExp Ref.
  • Some regular expression notes
  • Regular expression study exercises
  • Recordings: F'24, F'21
  • HW 13 due; shorter HW 14 & HW 15 both due W 12/4/2024; hints video
  • Have them figure out the number of elements of a /.../i regexp (2^n)
    Check https://regexr.com/ to see if can use something there.

    M
    11/25/2024

    Thanksgiving Break

    https://images2.minutemediacdn.com/image/upload/c_crop,h_2073,w_3677,x_0,y_459/f_auto,q_auto,w_1100/v1554994877/shape/mentalfloss/516089-istock-two_turkeys.jpg

    Source: https://www.mentalfloss.com/article/516089/turkey-animal-facts

    W
    11/27/2024

    Thanksgiving Break

    https://images2.minutemediacdn.com/image/upload/c_crop,h_2073,w_3677,x_0,y_459/f_auto,q_auto,w_1100/v1554994877/shape/mentalfloss/516089-istock-two_turkeys.jpg

    Source: https://www.mentalfloss.com/article/516089/turkey-animal-facts

     

    M
    12/2/2024

    (last day of class)

    From Objects to Classes

  • Creating objects: old way & new way
  • A constructor function defines a class
  • JavaScript classes
  • Using the term "class" enables inheritance
  • Recordings: F'24, F'21
  • Shorter assignments HW 14 & HW 15 both due W 12/4/2024 (in 2 days; hints)
  • Discussion outline: "Learn Ajax" lesson: First Try It Yourself example, point out the stuff we know as context. They substitute xhttp for this. They try window.XMLHttpRequest() instead of XMLHttpRequest() - why does it still work? They try different values for readyState, removing the status check in the if. Then look at ajax_info.txt. Use the file https://www.w3schools.com/action_page.php?day=Wednesday instead use the file pic_bulbon.gif instead. use the file http://ualr.edu instead. use the file js_ajax_intro.asp instead. use the file blahblah instead. append xhttp.responseText instead of replacing it and include values of readyState and status (and "<hr>" for clarity). change if test to (true) and get everything.

    Alternatively, Could have demos of games developed over the semester, at least the good ones

    HW 14: They are using too exactly the examples given in the w3schools /jsref page.

    W
    12/4/2024

    No final

  • HW 14 & HW 15 both due instead of a final

    Have a good winter break!
    (Source: GIPHY)

  •  

     

     

     

     

     

    Supplemental

    JSON


    Ajax

  • Review quiz (not for a grade) link
         Recordings: F'24, F'19
  • Review: w3schools.com/js > JS Objects
  • w3schools.com/js > JS JSON
    Moving to the specific JSON category -
  • w3schools.com/js > "JS JSON" category > JSON Intro
  • w3schools.com/js > JSON Syntax
  • Side trip: "JS support for local storage"
  • w3schools.com/js > JSON vs XML
  • w3schools.com/js > JSON Data Types
  • Skip JSON Parse
  • w3schools.com/js > JSON Stringify
  • Skip JSON Objects
  • Skip JSON Arrays

    Recording: F '19
  • w3schools.com/js > JS Ajax > Learn AJAX
            Some helpful notes
  • "AJAX - the XMLHttpRequest Object" (AJAX XMLHttp), key points only
  • "AJAX - Send a Request to a Server": AJAX Request
  • Top of AJAX Response, skip AJAX PHP & AJAX ASP
  • AJAX study exercises
  • Recording: F '19; notes*
  • Quiz section: Note the cert opportunity; they should let me know *before* taking it if they choose to take it. Seque to the quiz. Review quiz ahead of time as Qs seem not to change. Have entire class take it from the classroom screen but ask them not to call out the answer until I give the signal, so everyone has a chance to think about the Q first.

    Computer, textbooks and related resources:

    Instructor:

    Daniel Berleant, PhD

    Website: http://dberleant.github.io (will have a link to this web page which is at http://dberleant.github.io/IFSC3300)

    Contacting the instructor:

    Homeworks: Assignments will be approximately weekly and usually scored on a scale of 50-100 points (this is a better algorithm than the typical 0-100 scale because it gives mathematically more sensible results). Quizzes or tests, if any, will be infrequent.

        Lateness policy: 10 points is possible for the grade on any assignment handed in up to 1 week late. Two such reductions in grade on any assignment handed in very late. No credit for multiple assignments handed in in a rush at the end of the semester.

    Student learning objectives:

    Catalog description: IFSC 3300 Internet Applications
    Prerequisite: IFSC 1310 or equivalent, or consent of Instructor. A hands-on course focusing on the technologies and concepts for creating dynamic and interactive web sites with a special emphasis on client-side technologies. Topics will cover techniques such as how to build efficient and dynamic interactive user interfaces, how to interface with data using standardized, portable formats, how to store/validate data and how to make data more accessible to other applications. Three hours lecture. Three credit hours.

    Emergency plans:

    Attendance policy and instructor presence: The instructor will lead the class as officially scheduled. Students who are neither attending class, nor turning in assignments, nor communicating with the instructor are required by university policy to be administratively withdrawn from the course. There are some arcane financial aid reasons for this, but the policy is the same regardless of any financial aid you might or might not have. IMPORTANT: If you want to drop a course, it is very risky to just assume you can stop attending and the instructor will automatically do it, as some instructors ignore the policy and give an F instead.

    Academic integrity policy: Work turned in must be your own work. You are welcome and indeed encouraged to get or give help to other students but NOT actual code. There is no learning benefit to copying code like that. No credit for assignments containing even a small amount of copying, and you might be referred to the university approved judicial process. Let's suppose someone turns in an assignment with copied code late in the semester. Then they would get no credit for it, and also, we would consider rechecking their earlier assignments for copying and if found changing the score(s) on those assignments to also be "no credit." See Academic Integrity and Grievance Policy and Academic Offences.

    Regular and Substantive Contact:

    Accomodations: