https:dberleant.github.io/IFSC30003/index.html redirects to https://dberleant.github.io/IFSC3300/index.html


Detailed Schedule

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

Day

Topic

Resources

Notes to instructor

W
8/20/2025

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"
  • Lecture recordings (to attend the videoconference classroom live, go to Blackboard Collaborate from the course shell): F'25, F'24
  • Send around an attendance sheet to see if unregistered attendees

    Show this page, codeacademy JS, have them start HW

    M
    8/25/2025
    Some JavaScript basics
  • "JS Where To"
  • "JS Output"
  • alert(), confirm(), & prompt()
  • "JS Statements"
  • HW 1, due W 9/3/2025
  • Recordings: F'25, F'24, F'21
  • W
    8/27/2025

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

    M
    9/1/2025

    Labor Day
  • Holiday!
  • W
    9/3/2025

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

    M
    9/8/2025

    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 M 9/15/2025
  • Why not &&=, ||=, ====, >=, <=, ...? Two philosophies: automatically make every operator with its dual; only do useful ones
    W
    9/10/2025
    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

    M
    9/15/2025

    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 M 9/22/2025
  • Old HW with figures Math.random() and interval notation [0,1)
    Conditional operator
    Statements vs. expressions
    Debugging: print/popup statements, step by step construction

    W
    9/17/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!

    M
    9/22/2025

    Recursion

  • Example program 1
  • Make a function; then make it call itself
  • Ex. program 2 & diagram
  • Recordings: F'24, F'21, F'19
  • HW 4 due; HW 5 due M 9/29/2025
  •  

    W
    9/24/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.

    M
    9/29/2025

    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 M 10/6/2025

  • 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

    W
    10/1/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
  • M
    10/6/2025

    Strings
  • JS "Strings" - basics we know
  • JS "String methods"
  • Unicode
  • HW 6 due; HW 7 due M 10/13/2025
  • 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.

    W
    10/8/2025

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

    M
    10/13/2025

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

    W
    10/15/2025

    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

    M
    10/20/2025

    Dates

  • JS "Dates"; time.gov; leap second
  • JS "Date Formats" - highlights
  • JS "Date Methods" - highlights
  • Recordings: F'24, F'21
  • HW 8 due; HW 9 due M 10/27/2025
  • W
    10/22/2025

    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.

    M
    10/27/2025

    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; HW 10 due M 11/3/2025
  • W
    10/29/2025

    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

     

    M
    11/3/2025

    Timing
  • JS Timing
              Sample code: setTimeout()
              The time is...
        
  • Recordings: F'24, F'21
  • HW 10 due; HW 11 due M 11/10/2025; 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.

     

    W
    11/5/2025

    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
  • M
    11/10/2025

    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 M 11/17/2025 (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.

    W
    11/12/2025

    The DOM (finish)

  • DOM Navigation
  • DOM Nodes
  • DOM Node Lists
  • Recordings: F'24, F'21, F'19
  • HW hints (video)
  • M
    11/17/2025

    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 F 11/21/2025 or M 12/1/2025 (hints)
  • W
    11/19/2025

    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

    M
    11/24/2025

    Fall 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/26/2025

    Fall 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/1/2025

    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/10/2025 instead of a final; 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.

    W
    12/3/2025

    (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/10/2025 (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/10/2025

    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.

    Instructor:

    Daniel Berleant, PhD

    Website: http://dberleant.github.io

    Contacting the instructor:

    Computer, textbooks and related resources:

    Assignments: HWs 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. Attendance may be taken if not enough people show up, and will be worth 20 pts. if present when attendance is checked, or 10 pts. (i.e. 50%) if absent when attendance is checked.

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

    Student learning objectives:

    Catalog description: IFSC 30003 Web Client Applications
    Hands-on. The technologies and concepts for creating dynamic and interactive websites with a special emphasis on client-side technologies. Topics will cover techniques such as how to build efficient and dynamic interactive user interfaces, interface with data using standardized, portable formats, store/validate data, and make data more accessible to other applications. Prerequisites: IFSC 11003, MCOM 31043, ARTS 44833, ITEC 31006 or equivalent Web Design course, along with a course that covers programming fundamentals like IFSC 10202, CPSI 17503, BINS 41203, ITEC 35006 or equivalent, or consent of instructor. Three hours lecture. Three credit hours.

    Emergency plans:

    Student engagement 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 from other students, so it is not permitted. No credit for assignments containing even a small amount of copying from another student, and you might be referred to the university approved judicial process. Let's suppose someone turns in an assignment with code copied from another student late in the semester. Then they would get no credit for that HW, and also, we would consider rechecking their earlier assignments and, if the same problem is found, changing the score(s) on those assignments to also be "no credit." See Academic Integrity and Grievance Policy and Academic Offences.

    AI generated code is permitted and may be required by the assignment.

    Regular and Substantive Contact:

    Accomodations: