NOTE: Here are the Installation Instructions for the versions of Java and Eclipse that we will be using for CS320 (which are also the versions installed in KEC 119 and KEC 123).

This page lists the lab activities for the course. I will introduce and review the labs in class, but you will have to work on them outside of class, as they require a substantial amount of time and effort. All of the labs will be graded on a Pass / Fail basis, as required assignments. Note that failure to submit a sufficiently complete lab by the due date (a lab that receives a failing grade OR is late) will result in up to a 5% penalty off your course grade.

The labs provide extremely important concepts and techniques that will be essential for completing your team project. The given due dates are the enforced dates, but I HIGHLY encourage you to work on the SQL-related labs (Lab04, Lab05, and Lab06) ahead of time, as they are essential for getting a good start on your persistent database design and implementation.

In fact, your team will likely be using Lab06 as the basis for your team project’s database. If you ask any of the teams from previous years, they will all tell you that the database portion of their project implementation was the most time-consuming and difficult of their various project’s tasks.

NOTE: For Lab02a, Lab05, and Lab06 (the labs that require programming submissions), you MUST also refactor the name of the project to include your username - BEFORE YOU EXPORT IT AND SUBMIT IT TO MARMOSET. Submissions that DO NOT adhere to that guideline will not be graded until they are refactored and resubmitted.

Example: If I was submitting Lab02, I would refactor the CS320_Lab02 project to CS320_Lab02_djhake2 as soon as I imported the project into Eclipse. You should do the same with your user name for all three Java programming projects that are listed above.

Due Date Lab File
Thursday, 2-3-22, by 7:00am (Marmoset) Lab 1: HTML and CSS n/a
Friday, 2-4-22 (in-class) Lab 3: Git Part I n/a
Sunday, 2-20-22, by 7:00am (sign-off and Marmoset) Lab 2a: Web Applications II CS320_Lab02.zip, CS320_Jetty9.zip
Wednesday, 3-23-22, by 7:00am for 10% extra credit (Marmoset)
Thursday, 3-24-22, by 7:00am for full credit (Marmoset)
Lab 4: SQL, Queries, Joins CS320_Lab04.zip, CS320_Derby.zip
Saturday, 3-26-22, by 7:00am (Marmoset) for 10% extra credit
Sunday, 3-27-22, by 7:00am ((Marmoset) for full credit
Lab 5: JDBC CS320_Lab05.zip
Saturday, 4-2-22, by 7:00am (Marmoset) by 7:00am (Marmoset) for 10% extra credit
Sunday, 4-3-22, by 7:00am ((Marmoset) for full credit
Lab 6: ORM CS320_Lab06.zip

All of the above labs, with the exception of Lab03 (Git Lab) are to be completed individually. I encourage you to discuss high level concepts and strategies with other students, but any work you submit must be yours alone.

Because these labs are essential for working towards and demonstrating the capability to provide a significant technical contribution to your team project, as well the achievement of the course outcomes, you must solve them on your own. You may discuss the problem and high-level (pseudo-code) approaches to solving the problem with other students. You may not, under any circumstances, discuss or share concrete implementation techniques or code. Examples of forbidden types of collaboration include, but are not limited to: looking at another student’s code, allowing another student to see your code, viewing and/or using code from an external source such as a web page, discussing the use of specific API functions to solve a problem, giving or receiving help debugging specific code.

Direct copying of code or other work from other students, web sites, or other sources is absolutely forbidden under any circumstances.

Any sources (books, websites, articles, fellow students, etc.) that you consult in completing an assignment must be properly acknowledged. In general, I strongly discourage you from using any resource not explicitly listed in the course syllabus or on the course web page. When you work on a programming assignment, it must be your program, not your adaptation of someone else’s program.

Any violation of the course’s academic integrity policy will be referred to the Dean of Academic Affairs, and could have consequences ranging from a 0 on an assignment, a reduced or failing grade in the course, up to dismissal from the college.

Labs will be graded on a Pass / Fail basis. Late labs will be graded as FAIL. Failing a lab, submitting a lab late, or not submitting a lab at all will result in a course grade penalty of up to 5%.

With regards to Lab06 (ORM) - it is the most important lab in this course. Each year, I provide a basic website example built from Lab02a (Web Applications II) and Lab06 (ORM) called The LibraryExample Solution. I will do this again this year, shortly after the due date for Lab06. You will receive an Academic Integrity Violation, as well as automatically fail the course, if you submit any code as part of your Lab06 solution that was taken from any version of The LibraryExample Solution that has ever been provided as part of this course.