=====
CS 328 - Week 1 Lecture "2" - 2024-01-17
=====

TODAY WE WILL:
*   introductions
*   intro CS 328's "big ideas"
*   SOME syllabus highlights
*   intro to public course web site and course Canvas site
*   ...and a bit more if time
*   prep for next class

=====
NOTE: nrs-projects was REBUILT over the Winter Break!
=====
*   your accounts are STILL THERE,
    but HOW you access nrs-projects HAS CHANGED.

*   We will discuss these changes, and how you can access it
    going forward, during FRIDAY's labs!

=====
*   NOTE: please WAIT to subscribe to the CS 328 course
    zyBooks text until I have posted the first assignment
    link to it later this week
    
    *   I will send a course e-mail when this has been set up

    *   You will click on this assignment link in Canvas to
        then subscribe to this text.

    *   (Their instructions say to NOT go to the zyBooks website
        and create a new account!)

=====
*   software architecture - (Jalote, p. 95):
    *   the subsystems that compose a software system,
        the interfaces of these subsystems, and
	the rules for interaction between the subsystems


=====
*   some "classic" components of an interactive application using
    a database
    *   presentation component - what the user sees and
        interacts with

    *   application component - the software components
        that implement the business logic/business rules

    *   database management system (DBMS) - database software
        like Oracle, mySQL, etc.

*   all these CAN be ONE tier -- on a single computer --
    if you'd like, BUT.... other software architectures
    might be better choices!

    *   say, two-tier software architectures, like
        classic client-server!

        for classic client-server,
	*   typically put the presentation components on
	    the client tier

        *   typically put the DBMS on its tier, as the server

        *   ...but where do the application components go,
	    in classic 2-tier client-server?
	    ...not as neat and obvious a choice for these!

*   SO -- 3-tier architectures, or 3+ or n-tier architectures,
    came about as a possible improvement

    *   client tier - has the presentation components,
        *   receives user events,
	*   controls the user interface

    *   application tier or tiers - application logic often
        lives here, and so might software components that
	manage that logic and manage the interaction between
	the tiers

    *   data tier - your DBMS is here