Topic Name Description
File Syllabus

The class syllabus is attached. It includes the schedule, the grading scheme, and an explanation of the different types of activities the course will contain.

Page Tentative Schedule

A tentative schedule is below. 

Page Textbook

There are two textbooks for this course. 

Page Integrated Development Environment (IDE)

We will be using Eclipse in this class. Please install the Eclipse IDE, and the Java JDK. 

Page Are you stuck?

Don't just stare at your computer, reach out to get some help! You have options!

Interesting Articles URL When apps rule the road

"The proliferation of navigation apps is causing traffic chaos. It's time to restore order."

URL Cyber Defense Tool is an Early Warning System for Grid Attacks

Defending the power grid from physical and cyber attacks.

URL Hacking the Brain with Adversarial Images

Fooling biological and computer brains.

File Decades-Old Graph Problem Yields to Amateur Mathematician

Interesting graph problem partially solved by an amateur mathematician.

URL Diagnosing the Undiagnosable

15 year old boy becomes so ill that doctors have to induce a coma. Months and hundreds of thousands of dollars worth of testing can't determine a diagnosis...then, the computer scientists step up to the challenge.

URL Project SOLI from Google

The new touchscreen.

URL 3D Printing Houses

These houses can be built for $4,000 allowing homes to be built for those who can't afford one.

File Designing Algorithms and the Fairness Criteria They Should Satisfy
File Rent Division
Programming Projects URL Project #1
URL Project #2
Week One: 8/25-8/29 URL Pre-Test

This semester our class will be participating in a National Science Foundation funded project titled “Extended BRIDGES: Addressing Preparation Gaps and Promoting Culturally Relevant Teaching to Support Diverse Groups in Early CS Courses”. We will be using the BRIDGES infrastructure for at least three of your homework assignments. BRIDGES provides students with a simplified API that allows them to populate their own data structure implementations with real-world data, spanning disciplines such as science, entertainment, multi-media, literature and social networks. Secondly, BRIDGES provides the ability for students to easily visualize the data structures that they have created as part of their routine classroom exercises, which can promote better understanding of the data structure and its underlying algorithms.

The project team from UNC Charlotte would like you to participate by filling out an online survey after completing each of the homework assignments. The survey will take 5-10 minutes and will ask you a series of questions to provide feedback about the assignment, such as how relevant, interesting and engaging the assignments are and as well as how long it took you to do the assignment and whether it was related to your interest in computing. In addition, at the beginning and end of the semester you will also take an online computer experience survey that will test your readiness for learning about data structure/algorithm and any changes that occur throughout the semester. Your name will not be used on any of the surveys. Instead, I as the instructor, will assign a code that you will use every time you access the link to the Qualtrics website to respond to a survey.

Your consent to participate is especially important as well because the project team will request from me your project grades and course grade. Again, let me emphasize that I will send that data with a student code rather than your name. Thus, your answers in the survey will have no bearing on your course grade. Your individual responses to the online surveys will be read only by a project evaluator who is not in computer science. She will send back summaries but not individual responses and your names will not be used for any of the surveys or data that are collected.

I encourage you to participate because the benefits of participation are the opportunity to apply data structure concepts to real world data sets and to provide some baseline information about a new approach to teaching data structures/algorithms.

If you are interested in participating, you must click on the Qualtrics link and fill out the informed consent sheet.

File Slides: Java Crash Course

Crash course on Java

File Worksheet - Look at a Java Program
This is a simple Java program. We will walk through the different components as a class. 
Week Two: 8/29-9/2 File Slides: Java Data Types

Java data types including arrays and for loops. Brief intro in order to complete the group worksheet.

File Classwork: Group Worksheet

This worksheet will be completed in class. If you are unable to attend, please complete the worksheet on your own and email it to me. 

File Slides: Java Decisions and Conditionals

Lecture slides about if statements and loops in Java. Also introduces ArrayLists.

Week Three: 9/5-9/9 Page Video: ArrayLists

We didn't finish the lecture last week where I started talking about ArrayLists. I recorded a video covering that. 

File Is Abstraction the Key to Computing?
File Slides: Classes

Simple slides about Java Classes

Page Video: Classes

This video is a recording of the classes slides. 

Folder Sample Code
Loops, ArrayLists, and Bankaccounts =)
Week Four: 9/12-9/16 Folder Code from Class 9/14

These are the code files for the Contact class and tester that we built in class. 

Week Five: 9/19-9/23 Folder In-Class Activity

We completed the attached worksheet as a class. I have included a blank copy, the teacher's copy (it has an error), and library files you'll need to answer the worksheet questions. Please familiarize yourself with this information if you were not present. 

Folder Code from Class 9/19

The attached code includes:

Shape
Circle
Rectangle
ShapeTester

Please consider how you might extend Shape, Circle, and Rectangle to include some of the other methods in the handout from class. 

Folder Code from Wednesday

This is the code we wrote in class. We had a Circle and a Rectangle class that used the Java Graphics package and a JPanel to draw a square on the screen. It also has a ShapeTester class, which has the main method to draw the image. 

I challenged you to create your own shape (another class like Circle or Rectangle so maybe Triangle?) and draw a shape like a simple tree or car. 

Week Six: 9/26-9/30 File Slides: Linked Lists

We'll come back to doubly linked lists later.

Folder Code from class

The code includes:

Node
LList
LLTester

I apologize for my mistakes in class. The code allows you to add elements to the end of the list and prints out the elements. 

Page Recording: What is an Algorithm?

This video goes over the intro to algorithm slides.

File Slides: What is an algorithm?

Introduces the concept of algorithms and data structures. Repeats some of the linked list information to assist with the Snake program. 

Week Seven: 10/3-10/7 File Slides: Sorting
File Algorithm Analysis

This is from a textbook and goes into more detail on the math behind evaluating the runtime of an algorithm. We will talk more about this next week. 

Week Nine: 10/17-10/21 File Hashing Slides
File Cryptographic Hashing
Week Ten: 10/24-10/28 File Lecture Slides: Binary Search Trees

Slides outlining what a BST is and why we would use it as well as the pseudocode for creating a tree, inserting elements in a tree, and searching through the tree.

Folder BST Code from Class

Here are the files we wrote in class. You need to add the getter/setter for rightchild in BST_Node. There are three TODO items in BST.