CIS 611

Enterprise Database Systems and Data Warehouse with OLAP(3-0-3)

Course Content

  • Class Announcement and Post
  • Class Syllabus
  • Lab Assignments
  • Projects and Presentation
  • Class Lecture Notes


  • Class Announcement and POST







    Dec 3, 2025: Research Paper Presentations:

    ACM SIGMOD Research Paper Presentation Schedule



    Final Exam Scheduled on:
    Check the Final Exam Schedule for the CIS611 Class Time Below
    University Final Exam Schedule


    Final Exam Info:

    See the Links for the Final Subjects ONLY here !! (All the links to the rest of the lecture notes are disabled)

    The Topics to Focus on for the Final

    Multi-Dimensional DW Schema/Model, DW Star Scheme Implementation, Multi-Dimenstional CUBE, CUBE Generation/Implementation, Analysis of Cube, OLAP (Cube) Operators
    1-2 Basic MDX (Multi-Dimensional Query) Using Cube Operators

    Bitmap index, Inverted Index
    Cost Analysis and Comparison of Join Evaluation with B+ Tree vs Hash Index
    Cost Analysis (Calculation) of Join Algorithms - Index Nested Loop Join, Block Nexted Loop Join, Sort Merge Join, Hash join
    Comparison of Block Nexted Loop Join, Sort Merge Join, Hash join for the Given Different Buffer Memory Sizes
    Total Query Processing Cost in a Query Operation Tree and Optimization
    Index Strategies for Optimization of Multi-Dimensional Query Processing over DW Star Schema
    Query Processing Optimization for Columnar Store, Column Store vs Row Store for Query Processing

    If Time Allowed to Cover, RDBMS Concurrency Control with implementation of ACID, Transaction with Multiple Concurrent Users, Problems in Isolation Level


    The question patterns would be similar to those of the midterm, problem solving with simple examples.
    Many of them require calculation of the cost analysis of the algorithm of an operation for a given table or a simple SQL query execution.

    Hand Written One Regular Page Note (Front and Back) is Allowed to the Final
    Printed Copy and Pasted Lecture Notes Are Not Allowed in the One Page Note



    16. August 25, 2025:

    For All the Midterm Information:

    See the Links for the Midterm Subjects ONLY here !! (All the links to the rest of the lecture notes are disabled)

    Closed Book and One Page Note is NOT Allowed for the Midterm


    The Midterm Will Be at 4:00PM (Instead of 4:30PM) - 5:45PM to Allow More Time.
    Subjects to Focus on for the Midterm of CIS611:

    RDBMS Architecture, SQL Server Query Processing Mechanism in Phases, Relational Algebra, Per Given SQL, Build SQL Query Execution Steps in SQL Operators Defined by Relational Algebra
    View/Inline View, View Processing/Implementation Mechanisms
    Dynamic External Hash Index Algorithms, B+ Tree Index Insertion/Deletion Algorithm, Size of B+ Tree
    Clustered or Unclustered B+ Tree: Given a Data Table and Max Fill Factor, Analysis of B+ Tree Size in Blocks to Determine the Level of the B+ Tree and Total B+ Size
    Cost Analysis (Calculation) of External Sort Algorithms for Optimization
    If Time allowed to Cover, Cost Analysis and Comparison of Join Evaluation with B+ Tree vs Hash Index


    The Midterm/Final Exam Question Info:

    5-6 Small Problem Solving Questions for Short Answers. No T/F Questions, No Multiple Choice Questions
    For Example, Given a Data Analytic Question in Text or a SQL Query, Build a Query Execution Operator Steps



    15. August 25, 2025:

    There Will be Random Quizzes to Check the Attendance !
    Only 5 - 10 Mins Will Be Allowed for Each Quiz. Those Who Come in Class Late After 5 Mins, They Will NOT Be Given a Quiz !  


    14. August 25, 2025:

    The Lab Submission Link and the Deadline of Each Lab Will Be Created on the Class BlackBoard ! Wait For the Lab Submission Links Are Created on Blackboard for Each Lab


    12. August 25, 2025
    Only the registered students can access the course blackboard.
    If you have a problem with your blackboard access, please contact the registrar or CSU Tech Support to resolve the issue !

    Center-for-elearning Technical Support

    Faculty does not control your registration and the course blackboard access in the CSU systems.

    11. August 25, 2025

    TA Info:

    TA:
  • Dharmik Rajesh Kurlawala

  • Email: 2886995@vikes.csuohio.edu

    Office Hours: Mon, Wed 2:00 PM - 4:00 PM
    Send email to TA ahead to set up a time slot to let TA know that you are coming

    Location: Big Data Lab: FH 305 or a ZOOM Meeting

    ZOOM Meeting ID: 305 141 9324
    Passcode:4nh4RS

    Zoom Link

    Send Email to TA ahead to let TA know when you are coming or set up an ZOOM meeting appointment in another time.

    If you have questions in Labs or Grading your Labs, Send an email to TA or Talk to him During his TA Office Hours or Schedule a Zoom meeting with him





    Dr. Chung's Office Hours:

    Tues and Thursday 1:30PM - 3:30PM
    Office: FH 222 or Zoom Meeting
    Email: s.chung@csuohio.edu
    Send Me Email to Set Up a Meeting or a Zoom Meeting.

    Meeting ID: 859 3867 6332
    Zoom Meeting Link






    9. August 25, 2025:
    For the Most Updated Installation Guides of 2022 MS SQL Server Package in detail, see the Lab Section of CIS430/530 !

    CIS430/530 Site for Installation Guides of 2022 MS SQL Server Package

    Read the Installation Guides FIRST before starting downloading ! See the Lab section for More details !




    7. August 25, 2025

    Lab Submission:

    The Lab Submission Link and the Deadline of Each Lab Will Be Posted on the Class BlackBoard ! Wait For the Lab Submission Links Are Created on Blackboard for Each Lab
    The Output of each lab is your report in Doc file that shows your screen captures of your data processing steps for analytics and the results
    Each of your screen capture must show each step and the result returned by the server in the SAME window in your System to prove that your lab is done correctly in YOUR SYSTEM !!

    1. Submit your Lab in zip file including 1) your lab report in .doc and 2) all the source files, preprocessed input files, outputs on Blackboard for a timestamp as a proof.

    2. If You did an Extra Credit Part, Mention about What Part is Done for Extra Credit at the Heading of the Front Page of Your Report in Bigger and Bold Font !




    6. August 25, 2025:
    For the installation guides of MS SQL Server in detail, see the Lab Section !
    Read the Installation Guides FIRST before starting downloading ! See the Lab section for More details !



    4. August 25, 2025:
    If you can't install MS SQL Server, Go to the Oracle site below to download and install Oracle database server 11g Standard.

    http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

    Refer Online Oracle documents Oracle9i/Database Installation Guide



    3. August 25, 2025:

    Lab Assignment 0 : Prep for Lab Assignments

    Download and Install 1) Visual Studio, 2) 2022 MS SQL Sever Package (Developers Version), and 3) its Client - MS SQL Management Studio (SSMS) and Install on Your Laptop

    For the most recent updated Installation Instructions:

    For any questions on this site or creating your account in this site, send email to TA or Jackie !


    See Lab Section for Instructions to to Download SQL Server and Visual Studio on Azure Potal Site


    SQL Server Installation Guide: See Lab Section for the Detail :br>
    See Lab0 Section for Instructions to Download and Install SQL Server and Visual Studio on Azure Potal Site

    SQL Server Installation Guide: See Lab Section for the Detail :br>
    1.Download and Installation of MS SQL SERVER Package : Read Instructions Carefully Below !

    Any SQL Server Developer Version (with Service Packs recommended if available)
    Make Sure to Install a Matching Version of Visual Studio first before installing SQL Server (Please see installation Guide in the Lab section for the detail)
    Read the installation Guides in the Lab0 Section FIRST before Starting to download !
    2. After everything is set up correctly, Run SQL Server Management Studio - a Client for your SQL Server (It is Under Microsoft SQL Server of your Start menu of your Window) to Play with Your SQL Server
    3. If your SQL Server is not running (You don't see the green arrow on your server name on the Top Left corner of your SQL Server Management Studio), Start the server manually in your SERVICE list - Search with "Service" to find the list. (Read the General Installation Instuctions for this in the Lab0 Section !)


    2. August 25, 2025:

    For New Students, You Have to Create Your Account in Azure Potal site to Download

    How to Create Your Account to Login the Azure Potal Site to Download MS SQL Server

    1. Go to www.portal.azure.com
    Azure Potal Site
    
    The students MUST use a vikes.csuohio.edu or csuohio.edu email address!
    
    Note that the students should use CSUID@vikes.csuohio.edu, not f.lastname@vikes.csuohio.edu.
    
    So, for example, 2345678@vikes.csuohio.edu, rather than m.jones@vikes.csuohio.edu.
    
    
    This is where your students can download their software.
    
    1.       Please clear the cache, cookies and browsing history. Then using Internet Explorer or Microsoft Edge, please enable the In-private browsing by pressing CTRL + Shift + P on the Keyboard or, for Chrome CTRL + Shift + N.
    
    2.       Go to https://azureforeducation.microsoft.com/devtools
    
    This site uses cookies for analytics, personalized content and ads. By continuing to browse this site, you agree to this use. Learn moreat azureforeducation.microsoft.com
    then click the blue sign in button.
    
    3.       Enter your email address then hit Next.
    
    4.       Enter the password then Sign In.
    
    5.       Once signed in, it should take you to the Student Verification page. Please enter your school email address twice and a verification link will be sent to your email.
    
    6.       Copy and paste the link to a new tab then hit continue.
    
    7.       Please agree to the Terms and Conditions.
    
    
    After completing the above mentioned steps, you should be able to access the Azure portal. 
    If you were directed on the Azure Home page, please type in “Education” on the search box then select “Education” from the search results. After Login, Go to the menu Education => Software

    Send an email to TA or Dr. Jackie Woldering (j.woldering@csuohio.edu) for any questions


    1. August 25, 2025
    The class webpage can be reached from blackboard as well:
    Class Webpage

    Semester Schedule:
    See University's Official Academic Calendar for the Semester and the Final Exam Schedules


    Final Exam schedule for Fall 2025:
    Monday Dec 8 at 4:00PM - 6:00PM


    Final Exam Info:

    See the Links for the Final Subjects ONLY here !! (All the links to the rest of the lecture notes are disabled)



    For Midterm Info:

    See the Links for the Midterm Subjects ONLY here !! (All the links to the rest of the lecture notes are disabled)







  • Class Syllabus

  • Lab Assignments



  • Installation Guides For SQL Server:

    For Most Updated Guides and Information to Install 2022 MS SQL Server Package, Please read on CIS430/530 Lab Section !
    CIS430/530 Lab Section


    Lab0 :

    Read all the instruction Guides below FIRST !

    New Changed Installation Guides As of Summer 2023:

    Step1: Create an Account with CSU ID in the Azure Portal at Azure Potal Site

    Step2: Login Azure Portal then Education Tab => Software to Download and Install Visual Studio 2022

    Step3: Download a Server Package for 2022 MS SQL Server + Analysis Service + Integration Service Directly from Microsoft Downloading Site

    MS SQL Server 2022 Developer Edition has all the feature as Enterprise Edition has but it must be used for non-production environment.

    Where to Go, What/How to Download, and How to Install a SQL Server 2022 Developer Version with Analysis Service and Integration Service: SSDT (SQL Server Data Tool):

    Read Carefully the Detail Instructions Below FIRST !!

    Note that Visual Studio 2022 Needs to be Installed First Before Installing 2022 SQL Server.
  • How to Download and Install Visual Studio 2022 for Windows(Updated by TA Dharmik as of 2025)****

  • Note that Visual Studio 2019 Needs to be Installed First Before Installing 2019 SQL Server.

    For CIS611 Lab3 and Final Project Later, Install ALL with Machine Learning Features as below:

    2022 Server Package:
  • How to Install ALL: SQL Server 2022, Analysis Service and Integration Service in SSDT with ML/Python/R (Updated TA Dharmik as of 2025)*****************
  • After Install All the Servers and Client then Import a Sample Data Warehouse Named Adventure Work DW 2022
  • How to Install ALL: SQL Server 2022, Analysis Service and Integration Service in SSDT with ML/Python/R and Sample DW AdventureWork2022 *********

  • Note that You need to Choose Multidimensional and Data Mining Mode instead of Tabular Mode in Step 13 below for CIS611 Lab3 and Project Later.

  • How to Import and Restore a Sample DW AdventureWorks
  • Download Site for Sample DW AdventureWork Data

    How to Restore a Sample DW AdventureWork

    Github site for Sample DW AdventureWork Data and Restoring Script





    Instructions for 2019 Servers:

    After Install All the Servers and Client then Import a Sample Data Warehouse Named "Adventure Work DW 2019" or Adventure Work DW 2022

    For the Instruction on How to Import a Sample DW 2019 AdventureWork, See at the end of the 2019 SQL Server Instruction below:
  • How to Install ALL: SQL Server 2019, Analysis Service and Integration Service in SSDT with ML/Python/R (and Sample DW AdventureWork2019) *********





  • As of 2020, Only the SQL Server 2019 Developer Edition is Avaliable to Download Free at ! (You Can No Longer Choose 2017 SQL Server Anymore !)
    Nothe that 2019 SQL Server Stand alone ONLY WITHOUT Analysis Service and Integartion Service !

    You Can Download 2019 SQL Server Only Developer Package Either From:

    1. From Azure Potal Site ,
    Choose(or Search) Education with Your Azure Account Credential Created with Your CSU ID and PW:
    Azure Potal => Education Menu Site
    Or
    2. Download MS SQL Server Package with Analysis Service (For DW OLAP Server) and Integration Service (Data Mining Server with ML) Directly from at:

    Microsoft Downloading Site




    2019 SQL Server Package (Not Available in the Microsoft site anymore):
  • How to Install ALL: SQL Server 2019, Analysis Service and Integration Service in SSDT with ML/Python/R (and Sample DW AdventureWork2019) *********

  • Note that You need to Choose MultiDimensional and Data Mining Mode instead of Tabular Mode in Step 13 below for CIS611 Lab3 and Project Later.


    Installing SQL server with Analysis Service in Tabubar Mode is Only for SQL Query Purpose

    After Download, How to Install SQL Server 2019 Developer/Enterprise Edition (with Analysis Service and Integration Service in SSDT(SQL Server Data Tool))

    Note that Mixed Mode was chosen in this Guide. Instead, You can Choose Window Authentification
    Note that You need to Choose MultiDimensional and Data Mining Mode in Step 19 for CIS611 Lab3 and Project Later.




    Download and Installation Guides:

    Where to Go to Download a 2019 SQL Server Stand ALONE:
    1. From MS AZURE Site => Education menu: Azure Potal Site
    Or
    2. Microsoft Download site for 2022 SQL Server package with Analysis Service, Integration Service all together as a Package:



    General Installation Guides for SQL Server:Read First before Starting Installation !

    General Things to Know for SQL Server Installation:

    Any SQL Server Standard/Developers/Enterprise Version recommended. No Express Version !

    1. Make Sure to Install a Matching Version of Visual Studio first before installing SQL Server
    Note that Visual Studio 2019 Needs to be Installed First Before Installing 2019 SQL Server.
    Read the installation Guides in the Lab0 Section FIRST before Starting to download !
    2. After everything is set up correctly, Run SQL Server Management Studio - a Client for your SQL Server (It is Under Microsoft SQL Server of your Start menu of your Window) to Play with Your SQL Server
    3. If your SQL Server is not running (You don't see the green arrow on your server name on top left corner of your SQL Server Management Studio), Start the server manually in your SERVICE list - Search with "Service" to find the list. (Read the General Installation Instuctions for this in the Lab0 Section !)

  • Guides for Installing MS SQL Server and Creating Your First Database
  • Guides for Installing MS SQL Server and Creating Your First Database


  • See 2019 SQL Server Installation Guides for Installation of The Client Software - MS SQL Server Management Studio (SSMS) Together. It will be installed together at the end of installation of 2019 SQL Server.

    How to Use the MS SQL Client - MS Sql Server Management Studio (SSMS) to Connect to Your SQL Server:
    How to Use SQL Server Client - MS Sql Server Management Studio (SSMS) NEW POST !
    Guide for How To Use a Client - SSMS


    If You Need to Download the Client Software SSMS Alone Seperately from the MS Download site, then Install SSMS after Installing a SQL Server. (See the new instruction for 2019 SQL Server Installation Above) !
    Download and Install the Client: SQL Server Management Studio (SSMS) Download SSMS


    If you want to use MS SQL Server with Naive Client - SQLCMD (Command Line Client):
  • How to USE SQLCMD from SSMS in SQL Server Query -> SQLCMD Mode







  • For NEW Mac AFTER 2021:

    How to Install MS SQL Server on Mac:


    Instructions for the NEW Version of MAC OS AFTER 2021:

    The new M1/M2 chips or Apple Chip in the recent MAC does not support any VM installlation for MS SQL Server since it has issues with VM.
    The best way is to install Docker as it is free for individual and easy to configure. Please see the Instruction for Docker below.

    Newly Changed Docker Installation Procedure for MAC:

    How to Install 2022 MS SQL Server on Docker and Client Software (Azure Data Tool) on New Mac OS (By TA Dharmik Rajesh Kurlawala) ********************


    IMPORATANT NOTE !!
    DO NOT COPY and Paste blindly the set up command from the Instruction !!
    You need run that one docker command with YOUR OWN USER ID and Password !!!!!

    The "PASSWORD = YOU CAN ENTER YOUR OWN" and "MSSQL_USER = ... " lines are just there to let you know that you can substitute your own values for the PASSWORD and MSSQL_USER environment variables if you wish. Those are the credentials you'll use when connecting to the database.

    IMPORTANT NOTES !!
    Those Docker instructions work on Linux. However, copy-pasting from the PDF might add some line breaks to your command, so I'd suggest you copy-paste the following version into a terminal:
    
    docker run -e "ACCEPT_EULA=1" -e "MSSQL_SA_PASSWORD=MyPassword123#" -e "MSSQL_PID=Developer" -e "MSSQL_USER=SA" -p 1433:1433 -d --name=sql mcr.microsoft.com/azure-sql-edge
    
    You need only run that one docker command. The "PASSWORD = YOU CAN ENTER YOUR OWN" and "MSSQL_USER = ... " lines are just there to let you know that you can substitute your own values for the PASSWORD and MSSQL_USER environment variables if you wish. Those are the credentials you'll use when connecting to the database.










    For OLD Mac BEFORE 2021,
    Follow instructions to download and install directly to your Mac OS

    How to insall SQL Server on a New Mac
    Or
    You will need to download VM and install Window10 on the VM.
    Within the Window VM, you can download and set up SQL Server exactly the same as the regular set up instructions.
    Install VM(Virtual Machine) and Window 10 on Mac and then Install SQL Server on the Window VM:

    How to Install SQL Server on Mac:

    1. Install Mac OS X Host VM(Virtual Machine) from
    Oracle VM
    Oracle VM Download
    2. Install Window 10 OS on the VM on your Mac then
    3. Install MS SQL Server on the Window VM.


    If you want to install a SQL Server on Linux, download and install PostgreSQL directly to your Linux system.
    PostgreSQL to download



    FQAs on Installation of SQL Server as of 2020

    Q1: I am wondering if I can just download PostgreSQL alone directly on Linux, or if I also have to create a Virtual Machine and install a SQL Server on it like the Mac users do?

    A: Yes, you can download a PostgreSQL directly on Linux. Only MAC needs a VM to set up to provide Win OS for a MS SQL server because None of SQL servers is based on MAC OS.

    Q2:For Lab Outputs, Do I need the VM for a standardized SQL Server lab output as instructed on the clas webapge, or can I just download PostgreSQL by itself and use that instead?

    A: If you are using PostgreSQL, it’s Client is not SSMS, it has its own a Client interface, which will be downloaded and installed together with a POSTGreSQL server on Linux directly,
    where you can write SQL/DDL/DML to Submit for the labs. The lab output will be the screen captures of the PostgreSQL Client results. No, you don't need VM for this.

    Q3: I’ve created an account and database on Azure portal site since I am a Mac user. Microsoft does offer a tool to write SQL queries on Mac by connecting to Azure SQL database – Azure Data Studio. Can we use that for lab submissions instead of SSMS on virtual box?
    A: Yes. You can connect to Azure directly from MAC witout VM with the client tool.


    Q4:I realized that my system username and my Laptop name were different than my name after I installed SQL server and SSMS (SQL Server Management Studio).
    So I finally changed the laptop name (and username) to my name and reinstalled the SQL server and SSMS management studio.
    I have been trying to uninstall the server and then install it again. But it is not connecting to the server, it's showing SQL Server Connection errors saying there is no SQL Server by the name.

    A: I never recommended to change your computer name after you installed SQL Server and SSMS. Do Not Change Your Host Name after You Installed SQL Server and SSMS !
    Your SQL server was already named after your old computer name at the installation time, so as SSMS. If you changed your computer name after installing SQL server, you are calling troubles
    You have to change your SQL Server name to your new computer name and propagate it into SSMS as well.

    If the issue still persists, the problem can be fixed by uninstalling SQL Server with other related services installed together and SSMS then freshly reinsatll SQL Server and SSMS to pick up the changed computer name as SQL Server instance name
    You will have to remove your SQL Server and all the other Services installed along together with the SQL Server and the SSMS through Add/Remove program in Window
    then reinstall all freshly again to pick up your new host name for a SQL Server instance name and propagate it to SSMS at the installation time.

    Most of the times when uninstallation is needed, students often uninstall the SQL Server only. But there are other services that gets installed along with the SQL server.
    You need to remove each of those services from Add/Remove Programs and functions in Window.
    That will allow the user to freshly reinstall the SQL server as a new instance.










    Azure Cloud

    What To Do If My Laptop Died In the Middle of Lab Due:

    Creating a Database Server Instance on AZURE Cloud:

    How to Apply an Azure Free Student Account to Create a Database Server in Azure Cloud Service

    Quick Tutorial: How to Set Up and Create a Database on Azure Cloud

    Quick Tutorial: How to Use SSMS to Connect to and Query Azure SQL Database or Azure SQL Managed Instance

    Other Azure Tutoral Sites:
    Quick Tutorial: How to Create a SQL Database on Azure Cloud
    Quick Tutorial: Getting Started : How to Set Up and Create a Database on Azure Cloud
    Tutorial: How to Create a SQL Database on Azure Cloud


    If you have any questions or help on the insatllation and set up, please send email to TA !


    FAQs and Azure Query Editor Set Up


    Important Notes on Use of Azure Cloud Server

    See the CIS430 Lab Section for the detailed Instruction

    The Azure cloud server was suggested as the LAST resolution, it is not recommended as a primary system for this course.
    It was suggested as an emergency resolution ONLY when you don't have your own computer system to download, install and set up your own database server or when there is any accidental non-recoverable crash of your system.

    We don't control the MS Azure account at all, which means we cannot help you with the unusual issue on MS Azure student credit accounts or a trouble to obtain the free student credit account. That is something you have to resolve with Microsoft Azure team, it is NOT something we can help with.

    Azure Cloud DB Server is just a backup plan when you don't have any computer to download (from Education site of Azure portal site and Azure portal site is NOT Azure Cloud Service) and set up your own database server and a client for CIS430.
    2GB storage is needed when you actually download the server physically in your laptop to install. You don't download and install the database server physically by yourself when you request to use an Azure Cloud database server since it is already installed and running on their Azure Cloud site.
    You only need to go to the site to use their client site or download their client: Query Editor to connect and login to your database server running on Azure Cloud site.
    So there are NO installation issues when you use a database server you requested on Azure Cloud Server.

    Don't wait for MS Azure site to fix your problem. Looks like MS changed $100 free student credit policy partially, instead, they provide $200 free credit to try their new COSMO DB on Azure Cloud. I do not recommend it in this course since Cosmo DB is for Semi-structured DB for Big Data.

    Please use your server you installed and set up on your laptop for CIS611.

    If you have any questions or help on the insatllation and set up, please send email to TA !



















    Prep for MS Analysis Service with OLAP Server for Lab3: If you want to install and set up ahead for Lab3, See Lab3 Section Below for the Detail Instructions !

    Note that Visual Studio 2019 Needs to be Installed First Before Installing 2019 SQL Server.

    Where to Go and What/How to Download SQL Server 2019 Installer

    Note that You Have to Choose Multidimensional Mode instead of Tabular Mode when Installing SQL Server for Cube building and MDX Query Execution Later

  • How to Install ALL together: SQL Server 2019 with Analysis Service and Integration Service in SSDT with ML/Python/R (and 2019 AdventureWork Sample DW)

  • MSDN site Installing Instructions for 2017 Visual Studio, SQL Server, AnalysisService and SSDT Together

  • Installing Instructions for 2017 Visual Studio, 2017 SQL Server, Analysis Service (for BI applications) and SSDT (for Data Mining Together)

  • How to Download and Set up MS Data Tool(SSDT) for Data Analytics

  • How to Download and Set up a Sample Data Warehhouse: AdventureWorks

  • Read README FIRST to Set up a Sample Data Warehhouse: AdventureWorks






  • PrepLab 0:

    Prep for Lab1 for Those Who Have NOT Taken CIS430/530: Install and Set Up a SQL Server

  • PrepLab0: For Those Who Did NOT Take CIS430/530

  • For a Fall Semester, Due By the End of the Weekend of the Second Week of the Fall Semester
    For a Summer Semester, Due By the End of the Weekend of the First Week of the Summer Semester
    For Summer CIS611, Part 1 and Only Part2_1 of PrepLab0 are Required !


    For More Useful Guides for Installation of SQL Server and PrepLab0, See CIS430/530 Lab Section at:
    CIS 430/530 Lab Section


    For Part 1 on Creating/Populating a Database:
  • Tips For Creating Database Schema and Initial Loading
  • More on Tips For Creating Database Schema and Initial Loading

  • Class Note_0: How to Create Correct Database Scheme from E-R Diagram

    Class Note_0: SQL Review :Chapter 4 (See the Script in Chapter 4 to Create the Company Database Scheme for PrepLab !!)

    For More Useful Guides, See CIS430/530 Lab2_2 Section at CIS 430/530 Lab Section: Scroll down to the Lab2_2 Section

    For View:

    Simple Examples of How to Create, Select, and Alter View
    Note you have to use Alter View in MS SQL instead of Replace View statement
    Good Examples of How to Create, Select, and Alter View

    For Part2_1:

    Class Note_15_1: Example of Stored Procedure
    Example of Creation and Execution of Stored Procedure and Cursor in MS SQL Syntax

    SQL Review:
  • Review: Examples of LOJ with Group By and Aggregate Functions
  • Review: Example Outputs of LOJ with Group By and Aggregate Functions





  • Notes for All the Lab Outputs:

    1. Make Sure to Create a Database Named Company_YourName and Show the Execution in Screen capture.
    2. Make Sure to Insert Yourself in the Employee Table with Your First and Last Name. You Can Make up Other Column Info.
    3. Make Sure to Insert All 4 Departments in Department table.
    4. Make Sure to Show Your Table Contents with Select * From your_table_name; (with the Screen capture of the Select Query Results) in your report right after Inserting all the data.



  • Important Things to Know to Create Your Lab Report to Prove that Labs are Done By You in Your Own SQL Server !!

  • Create Database named in the following rule:

    Company_3Characters of Your First Name Followed by 3 Characters of Your Last Name with Each First Letter in Capital
    For Example, Your Name is Sunnue Chung, Create Database Named: Company_SunChu

    To Name Your .sql Files, use only the first 4 characters of your first name followed by the first 4 characters of your last name with Each First Character in Uppercase.
    For Example, Your Name is Sunnie Chung, SunnChung_CreateTable.sql


    Notes for Lab Output Report:

    1. Make Sure to Show Your SQL Code and the Executed Result by Your Server in the SAME Window in a Screen Capture !
    2. Make Sure to Show your Server Name in the SAME Window with Your Query and the Result !
    3. If Your Lab Report Does Not Show Enough Information about Your Server Name, Your Userid Folder Name, Your Sql File Names Are Related to Your Name,
    I Will Assume that You Are Hiding Someone Else's System Information for Cheating.




    How to Create CIS611 Lab Reports

  • Example of Lab Output Screen Captures Should Show each Query and the Server Response together in a Window of Your SSMS and Your SQL Server

  • Important Instructions When Creating Your Lab Report:

    Screen Captures Should Show each Query and the Server Response together in a Window of Your SSMS and Your SQL Server
  • Important Notes on Your Lab Output
  • Example of Lab Output (This is just an example of Lab output. It is not a CIS611 Lab)








  • Labs:

    The Lab Submission Link and the Deadline of Each Lab Will Be Posted on the Class BlackBoard !
    Wait For the Lab Submission Links Are Created on Blackboard for Each Lab

    If You did an Extra Credit Part, Mention about What Part is Done for Extra Credit at the Front(Cover) Page of Your Report in Bigger and Bold Font !

    Always Follow the Deadline of Each Lab Assigned on the Class Blackboard.
    The Deadlines mentioned on the Class Webpage Are Tentatively Scheduled at the Beginning of Each Semester.

    Please Identify Your Course When You Ask Me in Email !











    Lab0 on Prediction on the Game Data for Motivation for OLAP Server: (Due By The End of the Third week Friday of the Semester)


    With the Given Table - Global Video Game Sales data (below) from the Data Warehouse of a Global Game Retail Company,
    Analyze the Game Sales Data (Without Using Any Database Server/Data Warehouse OLAP Server) to Predict the following:

    1. Which Computer Game Genres, Platforms Will Be the Best to Focus to Invest/Develop for Next Year (in this data set next year is 2017) Globally and For Each Region.

    To be able to predict, you need to analyze sales data with followings

    1. Import the data file to Excel to perform operation steps to obtain results of Group By with Aggregation to see total sales by Genres, Platforms respectively per each year during last 10 years.

    2. Save the result of each result into a CSV file for any visualization tool or Excel to Visualize in Graph to Compare total sales of each Genres, Platform during last 10 years to find any useful intelligence to Predict

    3. Report the facts found from your visualization of each analysis result and discuss why you predict that the specific Genres and Plaform are best to invest in for the next year.

    You may use Excel only for this Lab0 to see the required data processing steps to be done manually. You can choose any tool for analysis and visulization -- Even Excel should be enough for this task to analyze and visualize the analyzed results.


    Hint: One easy way to create analyzed data is that you can do all the calculation per each year and each genre , (each year and each platform as well), in SQL with Group by and Aggregation Functions in SQL server.
    To create a graph, you need each aggregated total per each year and each genre, (each year and each platform as well), saved in one file (this can be done by storing the SQL result in a table), then saved the table as an excel or csv file for a graph.

  • Global Video Game Sales Data
  • Example of Lab0 Output (Note that This is not a complete solution of Lab0 and that this example is done by Excel only, not using SQL Server)



  • SQL Review for Goup By with Aggregation:

  • Examples of LOJ with Group By and Aggregate Functions
  • Example Outputs of LOJ with Group By and Aggregate Functions















  • Lab Assignment 1:

    Lab Assignment 1 on Implementing in Query Execution Steps in a Relational Algebra to Build a Simple Query Processor


  • Lab Assignment 1

  • The Part 3 is for Extra Credits of Part 2. Part 3 will Replace the Required Part 2 and It will be counted as Part 2 (70% of Lab1) plus the Extra 50% of the Part 2, so total 105% for Part 3

  • Example of Lab Output and Example Design for Query Processor

  • Lab Guide and FAQs on Query Processor

  • NOTE:
    For the Part 2 of Lab1, You are NOT Supposed to use any SQL to SQL Server to implement except for loading (reading) two base table Employee and Department tables as input and creating a new intermediate table as output of each step.
    More FAQs on Lab1:

    Q: We have a below note in this Lab on Simple Query Execution – Part2,
    For the Part 2 of Lab1, You are NOT Supposed to use any SQL to SQL Server to implement except for loading (reading) two base table Employee and Department tables as input
    But in the implementation of the steps we have:
    For each operator, create a new table with the given output table name specified in the execution steps to write the output of the operation.
    Can we write JDBC call to store(create) each new table generated by each operatot dynamically?

    A: Yes, you can create each intermediate output table in your database server using JDBC/ODBC calls dynamically. That is more realistic applications.
    Or alternatively, you can directly write to an intermediate output file in CSV per each step then read from the CSV file in the next step without creating intermediate tables in a database server
    then create a final output table in a database server to show the final result.


    Q: For Part 1, Do we need to insert all the new tuples and write SQL from Q1 - Q3?

    A: Yes, write SQL for each Q1 - Q3 and show the Execution steps of each SQL
















    Lab Assignment 2 on Building an Inverted Index



  • Lab Assignment 2 on Data Pipelining to Build an Inverted Index
  • Lecture Note on Algorithm: How To Build an Inverted Index Table


  • For this Lab, you can assume that Phase 1 is done by Big data processing. The output of Phase 1 is given below in .csv file.
    For Part 1, You can use (modify) any "word Count" Program (Various versions of Word Count program for text processing are available on line).

    You can use any program/script language for Lab2. You might need to write Store Procedures as needed. You don't need to use Table Function if you create a Table in SQL Server in your program.

  • UnionAddressTable.csv Input file for Part 1: UnionAdressTable.csv

  • The input file of Lab2: UnionAdressTable.csv was generated by big data (web data) processing (Lab1 of CIS593 Big data) to extract information from the website with the collection of the US Preseident State Union Addresses at:

    Infoplease site of Collection of US Preseident State Union Addresses



    FAQs:
    Q: Are We supposed to scrap the webpage data from the infoplease website given in lab2 document and save the extracted data in csv file right?

    A: No, Lab2 is not supposed to process the raw data webpages. It assumes that webpage processing has been done in the Big Data processing team ahead to extract all the info from each web site to the CSV file.
    The given csv file is the input for Lab2 from which the inverted index needs to be built from the texts of the input file.




    Stored Procedure, Table Function Review for Lab1:
  • Review: Examples of Stored Procedure for Part 3 of Lab1
  • Class Note_0: Database Programming Review :Cursor, Stoted Procedure, Function, Table Function and UDT (User Defined Type)























  • Lab Assignment 3:



    Lab Assignment3 on DW with OLAP

  • Lab Assignment 3

  • For Lab3, note that there are different data sets in different years of Adventure Work Sample Data Warehouse.
    If you are using 2014 or 2017 Adventure Work DW,
     There are only up to 2010 Data for AdventureDW 2014 and up to 2014 Data for AdventureDW 2017.
    So, Change the current year 2008 to the current year 2010 or 2014 of your data set in the Question 3 and 4.


    Instructions for Installation and Set Up MS Business Intelligence Platform: Analysis Service (Multidimensional DW) and Integration Service in SSDT Data Tool

    Step 1: Installation for 2019/2017 SQL Server with Analysis Service for Multidimensional OLAP and Integration Service in SSDT for Data Mining with ML

    Note that You Have to Choose Multidimensional Mode instead of Tabular Mode when Installing SQL Server for Cube building and MDX Query Execution Later

    For CIS611 Lab3 and Final Project Later, Install ALL with Machine Learning Features as below:

    Note that You need to Choose Multidimensional and Data Mining Mode instead of Tabular Mode in Step 13 below for CIS611 Lab3 and Project Later.

  • Complete Full Software Set Up: How to Install SQL Server 2019 with Analysis Service and Integration Service in Visual Studio with SSDT Extended with ML/Python/R, and Import 2019 AdventureWork Sample DW

  • How to Install SQL Server 2019 (with Analysis Service and Integration Service SSDT(SQL Server Data Tool) with Visual Studio)

  • How to Add (Install) 2019 Integration Service in Visual Studio and SSDT with ML, Python and R Separately (After Installation of 2019 SQL Server and Analysis Service)

  • Installing Instructions for 2017 Visual Studio, SQL Server, Analysis Service and SSDT Together
  • MSDN site Installing Instructions for 2017 Visual Studio, SQL Server, Analysis Service and SSDT Together
  • FAQs When Installing 2017 VS and 2017 SQL Server for BI
  • Trouble Shooting Error Resolutions When Set Up BI Platform with SQL Server NEW POST by TA !



  • Step 2: Import2022/2019/2017 Sample Data Warehouse Adventure Works:

    Set Up Guides for Where/What/How to Import and Set Up a Sample Data Warehouse Adventure Work DW

    Important Notes to Know First !:

    1. You Have to Download AdventureWorksDW (Data Warehouse) full database backups 2019 or 2017 Full Database Backup.zip from the MS GitHub Site below !!
    2. Note that You have to Choose Data Warehouse for OLAP ! Not OLTP (Online Transaction Processing) Database backups !

    3.Download Sites: You can download from either one of two Microsoft AdventureWork Sample Database sites below

  • MS AdventureWork Sample Database Site

  • Read the ReadMe file First !

  • MS github Site for What/How to Download and Set up Sample Data Warehhouse Adventure Work
  • README in MS github Site to Install Sample Data Warehhouse Adventure Work Using a Script



  • Sample DW 2022, 2019, 2017, 2014 Versions:

  • Instructions to Set up Sample Data Warehouse Adventure Works 2017
  • Adventure README Site to Read FIRST to Set up a Sample Data Warehhouse: AdventureWorks
  • 2014 README Script: Follow the Instructions for Importing 2014 Adventure Works 2014 Sample Data Warehouse importing to SQL Server Make Sure to follow the Instruction Script for Adventure Works DW 2014 !(Not OLTP SCript !)

  • How to USE SQLCMD from SSMS in SQL Server Query -> SQLCMD Mode



  • Step 3: Design and Deploy DW Cube from the Sample Data Warehouse Adventure Work

    Set Up Guide for What/How to Set Up for BI Project with Multidimensional Analysis Service (DW Cube with OLAP and MDX):

    Using 2022/2019/2017 Visual Studio with MS Integration Service and 2022/2019 SQL Server with Multi-Dimensional Analysis Service Using Sample Data Warehouse(2022/2017/2017)

  • 2022 Analysis Service/Integration Service with 2019 AdventureWorks Sample DW: Set Up, Cube Deploying Guide, How to Add Heirarchy, and MDX Queries for Multi-Dimensional Analysis Service *********Important Post !!

  • Examples to Guide How to add New Dimensions to a Existing Cubes (using 2022 Server) Important New Post !! (Contributed by Nithu Phillip)

  • Tutorial for 2022 Analysis Service/Integration Service with 2019 AdventureWorks Sample DW: Cube Deploying Guide, How to Add Heirarchy in Visual Studio Integrated in 2022 MS Integration Servive for 2022 Multi-Dimensional Analysis Service Important New Post !! (Contributed by Paven)

  • Using 2019 AdventureWorks DW: Set Up, Cube Deploying Guide for 2019 Multi-Dimensional Analysis Service With SSDT(Integration Service) and Cube Deploying New Post !!
  • Project Set Up Guide for Multi-Dimensional Analysis Service With SSDT and Common Cube Deploying Error Important New Post !!

  • Try Deploying with a different Selection option for Impersonation Information if You are a Getting Deploying Error because of User Credentials. It may be depending on your installation set up for that !

  • Complete Tutorials : How to Create a Multidimensional Project, Build a CUBE and Execute MDX Query with OLAP Operators on Adventurework2017 DW New Post !!

  • Guides to Build a Multidimensional CUBE and MDX with OLAP Operators on Adventurework DW 2014 Important New Post !!

  • Examples to Guide to Build a Cube with Level Hierarchy in a Dimension for MDX QueryImportant New Post !!

  • MSDN Tutorial Site for Step by Step Process for Analysis Service in Multidimensional DW with OLAP for BI Project Using AdventureWork

  • FAQs:

    If you are getting errors while deploying a cube, or executing MDX, see the tutorials above to find the reasons and resolutions of those errors !

    

    Project Tutorials for Business Intelligence with Multidimensional Analysis Service (DW Cube with OLAP and MDX):

  • MSDN Tutorial Site for Analysis Service in Multidimensional DW with OLAP for BI Project Using AdventureWork
  • Tutorials for BI Project Using 2016 Analysis Service: AdventureWork Multidimensional DW with OLAP

  • Tutorials for BI Project with Data Mining Using 2017 SSDT Data Mining Tool

  • Tutorials for BI Project Using 2017 SSDT Data Mining Tool on Top of AdventureWork Multidimensional DW As Data Sources

  • Lecture Notes_6_5: SQL Server 2012 Tutorials - Analysis Services Data Mining




    More Guilds for Old Versions: **** (It still HELPS A LOT since it is still the same as in the new version !)
    2016/2014 Analysis Service and SSDT for Business Intelligence:

  • Guides to Build a Multidimensional CUBE and MDX with OLAP Operators on Adventurework DW 2014 NEW POST !
  • Tutorials for How to Set Up a Sample Data Warehouse Adventure Work DW (2014) to SQL Server with Analysis Service for BI Adventure Works DW 2017/2016/2014 Full Database
  • Follow the Instructions for Importing Adventure Works Data Warehouse 2014 to 2014 SQL Server Make Sure to follow the Instruction Script for Adventure Works DW 2014 !(Not OLTP SCript !)
  • Guide for Importing 2014 Adventure Work Database to 2016 SQL ServerNote that this is to Download Adventure Work Database (Not DW) ! Make Sure to Download Adventure Works DW 2014 Full Database !
  • Restoring a database backup using SQL Server Management StudioNote that this is to Download Adventure Work Database (Not DW) ! Make Sure to Download Adventure Works DW 2014 Full Database !
  • Guide for Installing MS SQL Server Data Tool (SSDT) - BI for Analysis Service and Importing Adventure Work Data Warehouse
  • Installation Guide to Download and Import Adventure Works Data Warehouse 2014 to 2014 SQL Server
  • Installation Guide for Importing Adventure Works Data Warehouse 2014 to 2014 SQL Server
  • Guide for Setting Up Adventure Work DW and Creating Cube with 2012 Adventurework DW

  • Lecture Notes: Labs/Project Tutorials with DW and OLAP CUBE
  • Guide for Deploying Cube 2014 Adventure and How to Set Up to Write a MDX
  • Labs/Project Tutorials with DW and OLAP CUBE using Analysis Service with Visual Studio


  • Trouble Shooting Error Fixes:
  • Fix for Empty Cube Errors !!
  • Trouble Shooting Tips for Deploying Error and How To Fix Empty Cube Errors
  • Trouble Shooting Tips for Connecting to OLAP Server


  • MDX (Multi-Dimensional Query) Tutorials:See MDX Tutorial Section in DW with OLAP Cube in the Class Lecture Note Section

  • MSDN: Basic MDX (Multi Demensional eXpressions) Tutorial
  • MSDN: All Keywords in MDX (Multi Demensional eXpressions)

  • MSDN: MDX How to specify MDX query with slicer and the contents of a query axis

  • MSDN: MDX How to specify the contents of a slicer axis

  • MDX Tutorials with 2017 AdventureWork DW with OLAP

  • MDX Tutorials with 2017 AdventureWork DW with OLAP

  • Tutorials for BI Project Using 2016 Analysis Service (Server): AdventureWork Multidimensional DW with OLAP

  • Tutorials for BI Project Using 2012 Analysis Service (Server): AdventureWork Multidimensional DW with OLAP

  • Lecture Notes_6_6: MDX (Multi Demensional eXpressions) Tutorial


  • Data Mining Tutorial Using Analysis Service and SSDT with DMX (Data Mining Query) :

  • Lecture Notes_6_5: SQL Server 2012 Tutorials - Analysis Services Data Mining

  • Lecture Notes_6_7: Data Mining Extensions - DMX - Reference


  • Full Microsoft Documentation Sites:

  • MSDN Tutorial Site for Step by Step Process for Analysis Service in Multidimensional DW with OLAP for BI Project Using AdventureWork

  • Tutorials Site for All Other SQL Server Analysis Services for Data Mining

  • Microsoft Analysis Service Documentation Site for Full Picture






  • Lab Assignment3 on DW with OLAP Using Pentaho:
  • Set up Pentaho Enterprise Data Intergration System with Data Warehouse/OLAP
  • DW_Pentaho BI and Data Integration Download
  • Guide for DW_Pentaho Data Integration Installation
  • Guide for DW_Pentaho Data Integration Installation
  • Guide for DW_Pentaho Data Integration Installation
  • Instructions for Orace DB Sever Installation
  • Guide for Setting Up Oracle Local Database Connections

  • DWCourse Oracle Database Appliance Installation
  • DW_Pentaho Pivot4J Installation
  • DW_Pentaho Installation Setup Guide
  • DW_Pentaho Pivot 4J Tutorial




  • Lab Assignment4 on B+ Tree, Hash Index, or Bitmap Index:

    This is a programing assignment. You have to implement B+ tree Insertion Algorithm using Tree.

    Implement B+ Tree Insertion based on the Lecture Notes (B+ Tree Insertion Algorithm II) given here. Start from an empty tree, insert data shown in the first tree in page 2 in the note. Follow by inserting 28, 70, 95 in that order.
  • Lab4 with B+ Tree Insertion Algorithm I


  • B+ Tree Insertion Algorithm II in the Lecture Note

    Changes in the B+ Tree Insertion Algorithm I and Algorithm II for Lab4:

    1. Middle Key Goes Up When Split
    2. The Same Index Key Appears at the Last Key of Left Child Node in a Leaf Node. See the Textbook Examples below.

  • See the Textbook Examples of B+ Tree Insertion/Deletion Algorithm
    That is, For the insertion rule of the data values equal to the internal node keys, Follwing the example shown in the textbook to place the data values that are equal to the keys of the internal nodes.
    It means that insert the data values equal to the internal node keys to the Last key of the corresponding leaf node block that is pointed by left pointer of the internal key.  


    Another Option for Lab4:
    Implement one of Hash Index based on the Lecture Notes Chap 17. Start from an empty hash table, insert data shown in the lecture notes in that order.




  • Project and Presentation

    Project
  • Project:


    For the Class Size <= 30:
    The Recommended Group Size is 2 Members per group, but a 3-person Group is Allowed for a Bigger Scale (in Complexity) Project.

    If the Size of the Class is Too Big (35 - 55), 3-4 Person Project Group Will Be Allowed As Long As the Project Scope is Big Enough for 3-4 Persons

    For 3-4 Person Group with a BI Project, it is fine as long as the amount of work and the complexity level of the project is bigger than Lab3.
    The 3-4 Person Group should make efforts to plan to discover hidden knowledges which cannot be discovered in a simple MDX through multiple phases of analytic methods or Data mining techniques.




    IMPORTANT DATES for Group Project:

  • Task 1: Group Project Proposal Due by Nov 10 !


  • Task 2: Group Project Status Report ! Due By Nov 23

  • Task3: Project Presentation Starts from Dec 1 !
    Project Presentation Schedule Will Be Sent To Your CSU Email for Sign Up One week Before the Presentation

  • Task4: Final Project Report Due by the End of Friday (Dec 5) of Your Presention Week !




    Important Submission Instructions for Three Phases of Final Group Project:

  • Task 1: Group Project Proposal (Due by Nov 10 !)

    Submit Your Group Proposal (in Minimum 3 Pages) on BlackBoard

    Group Proposal Should Include Data Description, Investigate on Systems/Tools to Use for Your BI Platform, Goal of Business Analysis, Data Analysis Plan in Detail


  • Task 2: Group Project Status Report ! (Due By Nov 23)

    Your Project Status Report Should Show the Following Tasks Done:

    Platform Setting/Configuration Procedure if it is new,
    Your Data Contents, Your Cube Design, Deployment, and the Intermediate Outputs of Data Anaysis in Progress



    One Submission Per Group Is Required !
    EACH Memeber Name and ID SHOULD BE LISTED in the COVER !
    List Your First and Last Name, ID Only ! Exactly as Appeared in the CSU CampusNet. DO NOT Use Your Middle Name.

    If We Can't Find You by Your Name appeared on Your Project Report and Presentation Schedule. Your Project will be Considered as Missing with 0.

     
  • Task 2:Project Presentation Starts from the Each Class in the Last Week of the Semester (Dec 1 !)
  • Read the Instructions of Project Presentation Here ! (Project Presentation Scheduler Will Be Announced on the Class BB; Access with Your CSU Email !)



    Final Group Project Report Submission Instructions:

    Submit Group Project Presentation and Final Report in a Zip File By the End of Friday of Your Presentation Week !

    Remember you have to include the source file of your Project Report in doc and Presentation slides in pptx !

    If your data file is too big to upload, Submit your zip file with your Data file on your ONE drive and Send email to me and TA attached the data file on One Drive.

    Submit a Zip file that includes:

    All of your presentation slides (both in .ppt and .pdf) and
    Your Group Final Project Report (in doc) with Platform/System Set up Procedures/Instructions,
    Executions Steps, all the source codes, scripts, all the intermediate outputs, and final output files on Blackboard by the end of Friday of your presentation week.

    Include the Problems/Error Encountered and Your Resolutions in Your Report

    One Submission Per Group Required.

    Submit a Zip File that Includes All the required Source Files, Input, Output Files, and Final Report (in Doc file) and Presentation Slides (in pptx).

    Your Final Project Report Should Include the Set Up Procedure /Configuration Detail of Your Platform/System/Packages as well as Source Codes and Intermediate Results in files.

    The Report Should Explain Each Step of Your Project Tasks with the Screen Captures and Results.

    If you don't show/include any of the required contents in your report and presentation, I will ASSUME that your group submitted a Copy of Somebody's Github Codes from the Web.



    You can choose your group project from the following projects:




    
    Project Submission Instructions: 
    
    Submit Group Project Presentation and Final Report in a Zip File By the End of Friday of Your Presentation Week ! 
    
    Remember you have to include the source file of your Project Report in doc and Presentation slides in pptx with your paper (in pdf) ! 
    
    If your data file is too big to upload, Submit your zip file with your Data file on the google drive in the link below:  
    Name your zip file with your project title and your names.
    
    https://drive.google.com/drive/folders/1v_l5oKUIX3Jr-10Cbs1X_hrH0Jxj9rKG 
    
    Submit a Zip file that includes:
    
    All of your presentation slides (both in .ppt and .pdf) and
    
    Your Group Final Project Report (in doc) with Platform/System Set up Procedures/Instructions, Executions Steps, all the source codes, scripts, all the intermediate outputs, and final output files on Blackboard by the end of Friday of your presentation week.
    
    Include the Problems/Error Encountered and Your Resolutions in Your Report
    
    One Submission Per Group Required.
    
    Submit Both on Blackboard and a Printout of Your Presentation and Report (to my office FH222 or bring to the Final exam day) 
    
    Submit a Zip File that Includes All the required Source Files, Input, Output Files, and Final Report (in Doc file) and Presentation Slides (in pptx).
    
    Your Final Project Report Should Include the Set Up Procedure /Configuration Detail of Your Platform/System/Packages as well as Source Codes and Intermediate Results in files.
    
    The Report Should Explain Each Step of Your Project Tasks with the Screen Captures and Results. 
    
    If you don't show/include any of the required contents in your report and presentation, I will ASSUME that your group submitted a Copy of Somebody's Github Codes your group downloaded from the Web.  
    
    


    FAQs on Final Project and Presenation:

    Q: I have not chosen the group member for the project. Will you assign or can I do individually? 

    [Answer] You can do the project alone if you don't want to choose a member. It will be considered as One person project.
    If you want to choose a member for your group project, send out email to the entire class (you can also do on blackboard) with telling them you are looking for a group member. Whoever needs will respond to you. 

    Q: I and my team mate decided to do a Final Project on BI and visualization by using multidimensional OLAP cube and MSD Tools with already available Adventures Works DW.

    Q-1: How can we reach your expectations? Will the set process and designing a cube, delopying a cube, visualization of cube, defining types of scheme, defining olap operations and writing a MDX query sample would be enough ?

    [Answer] Yes for the general procedures with the focus on your own analysis goal and visualization. Make some effort to come up with your own analysis goal (instead of blindly copying my tutorials) for what kind of the information/knowledge to discover.

    Q-2: Are there any in depth contents or the most important arears we must concentrate to keep in our powerpoint slides that we present?
    The research papers which you have provided are very helpful and fruitful. But there is no research paper sample in BI with OLAP.

    [Answer] The presentation should consists of:

    - Brief descriptions/methods of your BI Project in 3-4 mins
    - Focus on the Paper Presentation in > 10mins

    As I mentioned in class, the paper doesn't need to be directly related to your BI project, there is no direct research Papers related to your BI or any other projects here since your project is simple and common.
    You can choose any paper in the in Sigmod or VLDB sites. All the papers there are related to the subjects of Advanced Enterprise Database System related research topics: DW/OLAP/OLTP/Cloud DB/Cloud DB/ML Security/Query Execution Optimization/Index.
    So, pick any paper there, it is related to your BI/Security/Other Projects.

    Q: Could you tell me about the extra credit in project which you announced with research papers. Should we choice one topic and prepare a document with references help from research papers?

    [Answer] The extra credit is for your paper presentation depending on how you understand and summarize the main concepts/methods/algorithms well.



    Class Project Descriptions / Topic / Specific Objectives / Activities
    Project 1


    1. Building a Simple Query Optimizer : Presentation Is Not Required.

    This is a single-person or 2-person project. (Recommended for all the MCS Major Students)
    Due By the End of Frday on the Presentation Week! (This subject Will be covered in class in next 2-3 weeks)

    Building a Simple Query Optimizer:

  • Project CIS 611 Project on Building a Simple Query Optimizer

  • Guide for Project and Most Frequently Asked Questions and Answers on Project
  • Additional Specifications:
    Use 10% for The Projection rate for the Subquery Result for join t1 and t3 in RQ
    Whichever not provided ones, use 20% consistently for the same table join for Q and RQ.
    Use the same buffer size (big enough for 2pass sort) of hash join and sort merge join for aggregation and group by.
    
    For the rest of them, you can specify your own assumptions. As long as they are applied consistently with the same values for Q and RQ, it should be ok.
  • Example Output of Project Note that this output may not be all correct.
  • Example Output of Project Note that this output may not be all correct.


  • Project 2


    2. Create a Business Intelligence and Visulaization Project Using Multidimensional OLAP Cube and MS Data Tool -- Presentation is required on the Last Week of Class !

    Options for Your BI Project:
    1. You can choose Data Warehouse like Adventure Work that are already created to design and build your DW Cubes for your BI Project: Presentation is Required !

    2. Urban Planning Project:

    Design and Build Data Warehouse On the Real Estate Land Use Data Sets and Working People Demographics in the Cleveland area from the different underlying data sources (Given Below)
    Extra Credit for Building Ranking or Recommendation List for a Given User Interest or Prefernece on Real Estate Land from DW OLAP and MS Data Analytic Tool !
    Meta data description is gievn below and the detailed instructions for the access to Data sets will be given later.

  • Urban Project Data Description Will be given the scope of data to use later

  • Urban Project Web Sevice Site (this is just a proto type under contruction)

  • Land Use Data Set (GEOJSON file)

  • Access to the project site will be given later if you are working on this project


    Intruction for BI Projects:

    For 3-4 Person Group with a BI Project, it is fine as long as the complexity level of the project is deeper than Lab3.
    The 3-4 Person Group should make efforts to plan to discover hidden knowledges which cannot be discovered in a simple MDX through multiple phases of analytic methods or Data mining techniques.
    Submit a Proposal by the Second week of November on Your Project Goal for What/How You want to Analyze to Find Out Critical Decision Supporting Business Intelligences
    Must Present:
    2-1. Show All the MDX Queries on Cubes and OLAP or Data Mining Process that you investigated and Results for Each Intermediate Step
    2-2. Visualization of Each MDX or Data Mining Results
    2-3. Final Analysis Conclusions of Business Intelligence that Are Found from This Project

  • How to start Business Intelligence Project with 2014 Adventure Work DW OLAP CUBE

  • Business Intelligence Project Guides with 2014 Adventure Work Data Warehouse and OLAP CUBE and MDX

  • Business Intelligence Project Guides with 2014 SSDT Data Mining Tool (SSDT)

  • Data Mining Tutorial for Business Intelligence Project Guides with 2014 SSDT Data Mining Tool (SSDT)

  • Project Tutorials with DW and OLAP CUBE

  • Data Mining Labs/Project Tutorial Using MS Data Analysis Tool and Multidimensional DW with OLAP



  • Project 3


    3. Security for SQL Injection Attack in Web Application with Database server (NOT For This Semester)

    Submit a Proposal to implement Thise Database Atack like SQL Injection and Prevention -- Presentation is required !

  • SQL Injection Attack in Web Application Database Security

  • You can choose the papers from Web Application Security below
    Web Application Security Papers from Stanford Web Application Class 2009
    Web Application Security Reports 2016



  • 4. Security with Data Analytics: Detection and Elimination of Domain Abuse (NOT For This Semester)

    Submit a Proposal By the second week of November to implement one (Extra Credit) and Presentation is required !
  • Detection and Elimination of Domain Abuse in Web Application Database Security



  • Presentation on Research Papers


    Presentation on Big Data Processing in Enterprise Database Systems: Required for All CS Students in the Last Week of Class

    You can choose more recent papers from SIGMOD 2025/2024/2023/2022 and VLDB 2025/2024/2023/2022 Conference Sites as well:





    2025:

    Significant Industry Research Papers: ACM SIGMOD 2025 Paper List
    Significant Research Papers: ACM SIGMOD 2025 Paper List
    Significant Research Papers: ACM SIGMOD 2025 Paper List
    Significant Industry Research Papers: VLDB 2025 Paper List


    2024:

    Significant Industry Research Papers: ACM SIGMOD 2024 Paper List
    Significant Research Papers: ACM SIGMOD 2024 Paper List


    2023:
    Significant Research Papers: SIGMOD 2023 Paper List
    Significant Big Data Industry Research Papers: SIGMOD 2023 Industry Paper List


    2022:
    Significant Research Papers: SIGMOD 2022 Paper List
    Significant Big Data Industry Research Papers: Sigmod 2022 Industry Paper List


    2021:
    Significant Research Papers: ACM SIGMOD 2021 Paper List
    Significant Industry Research Papers: ACM SIGMOD 2021 Paper List

    some good papers from SIGMOD 2020 to suggest:
    Paper: In Memory Processing
    Paper: Order Preserving Key Compression
    Paper: Secure Aggregation with Multiple Grop By
    Paper: Crypto-Assisted Differential Privacy on Untrusted Servers
    Papers in DW and OLAP




    Research Paper Presentation Guide (Extra Credit)

    For the extra credit Research paper presentation, you have to read and summarize the main method of the paper from the best conference sites in the Project List.

      Submit the slides in pptx and the paper. If you don't summarize the main content of the paper properly, no grade will be given.

    How to Read and What are the Important Contents to Summarize:

    How to read and present a research paper

    Example of Research Paper Presentation Slides

    More Research Paper Presenation examples



    For Those Who Want to Present Research Papers or Research Project on Further Advanced Database Topics:
    Lectures of CMU Advanced Database Course On Modern Enteprise DBMS


    For Those Who Want to Present Research Papers or Research Project on Further Advanced Database Topics:

    Lectures of CMU Advanced Database Course On Modern Enteprise DBMS




    Or
    For Those Who Want to Present Research Papers or Research Project on Further Advanced Database Topics:
    Lectures and Papers of CMU Advanced Database Course On Modern Enteprise DBMS


  • Text Book I: "Database Management Systems" 3rd Edition by Raghu Ramakrishnan and Johannes Gehrke

  • Text Book II: "Fundamentals of Database Systems" by Elmasri / Navathe

  • Text Book III: "“Data Mining Concepts and Techniques” by Jiawei Han / Micheline Kamber

  • Class Lecture Notes with Tentative Schedule

    Class Chapter / Topic / Specific Objectives / Activities
    1



    Introduction to Enterprise Big Data, Big Data Analytics for Business Intelligence:

    Advanced Modern Enterprise Database Systems for Big Data, Big Data Analytics for Business Intelligence

    Class Note_1_1: Introduction of Big Data and Important CS Topics for Big data

    Industry Examples of Enterprise Big Data Analytic Systems:

    Lecture Note_1_2: Example of Enterprise Database System Archtecture for Big Data Anaytics
    Lecture Note_1_3: Example of Enterprise Data Warehouse Systems - LinkedIn Data Processing System


    Study Guides for Special Topics: Independent Study Report for CIS 611 by Nick White (Now in FaceBook and The First Prize Winner of 2016 Senior Project)







    Lectures of CMU Advanced Database Course On Modern Enteprise DBMS to See Why the Subjects of CIS611 are Important to Learn







    Review for Basic Relational Database Topics and SQL:

    Class Note_0: How to Create Correct Database Scheme from E-R Diagram
    Class Note_0: SQL Review :Chapter 4 (See the Script in Chapter 4 to Create the Company Database Scheme for PrepLab !!)
    Class Note_0: Complex SQL Review :Chapter 5_Updated
    Class Note_0: Database Programming Review :Cursor, Stoted Procedure, Function, Table Function and UDT (User Defined Type)
    Class Note_0: Database Programming Review :View, Transaction, Trigger


    2-5


    Getting Started on Advanced Database Study

    Motivation:

    Examples of Big Data Processing Algorithm in Query Execution Plan for Real Time Big Data Analytic Query Processing

    Yahoo:
    Class Note_2_3: Data Pipelinig (Query Execution Plan) for Big Data Processing by NoSQL Database Server on Hadoop in Yahoo

    LinkedIn:
    Example of Enterprise Big Data Processing System with Data Warehouse Approach in LinkedIn



    Lectures:

    Overview of Query Processing Architecture of Data Processing System (Relational Database System)



    Review of Basic SQL Processing on Relational Database:
    Lecture Notes on SQL Processing Semantics





    Class Note_2: Architecture of Relational Database System and Overview of Query Processing

    Class Note_2_2: Example of System Catalogue/Data Dictionary

    Class Note_2_1: Archetecture of Modern Parallel Data Processing System: Parallel Data Warehouse (PDW)


    SQL Review: Example Outputs of LOJ with Group By and Aggregate Functions
    Example of Data Processing Pipelining of Query Execution Algorithm (Query Execution Plan) Generated by Optimizer of RDBMS SQL Server

    Industry Examples of Query Execution Plan for Query/Data Processing Generated by Database Servers by Yahoo and Facebook



    Relational Algebra:

    Underlying Theory (Foundation) of Query Processing of Relational Database (SQL) System

    Class Note_4: Lecture Notes on Relational Algebra

    Class Note_5: Chapter 6 Relational Algebra and Relational Calculus

    Example: Why NOT EXISTS is NOT equivalent to != Join Condition



  • Lecture Note on Data Pipelinig To Build an Inverted Index from Huge Unstructured Text Documents



  • View in RDBMS:


    Class Note_2_4: RDBMS Architecture with Views

    Matierailized View (Indexed View) in MS SQL Server

    Matierailized View in Oracle


    With Common Table Expression as Inline View:

    With Common Table Expression (CTE)

    Examples of Use cases of With Common Table Expression





    Transaction in RDBMS:

    Class Note_2-5: RDBMS Architecture with Transaction

    Example: Transaction with Multiple Concurrent Users



    For Those Who Want to Present Research Papers or Research Project on Further Advanced Database Topics:
    Lectures of CMU Advanced Database Course On Modern Enteprise DBMS

    6-7



    Enterprise Data Warehouse with Online Analytical Processing (OLAP):

    Lectures:

    Lecture Notes on Data Warehouse with Examples

    Lecture Notes on Data Warehouse (From J Han's Textbook)


    Supplement Matierial:

    Example of Enterprise Big Data Processing Platform - First Look of Pehtaho System
    Lecture Note_1_3: Example of Enterprise Data Warehouse Systems - LinkedIn Data Warehouse and OLAP Processing System

    Paper: Data_Cube: A Relational Aggregate Operator by Jim Gray et al (Microsoft)








    BI Project Implementation Guides:

  • MS Analysis Service
  • MS Analysis Serviceis MultiDimensional Data Warehouse with OLAP (Online Analytic Processing) Server
    to Provide DW Cubes and MDX (MultiDimensional Data Mining Query) Query Processing.

  • MS Integration Service: SSDT (SQL Server Data Tool)
  • MS Integration Service in Visula Studio is to Provide a Data Mining Platform with ML Algorithms Which is Running on Top of
    Multidimensional OLAP Cubes and Views of Data Warehouse as Underlying Data Sources
    to Prepare Data Sets for Training and Testing for Data Mining (BI) Projects.

    MS SSDT Are Integrated/Upgraded with Separate ML Features in Python/R to Provide a More Powerful BI Platform.

    For CIS611 Lab3 and Final Project, Install and set Up these Enterprise BI Platform. See Below and Lab3 Section for Instructions.





    IMPORTANT 3 Steps of Lab3/BI Project

    Step 1:
    BI Platform Set Up and Import a Sample DW AdventureWorks:

    For CIS611 Lab3 and Final Project Later, Insatll ALL with Machine Learning Features as below:

    See Lab3 Section for more Detail Instuctions for Download/Installation

    2022 Server Package:

  • How to Install ALL: SQL Server 2022, Analysis Service and Integration Service in SSDT with ML/Python/R *********

  • How to Install ALL: SQL Server 2019, Analysis Service and Integration Service SSDT(in Visual Studio) with ML/Python/R (and Sample DW AdventureWork2019)

  • Note that You need to Choose MultiDimensional and Data Mining Mode instead of Tabular Mode in Step 13 below for CIS611 Lab3 and Project Later.

    After Install All the Servers and Client then Import a Sample Data Warehouse Named Adventure Work DW 2022
  • How to Import and Restore a Sample DW AdventureWorks
  • Download Site for Sample DW AdventureWork Data

    How to Restore a Sample DW AdventureWork


  • MS github Site for What/How to Download and Set up Sample Data Warehhouse Adventure Work
  • README in MS github Site to Install Sample Data Warehhouse Adventure Work Using a Script





  • Step 2:
    CUBE Creation in Star Scheme and Deploying(Populating) the CUBE:

    2022/2019/2017 Microsoft BI Platform Set Up Guide for What/How to Create a BI Project (from Visual Studio integrated in MS Integration Service) to Create a Multidimensional CUBE (DW Cube with OLAP) to Write MDX Queries (from MS SQL Management Studio) to Analysis Service:

    Using 2022/2019/2017 Visual Studio with Integartion Service (previous SSDT) and SQL Server with Multi-Dimensional Analysis Service Using Sample Data Warehouse 2017/2019/2022 AdventureWork:

  • 2022 Analysis Service/Integration Service with 2019 AdventureWorks Sample DW: Set Up, Cube Deploying Guide, How to Add Heirarchy, and MDX Queries for Multi-Dimensional Analysis Service *********Important Post !!

  • Examples to Guide How to add New Dimensions to a Existing Cubes (using 2022 Server) Important New Post !! (Contributed by Nithu Phillip)

  • Tutorial for 2022 Analysis Service/Integration Service with 2019 AdventureWorks Sample DW: Cube Deploying Guide, How to Add Heirarchy in Visual Studio Integrated in MS Integration Servive for 2022 Multi-Dimensional Analysis Service Important New Post !! (Contributed by Paven)

  • 2019 AdventureWorks DW with 2019 Analysis Service: Set Up, Cube Deploying Guide for Multi-Dimensional Analysis Service With SSDT for Cube Deploying *********Important Post !!

  • Set Up Guide for 2019 Multi-Dimensional Analysis Service and Integration Service (SSDT) with 2017 Sample DW AdventureWork and Common Cube Deploying Error *********Important Post !!

  • Complete Tutorial on How to Create a Project, Deploy a Cube and How to Fix the Deploying Errors, and How to Query MDX over the Cube in 2017/2019 Server ******Important Post !!

  • Examples to Guide to Build a Cube with Level Hierarchy in a Dimension for MDX Query Important New Post !!

  • Examples to Guide How to add New Dimensions to a Existing Cubes Important New Post !! (Contributed by Nithu Phillip)

  • MSDN Tutorial Site for Analysis Service in Multidimensional DW with OLAP for BI Project Using AdventureWork

  • 
    Project Tutorials for Business Intelligence with Multidimensional Analysis Service (DW Cube with OLAP and MDX) and SSDT for Data Mining:


  • Complete Project Tutorial on How to Start Business Intelligence Project with 2014 Adventure Work DW OLAP CUBE New Post!!


  • Tutorials for BI Project Using 2016 Analysis Service: AdventureWork Multidimensional DW with OLAP

  • Tutorials for BI Project Using 2017 SSDT Data Mining Tool on Top of AdventureWork Multidimensional DW As Data Sources

  • Example: Business Intelligence Project Guides with 2014 Adventure Work Data Warehouse and OLAP CUBE and MDX



  • Tutorials for Data Mining Using SSDT with SQL Server and Analysis Service

  • Example: Business Intelligence Project Example with 2014 SSDT for Data Mining


  • MSDN: Data Mining Tutorial for Business Intelligence Project Guides with 2014 SSDT Data Mining Tool (SSDT)


  • MSDN: Data Mining Algorithms for Data Mining Project with 2014 SSDT Data Mining Tool (SSDT)


  • Tutorial with Example for Data Mining: How to Use SSDT and Analysis Service for Data Mining on AdventureWork DW







  • Step 3:
    Multi-Dimensional Query (MDX) Tutorials:

  • Lecture Notes on MDX (Multi Demensional eXpressions) Overview with Examples

  • MSDN: Basic MDX Tutorial to Start

  • MSDN: MDX on Members keyword

  • MSDN: Basic MDX (Multi Demensional eXpressions) Tutorial to Start

  • MSDN: MDX How to specify MDX query with slicer and the contents of a query axis

  • MSDN: MDX How to specify the contents of a slicer axis

  • MSDN: MDX How to descendant

  • MSDN: MDX How to Drill Down: DrillDownMember

  • MSDN: MDX How to Drill Down: DrillDownLevel

  • MSDN: MDX Fundamentals - All Menus in Tutorials

  • MSDN: All Keywords in MDX (Multi Demensional eXpressions)

  • MSDN: MDX How to specify the context/subcubes

  • Simple MDX (Multi Demensional eXpressions) Tutorial


  • Tutorials with Cube Building Process and Example MDX Queries:

  • Tutorials for BI Project Using 2016 Analysis Service: AdventureWork Multidimensional DW with OLAPNEW POST !
  • Tutorials for BI Project Using 2012 Analysis Service : AdventureWork Multidimensional DW with OLAP




  • Tutorials of DMX (Data Mining Query):

  • Data Mining Extensions - DMX - Reference

  • See Also Tutorials for Data Mining with SSDT Above



    7-8



    INDEX:

    Motivation for Index Optimization

    Important Review Lectures:

    Class Note_8: Chapter 17 Disk Storage System, File Structure, Hash Index

    SSD Notes

    BasicFileIOForOperatiorExecution

    Class Note_9: Chapter 18 Index Structure for File

    Lectures:

    Class Note_10: Index Structure for File: B+ Tree Insertion/Deletion Algorithm

    Class Note_10_1: Another Example of B+ Tree Algorithm

    Node Structure of B+ Tree and Example of Insertion/Deletion Algorithm from Chapter 18 *****

    B+ Tree Visulaization



    Class Note_10_2: Sorting Using B+ Tree and B+Tree Size

    Class Note_13_4:: Bitmap Index for Data Warehouse

    Class Note_10_3: Bitmap Index for Data warehouse

    Index for Big Data - Unstructured Documents:

    Class Note_10_4: Inverted Index for Text/Web Data Processing by Google

    Document Index by MS Azure for Text/Web Data Processing



    9-12


    Query Processing in Optimizer:

    Motivations to Remind:
    Class Note_2_1: Example of Query Execution Plan Generated by Optimizer
    Class Note_2_3: Industry Examples of Query Execution Plan for Query/Data Processing Generated by Database Servers in Yahoo and Facebook

    Example of a Query Execution Plan in Oracle:

    How To Display and read the Query Execution Plans for a Sql Statement in Oracle


    Lectures:

    Class Note_11_2: Lecture Notes on Cost Analysis of Query Processing with Sorting and Join Algorithms

    Class Note_11_1: Lecture Notes on External Sorting

    Class Note_11: Lecture Notes on Cost Analysis of all the Relational Algebra Operations

    Class Note_11_3: Lecture Notes on Join Algorithm and Analysis


    Update Statistics


    Industry Research Paper on Cost Based Optimization for Parallel Data Warehouse (PDW) Engine:

    Paper: Optimization of MicroSoft Parallel Data Warehouse Engine (SIGMOD 2013)

    Presentation: Optimization of MicroSoft Parallel Data Warehouse Engine on Azure (SIGMOD 2012)

    Presentation: Optimization of MicroSoft Parallel Data Warehouse Engine on Azure (SIGMOD 2012)



    12-13


    Query Rewrite Optimization Techniques of Query Processing:

    Class Note_12: Lecture Notes on Optimization with Query Rewrite

    Class Note_12_1: Example to Explain Dayal's Query Rewrite



    14-15


    Optimization for Data Warehouse with Columnar Database Systems:

    Basic Columnar Concept for Optimized Data Warehouse Processing (From 2009 Sigmod Paper)

    Lecture Notes on Columnar Database System: Optimized Data Warehouse Processing

    Class Note_13_4:: Bitmap Join Index for Data Warehouse

    Class Note_13_3:: Bitmap Index and Index Strategy for Data Warehouse

    How To Display and read the Query Execution Plans for a Sql Statement in Oracle

    Class Note_13_4: Vertical C-Store Update for Data warehouse


    Industry Research Papers on Columnar Systems

    Paper: Row vs Columnar

    Presentation on SAP HANA Columnar Database System

    Industry Research Paper on SAP HANA Columnar (SIGMOD 2012)

    Class Note_13_5: Compression Algorithms for Columnar Databases for Data warehouse



    16


    Class Note_5: Chapter 10 Normalization
    Class Note_6: Lecture Notes on Functional Dependencies
    Class Note_7: Chapter 11 Further Functional Dependencies
    Typo Corrections in Chap 11
    Class Note_8: Lecture Notes on Minimal Cover

    17

    Presentation on Industry Research Papers For recent indistry research papers since 2017, Find in the listed conference sites in the Project Section above !
    How to Read and Present Research Papers
    Presentation Schedule

    ==> Completion of Homeworks/Labs is required for obtaining a passing grade.

  • This is a tentative scale and
    it could be changed

    Letter
    Grade

    Quality Points

     


      A

    > 93%  

    A: Outstanding (student's performance is genuinely excellent)

      A-

    90% - 93%

     

      B+

    87% - 90%   

     

      B

    82% - 87%

    B: Very Good (student's performance is clearly commendable but not necessarily outstanding)

     

      B-

    80% - 82%

     

     

      C

    75% - 80%

    C: Good (student's performance meets every course requirement and is acceptable; not distinguished)
        D 65%-75% D: Below Average (student's performance fails to meet course objectives and standards)

     

      F

    <65%

    F: Failure (student's performance is unacceptable)

    ADA Adherence. If you need course adaptations or accommodations because of a disability, if you have emergency medical information to share with me, or if you need special arrangements in case the building must be evacuated, please make an appointment with me as soon as possible. My office location and hours are listed on top of this syllabus. If you need further information, please contact the ACCESS office, phone number 687-5106.

     


    Programming standards

    • Every program must include your name, CSU ID number, Class, Section Number, Hours, the words 'Homework # ...', and a short description of the assignment. For example:
       ' Name: Mark Zuckerberg  
       ' ID: 1234567            
       ' Homework #1            
       ' Description: Computing the average life of a light bulb
    • Every variable should have a meaningful name (this includes function/procedure/subprogram names).
    • Every portion of the program should be as cohesive (single purposed) as possible. This leads to a large number of small functions.
    • Every function (including the main function) should be preceded by a comment indicating its arguments and a description of the transformation it performs.
    • Non-obvious code within a function should be explained.
    • Code should not be over commented.