January 16 Do not hand in a listing of the file InvalidRowCol.java.

Size: px
Start display at page:

Download "January 16 Do not hand in a listing of the file InvalidRowCol.java."

Transcription

1 0 Changes CSE 2011 Fundamentals of Data Structures Report 1: Sparse Matrices Due: Thursday, January 31, 1pm Where: In class If the class has begun your report is late January 16 Do not hand in a listing of the file InvalidRowCol.java. 1 Main points Be sure to read and follow all the guidelines from the links on reports and academic honesty from the WWW home page for the course. The specification is the union of this document plus the program text you are given. 1.1 Learning objectives Review Java programming with arrays and singly linked lists Review abstract data types, classes and objects Specification of interfaces Program assertions pre- and post-conditions, class invariants and loop invariants Big O analysis for running time and space requirements Testing 1.2 To hand in Hand in the following items as a package in order given in the following. 1. Cover page printed from the course web pages 2. Design document Section 4 3. A listing of the file IntMatrixElement.java Section A listing of the file IntSparseMatrix.java Section A listing of the file MinOutTest.java Section Electronic submission Before the deadline, submit a directory called report1 that should contain all java files for the system. No other files should be submitted. To submit, use the following command on Prism: submit 2011 r1 report1. Files cannot be deleted the submit command can only add or replace files so be very careful to clean up your directory before any submission. While you can develop your system on your personal computer, be sure your system will compile and execute on Prism. 1.4 To get started Copy the file called report1.tar.gz from the course directory /cs/course/2011 to a local directory. When you untar with the command tar xzf report1.tar.gz, you will get a directory called report1 that contains the following files. The method main in the class MinOutTest is the starting point for the execution of the system. 1. IntMatrixElement you need to complete the class definition. If you complete this correctly, then the system will compile and execute with no changes to the other files. 2. IntSparseMatrix you need to complete the class definition

2 3. MinOutTest.java you need to complete the class definition. 4. MatrixElement do not change the file. 5. SparseMatrix do not change the file. 2 Sparse matrix representation A sparse matrix is a matrix with elements with a predominance of zero or null values. For example, Figure 1 shows a standard representation for a 9 x 10 matrix that contains only four non-zero matrix elements the values 3, -1, 4 and 7 shown in magenta. If the standard two-dimensional array storage were used then the array would use 90 integers of space 360 bytes of storage, plus the array descriptor overhead. Figure 1: The standard representation of a 9x10 matrix shown. All zero elements take up space. Rather than use storage space to store the zero values, in a sparse matrix representation only non-zero entries are stored. There are many ways a sparse matrix can be implemented. Figure 2 shows a sparse matrix representation for the matrix represented in Figure 1 that is used for the system you are to complete for Report 1. Note that the 9x10 array is embedded in a representation that can hold a 12x12 array. The example shown permits storage of arrays of size P x Q, where P and Q can range over the values 1 through 12 inclusive. In addition to the user data consisting of the values stored in the matrix, there is a need to store metadata data about the user data. For the sparse matrix representation chosen for this report, the metadata consists of the following. 1. As there is one singly linked list for each row and for each column, there are two one-dimensional arrays rowheader and columnheader that store pointers to the row and column lists. 2. MaxRowCol that records the size of the row and column header arrays. This number represents the maximum number of rows and the maximum number of columns for matrices that can be stored. 3. actualrows and actualcols that represent the actual number of rows and the actual number of columns for the current matrix. 4. maxnonzerorow and maxnonzerocol that represent the maximum row with a nonzero element and the maximum column with a nonzero element

3 Figure 2: Example of a 9 x10 sparse matrix with four non-zero elements at [3,2], [3,10], [8,4] and [8,10] stored in a representation that can store up to a 12 x 12 matrix. Each matrix element contains, in addition to the user data, metadata consisting of the row and column position for the element, which must be explicitly stored, as the physical location cannot be used. For example, the value 1 is physically the second element in row 3 but logically it is in column 10. Pointers to the next row element and the next column element are also needed to maintain the singly linked lists for the rows and columns. As a consequence, each array element has four fields, of 4 bytes each, as metadata; each element requires, in the example, 20 bytes of storage, compared to 4 bytes in the standard representation. Figure 3: Shows the fields for a sparse matrix element

4 3 Tasks 3.1 The interfaces & exceptions MatrixElement interface The interface MatrixElement specifies the methods associated with a matrix element in the sparse matrix representation to be used for this report. You are to use the interface but you are not to change it. The following is a list of the methods. getrow setrow(row) getcolumn setcolumn(col) getdata setdata(data) getnextrow setnextrow(nextrowelem) getnextcolumn setnextcolumn(nextcolelem) SparseMatrix interface The interface file SparseMatrix.java specifies the three operations that are described in the following paragraphs. insertelement(row, col, data) InsertElement modifies the sparse matrix structure. If there is no element at the location [row, col], then a new matrix element is inserted in the matrix. If there already exists a matrix element at [row, col] then the data replaces the existing value. Matrix elements with a zero data value are not stored, as a consequence replacing an existing value with zero is equivalent to deleting the element from the matrix. By definition, the maximum non-zero row and column for a particular matrix contain nonzero data values and all rows and columns above the maximum non-zero row or column contains only zero values, as a consequence inserting a data value may increase or decrease the maximum non-zero row and/or column metadata for the matrix. display For a matrix with no rows or columns, print the message The matrix is empty. For a non-empty matrix, the procedure is to print the matrix in the style shown in the following example display for a 3 x 4 matrix. For the purpose of the report, positive integers are to be in the range and negative integers are to be in the range ; that way each data value takes up 3 columns in the output. The character represents a space character. sum(sparsematrix) ** ** 2 ** 1-99 ** 3 ** ** ** 6 Sum is a function to be used as in the following expression a new matrix is created, neither matrix1 nor matrix2 are to be modified newmatrix matrix1.sum(matrix2) It is the equivalent of the following mathematical expression. newmatrix = matrix1 + matrix2 The basis of the sum algorithm is the merging of the elements from both matrices. Think of the elements of each matrix as being logically a single sequence by considering the rows as being appended to each other (alternately the columns could be appended). Then do a merge operation using the row and column indices. If the locations differ, then a copy of the earlier element is put into the sum. If the locations are the same, then the data values are summed and the element put into the sum. Use the insertelement operation to add the new elements to the sum matrix

5 3.1.3 Invalid Row or Column exception Create and document a run time exception class InvalidRowCol.java for out of range row or column indices. Your minimum output test must produce two lines of output showing that the exception is caught for both row and column exceptions. 3.3 Integer sparse matrix Complete and document, with appropriate comments, require clauses (pre-conditions), ensure clauses (post-conditions), class invariants, and loop invariants, the following two classes. 1. IntMatrixElement.java implements MatrixElement.java using integers. 2. IntSparseMatrix.java implements SparseMatrix.java using IntMatrixElement. You must program your own list operations. While a singly linked list class could be used for either the rows or the columns, it cannot easily be used for both, thus leading to an asymmetric implementation. It is better to treat rows and columns symmetrically in the same way. You will need private support features to simplify the implementation. 3.4 Test implementation Complete and document a minimal output test program, MinOutTest.java, to test IntSparseMatrix. The Java file should contain appropriate comments to help the reader follow and understand what you are doing. Add, by hand, appropriate diagrams. 4 Design document Your design document is a maximum of 10 pages. It should have the following sections. Aside from diagrams, which can be hand drawn, documentation should be written using a word processor or text editor. 4.1 System overview This section presents an overview and description of the system, the classes and their relationship. It should include appropriate diagrams. 4.2 Discussion of space overhead This section presents a discussion of the space overhead of a sparse matrix. Develop expressions that give the amount of overhead for the following cases as a function of the maximum number of rows and columns of a matrix i.e. the metadata variable MaxRowCol. Assume that the actual size of matrices is the maximum for the representation i.e. actualrows = actualcols = MaxRowCol. From your expressions describe the big O analysis of the overhead space requirement. 1. Assume a matrix contains only one non-zero element. 2. Assume a matrix contains all non-zero elements. Compare the space requirements of the sparse matrix representation used in this report with the space requirements for standard matrix storage. Describe the cutoff where the sparse matrix representation begins to save space. 4.3 Discussion of running time Give a discussion of the big O running time for the insert and display algorithms based on the assumptions in the first paragraph of Section

6 4.4 Multi-dimensional sparse matrices Describe how the representation used in this specification for two-dimensional sparse matrices can be extended to an arbitrary number of dimensions. 5 Grading Scheme The grade for the report is partitioned into the following 5 parts. Presentation and general considerations 10% Design document 30% Programming 20% Program text documentation comments and assertions 20% Testing 20% - 6 -

A Computational System for Polynomials with Two Variables

A Computational System for Polynomials with Two Variables CS 610 Data Structures & Algorithms Programming Project A Computational System for Polynomials with Two Variables A polynomial with two variables x and y consists of a summation of terms of the form where

More information

Module 6: Array in C

Module 6: Array in C 1 Table of Content 1. Introduction 2. Basics of array 3. Types of Array 4. Declaring Arrays 5. Initializing an array 6. Processing an array 7. Summary Learning objectives 1. To understand the concept of

More information

COSC2430: Programming and Data Structures Sparse Matrix Addition 2 2: Non-recursive and recursive; arrays and linked lists

COSC2430: Programming and Data Structures Sparse Matrix Addition 2 2: Non-recursive and recursive; arrays and linked lists COSC2430: Programming and Data Structures Sparse Matrix Addition 2 2: Non-recursive and recursive; arrays and linked lists 1 Introduction You will create a C++ program to add two sparse matrices. Sparse

More information

General Instructions. You can use QtSpim simulator to work on these assignments.

General Instructions. You can use QtSpim simulator to work on these assignments. General Instructions You can use QtSpim simulator to work on these assignments. Only one member of each group has to submit the assignment. Please Make sure that there is no duplicate submission from your

More information

CSCI 1301: Introduction to Computing and Programming Spring 2018 Project 3: Hangman 2.0 (A Word Guessing Game)

CSCI 1301: Introduction to Computing and Programming Spring 2018 Project 3: Hangman 2.0 (A Word Guessing Game) Introduction In this project, you are going to implement the word guessing game, Hangman 2.0. Your program is going to get a random word from an enumerated list (instructions below) and then let the user

More information

1. Represent each of these relations on {1, 2, 3} with a matrix (with the elements of this set listed in increasing order).

1. Represent each of these relations on {1, 2, 3} with a matrix (with the elements of this set listed in increasing order). Exercises Exercises 1. Represent each of these relations on {1, 2, 3} with a matrix (with the elements of this set listed in increasing order). a) {(1, 1), (1, 2), (1, 3)} b) {(1, 2), (2, 1), (2, 2), (3,

More information

Assignment 4. Overview. Prof. Stewart Weiss. CSci 335 Software Design and Analysis III Assignment 4

Assignment 4. Overview. Prof. Stewart Weiss. CSci 335 Software Design and Analysis III Assignment 4 Overview This assignment combines several dierent data abstractions and algorithms that we have covered in class, including priority queues, on-line disjoint set operations, hashing, and sorting. The project

More information

COSC2430: Programming and Data Structures Sparse Matrix Multiplication: Search and Sorting Algorithms

COSC2430: Programming and Data Structures Sparse Matrix Multiplication: Search and Sorting Algorithms COSC2430: Programming and Data Structures Sparse Matrix Multiplication: Search and Sorting Algorithms 1 Introduction You will create a C++ program to multiply two sparse matrices as efficiently as possible

More information

PIC 10B Lecture 1 Winter 2014 Homework Assignment #2

PIC 10B Lecture 1 Winter 2014 Homework Assignment #2 PIC 10B Lecture 1 Winter 2014 Homework Assignment #2 Due Friday, January 24, 2014 by 6:00pm. Objectives: 1. To overload C++ operators. Introduction: A set is a collection of values of the same type. For

More information

Due: 9 February 2017 at 1159pm (2359, Pacific Standard Time)

Due: 9 February 2017 at 1159pm (2359, Pacific Standard Time) CSE 11 Winter 2017 Program Assignment #2 (100 points) START EARLY! Due: 9 February 2017 at 1159pm (2359, Pacific Standard Time) PROGRAM #2: DoubleArray11 READ THE ENTIRE ASSIGNMENT BEFORE STARTING In lecture,

More information

CSCI 1301: Introduction to Computing and Programming

CSCI 1301: Introduction to Computing and Programming This lab is not meant to be completed in a single lab period - it is broken up into two parts and there are two files to submit. Please complete part 1 before going to part 2. Part 1 Introduction In this

More information

15-110: Principles of Computing, Spring 2018

15-110: Principles of Computing, Spring 2018 15-110: Principles of Computing, Spring 2018 Problem Set 5 (PS5) Due: Friday, February 23 by 2:30PM via Gradescope Hand-in HANDIN INSTRUCTIONS Download a copy of this PDF file. You have two ways to fill

More information

An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type.

An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type. Data Structures Introduction An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type. Representation of a large number of homogeneous

More information

CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM

CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM Objectives Defining a wellformed method to check class invariants Using assert statements to check preconditions,

More information

Programming Assignment 2 ( 100 Points )

Programming Assignment 2 ( 100 Points ) Programming Assignment 2 ( 100 Points ) Due: Thursday, October 16 by 11:59pm This assignment has two programs: one a Java application that reads user input from the command line (TwoLargest) and one a

More information

It is academic misconduct to share your work with others in any form including posting it on publicly accessible web sites, such as GitHub.

It is academic misconduct to share your work with others in any form including posting it on publicly accessible web sites, such as GitHub. p4: Cache Simulator 1. Logistics 1. This project must be done individually. It is academic misconduct to share your work with others in any form including posting it on publicly accessible web sites, such

More information

Programming Standards: You must conform to good programming/documentation standards. Some specifics:

Programming Standards: You must conform to good programming/documentation standards. Some specifics: CS3114 (Spring 2011) PROGRAMMING ASSIGNMENT #3 Due Thursday, April 7 @ 11:00 PM for 100 points Early bonus date: Wednesday, April 6 @ 11:00 PM for a 10 point bonus Initial Schedule due Thursday, March

More information

CS 2210 Programming Project (Part IV)

CS 2210 Programming Project (Part IV) CS 2210 Programming Project (Part IV) April 25, 2018 Code Generation This project is intended to give you experience in writing a code generator as well as bring together the various issues of code generation

More information

XMT-HW1: Matrix-Vector Multiplication

XMT-HW1: Matrix-Vector Multiplication XMT-HW1: Matrix-Vector Multiplication Course: ENEE459P/ENEE699 Title: Matrix-vector multiplication (matvec) Date Assigned: September 27th, 2010 Date Due: October 11, 2010, 11:59pm Central Time Contact:

More information

Recommended Group Brainstorm (NO computers during this time)

Recommended Group Brainstorm (NO computers during this time) Recommended Group Brainstorm (NO computers during this time) Good programmers think before they begin coding. Part I of this assignment involves brainstorming with a group of peers with no computers to

More information

King Abdulaziz University Faculty of Computing and Information Technology Computer Science Department

King Abdulaziz University Faculty of Computing and Information Technology Computer Science Department King Abdulaziz University Faculty of Computing and Information Technology Computer Science Department CPCS204, 2 nd Term 2014 Program 5: FCITbook Assigned: Thursday, May 1 st, 2014 Due: Thursday, May 15

More information

1. Introduction. 2. Deliverables

1. Introduction. 2. Deliverables 16.216: ECE Application Programming Summer 2014 Programming Assignment #10: Doubly-Linked Lists Due Friday, 6/27/14, 12:00 PM (noon) NO LATE ASSIGNMENTS 1. Introduction This assignment deals with the combination

More information

CONTENTS: Array Usage Multi-Dimensional Arrays Reference Types. COMP-202 Unit 6: Arrays

CONTENTS: Array Usage Multi-Dimensional Arrays Reference Types. COMP-202 Unit 6: Arrays CONTENTS: Array Usage Multi-Dimensional Arrays Reference Types COMP-202 Unit 6: Arrays Introduction (1) Suppose you want to write a program that asks the user to enter the numeric final grades of 350 COMP-202

More information

Chapter 7:: Data Types. Mid-Term Test. Mid-Term Test (cont.) Administrative Notes

Chapter 7:: Data Types. Mid-Term Test. Mid-Term Test (cont.) Administrative Notes Chapter 7:: Data Types Programming Language Pragmatics Michael L. Scott Administrative Notes Mid-Term Test Thursday, July 27 2006 at 11:30am No lecture before or after the mid-term test You are responsible

More information

PIC 10B Lecture 1 Winter 2014 Homework Assignment #3

PIC 10B Lecture 1 Winter 2014 Homework Assignment #3 PIC 10B Lecture 1 Winter 2014 Homework Assignment #3 Due Tuesday, February 4, 2014 by 5:00pm. Objectives: 1. To redefine the Big 3 : Copy constructor, Assignment operator, and Destructor for a class whose

More information

CIS 121 Data Structures and Algorithms with Java Spring 2018

CIS 121 Data Structures and Algorithms with Java Spring 2018 CIS 121 Data Structures and Algorithms with Java Spring 2018 Homework 2 Thursday, January 18 Due Monday, January 29 by 11:59 PM 7 Required Problems (85 points), and Style and Tests (15 points) DO NOT modify

More information

Lab 03 - x86-64: atoi

Lab 03 - x86-64: atoi CSCI0330 Intro Computer Systems Doeppner Lab 03 - x86-64: atoi Due: October 1, 2017 at 4pm 1 Introduction 1 2 Assignment 1 2.1 Algorithm 2 3 Assembling and Testing 3 3.1 A Text Editor, Makefile, and gdb

More information

CSE 230 Intermediate Programming in C and C++ Arrays and Pointers

CSE 230 Intermediate Programming in C and C++ Arrays and Pointers CSE 230 Intermediate Programming in C and C++ Arrays and Pointers Fall 2017 Stony Brook University Instructor: Shebuti Rayana http://www3.cs.stonybrook.edu/~cse230/ Definition: Arrays A collection of elements

More information

Data Structure and Algorithm Homework #3 Due: 2:20pm, Tuesday, April 9, 2013 TA === Homework submission instructions ===

Data Structure and Algorithm Homework #3 Due: 2:20pm, Tuesday, April 9, 2013 TA   === Homework submission instructions === Data Structure and Algorithm Homework #3 Due: 2:20pm, Tuesday, April 9, 2013 TA email: dsa1@csientuedutw === Homework submission instructions === For Problem 1, submit your source code, a Makefile to compile

More information

CS 215 Software Design Homework 3 Due: February 28, 11:30 PM

CS 215 Software Design Homework 3 Due: February 28, 11:30 PM CS 215 Software Design Homework 3 Due: February 28, 11:30 PM Objectives Specifying and checking class invariants Writing an abstract class Writing an immutable class Background Polynomials are a common

More information

CS 215 Fundamentals of Programming II Spring 2018 Project 5

CS 215 Fundamentals of Programming II Spring 2018 Project 5 CS 215 Fundamentals of Programming II Spring 2018 Project 5 30 points Out: March 23, 2018 Due: April 9, 2018 (Monday) As explained in Project 3, a line editor is a text editor that operates on lines of

More information

15-122: Principles of Imperative Computation, Spring Due: Thursday, March 10, 2016 by 22:00

15-122: Principles of Imperative Computation, Spring Due: Thursday, March 10, 2016 by 22:00 15-122 Programming 7 Page 1 of 8 15-122: Principles of Imperative Computation, Spring 2016 Programming homework 7: Text Buers Due: Thursday, March 10, 2016 by 22:00 For the programming portion of this

More information

How to declare an array in C?

How to declare an array in C? Introduction An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type. Representation of a large number of homogeneous values.

More information

Programming Assignments

Programming Assignments ELEC 486/586, Summer 2017 1 Programming Assignments 1 General Information 1.1 Software Requirements Detailed specifications are typically provided for the software to be developed for each assignment problem.

More information

CS3114 (Fall 2013) PROGRAMMING ASSIGNMENT #2 Due Tuesday, October 11:00 PM for 100 points Due Monday, October 11:00 PM for 10 point bonus

CS3114 (Fall 2013) PROGRAMMING ASSIGNMENT #2 Due Tuesday, October 11:00 PM for 100 points Due Monday, October 11:00 PM for 10 point bonus CS3114 (Fall 2013) PROGRAMMING ASSIGNMENT #2 Due Tuesday, October 15 @ 11:00 PM for 100 points Due Monday, October 14 @ 11:00 PM for 10 point bonus Updated: 10/10/2013 Assignment: This project continues

More information

Assertions! How to write correct programs and know it! Harlan Mills! Gunnar Gotshalks! 08-1

Assertions! How to write correct programs and know it! Harlan Mills! Gunnar Gotshalks! 08-1 Assertions How to write correct programs and know it Harlan Mills Gunnar Gotshalks 08-1 Assertions Boolean expressions or predicates that evaluate to true or false in every state In a program they express

More information

CS 314 Midterm 1 Spring 2014

CS 314 Midterm 1 Spring 2014 Points off 1 2 3A 3B 4 Total off Net Score CS 314 Midterm 1 Spring 2014 Your Name Your UTEID Instructions: 1. There are 4 questions on this test. 82 points available. Scores will be scaled to 200 points.

More information

Out: April 19, 2017 Due: April 26, 2017 (Wednesday, Reading/Study Day, no late work accepted after Friday)

Out: April 19, 2017 Due: April 26, 2017 (Wednesday, Reading/Study Day, no late work accepted after Friday) CS 215 Fundamentals of Programming II Spring 2017 Programming Project 7 30 points Out: April 19, 2017 Due: April 26, 2017 (Wednesday, Reading/Study Day, no late work accepted after Friday) This project

More information

Array Abstract Data Type

Array Abstract Data Type 1 Array Abstract Data Type Gunnar Gotshalks 2007 December Table of Contents What this module is about... 1 Introduction... 2 Data type objects... 3 Array elements... 3.1 Sub -arrays... 3.2 Array descriptor...

More information

: Principles of Imperative Computation. Fall Assignment 5: Interfaces, Backtracking Search, Hash Tables

: Principles of Imperative Computation. Fall Assignment 5: Interfaces, Backtracking Search, Hash Tables 15-122 Assignment 3 Page 1 of 12 15-122 : Principles of Imperative Computation Fall 2012 Assignment 5: Interfaces, Backtracking Search, Hash Tables (Programming Part) Due: Monday, October 29, 2012 by 23:59

More information

Project 5 Handling Bit Arrays and Pointers in C

Project 5 Handling Bit Arrays and Pointers in C CS 255 Project 5 Handling Bit Arrays and Pointers in C Due: Thursday, Apr. 30 by 8:00am. No late submissions! Assignment: This homework is adapted from the CS450 Assignment #1 that Prof. Mandelberg uses

More information

Writeup for first project of CMSC 420: Data Structures Section 0102, Summer Theme: Threaded AVL Trees

Writeup for first project of CMSC 420: Data Structures Section 0102, Summer Theme: Threaded AVL Trees Writeup for first project of CMSC 420: Data Structures Section 0102, Summer 2017 Theme: Threaded AVL Trees Handout date: 06-01 On-time deadline: 06-09, 11:59pm Late deadline (30% penalty): 06-11, 11:59pm

More information

M4.1-R3: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE

M4.1-R3: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE M4.1-R3: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be

More information

Part 1: Group Brainstorm (NO computers during this time) Part 2: Submit Individual Brainstorm (You can now use a computer)

Part 1: Group Brainstorm (NO computers during this time) Part 2: Submit Individual Brainstorm (You can now use a computer) Part 1: Group Brainstorm (NO computers during this time) Good programmers think before they begin coding. Part I of this assignment involves brainstorming with a group of peers with absolutely no computers

More information

CS 2604 Minor Project 3 Movie Recommender System Fall Braveheart Braveheart. The Patriot

CS 2604 Minor Project 3 Movie Recommender System Fall Braveheart Braveheart. The Patriot Description If you have ever visited an e-commerce website such as Amazon.com, you have probably seen a message of the form people who bought this book, also bought these books along with a list of books

More information

Graphs. The ultimate data structure. graphs 1

Graphs. The ultimate data structure. graphs 1 Graphs The ultimate data structure graphs 1 Definition of graph Non-linear data structure consisting of nodes & links between them (like trees in this sense) Unlike trees, graph nodes may be completely

More information

CSE 361S Intro to Systems Software Lab #4

CSE 361S Intro to Systems Software Lab #4 Due: Thursday, October 13, 2011 CSE 361S Intro to Systems Software Lab #4 Introduction In this lab, you will write a program in both assembly and C that sums a list of scores for a set of students, assigns

More information

Programming Assignment 2

Programming Assignment 2 CS 122 Fall, 2004 Programming Assignment 2 New Mexico Tech Department of Computer Science Programming Assignment 2 CS122 Algorithms and Data Structures Due 11:00AM, Wednesday, October 13th, 2004 Objectives:

More information

Homework Spring 2019

Homework Spring 2019 Homework 0 11-785 Spring 2019 Updated: Dec 30th 2018 On Time Submission Deadline: 20 Jan 2019, 11:59:59 EDT Late Submission Deadline: 31 Jan 2019, 11:59:59 EDT Jan 1st 2019 1 Introduction In this assignment

More information

EECE.2160: ECE Application Programming

EECE.2160: ECE Application Programming Fall 2017 Programming Assignment #10: Doubly-Linked Lists Due Monday, 12/18/17, 11:59:59 PM (Extra credit ( 5 pts on final average), no late submissions or resubmissions) 1. Introduction This assignment

More information

COSC6340: Database Systems Mini-DBMS Project evaluating SQL queries

COSC6340: Database Systems Mini-DBMS Project evaluating SQL queries COSC6340: Database Systems Mini-DBMS Project evaluating SQL queries Instructor: Carlos Ordonez 1 Introduction You will develop a small DBMS in C++ supporting SQL with nested SPJ queries. The small DBMS

More information

CIS 121 Data Structures and Algorithms with Java Spring 2018

CIS 121 Data Structures and Algorithms with Java Spring 2018 CIS 121 Data Structures and Algorithms with Java Spring 2018 Homework 6 Compression Due: Monday, March 12, 11:59pm online 2 Required Problems (45 points), Qualitative Questions (10 points), and Style and

More information

Sample test questions for the course Fundamentals of Data Structures

Sample test questions for the course Fundamentals of Data Structures 2008 January 23 Example Test Questions Page 1 of 23 Sample test questions for the course Fundamentals of Data Structures These questions or similar questions have been used in tests in previous years.

More information

CS ) PROGRAMMING ASSIGNMENT 11:00 PM 11:00 PM

CS ) PROGRAMMING ASSIGNMENT 11:00 PM 11:00 PM CS3114 (Fall 2017) PROGRAMMING ASSIGNMENT #4 Due Thursday, December 7 th @ 11:00 PM for 100 points Due Tuesday, December 5 th @ 11:00 PM for 10 point bonus Last updated: 11/13/2017 Assignment: Update:

More information

ECEN 615 Methods of Electric Power Systems Analysis Lecture 11: Sparse Systems

ECEN 615 Methods of Electric Power Systems Analysis Lecture 11: Sparse Systems ECEN 615 Methods of Electric Power Systems Analysis Lecture 11: Sparse Systems Prof. Tom Overbye Dept. of Electrical and Computer Engineering Texas A&M University overbye@tamu.edu Announcements Homework

More information

Singular Value Decomposition, and Application to Recommender Systems

Singular Value Decomposition, and Application to Recommender Systems Singular Value Decomposition, and Application to Recommender Systems CSE 6363 Machine Learning Vassilis Athitsos Computer Science and Engineering Department University of Texas at Arlington 1 Recommendation

More information

Programming Assignment I Due Thursday, October 9, 2008 at 11:59pm

Programming Assignment I Due Thursday, October 9, 2008 at 11:59pm Programming Assignment I Due Thursday, October 9, 2008 at 11:59pm 1 Overview Programming assignments I IV will direct you to design and build a compiler for Cool. Each assignment will cover one component

More information

EE 422C HW 6 Multithreaded Programming

EE 422C HW 6 Multithreaded Programming EE 422C HW 6 Multithreaded Programming 100 Points Due: Monday 4/16/18 at 11:59pm Problem A certain theater plays one show each night. The theater has multiple box office outlets to sell tickets, and the

More information

CSE 373 NOVEMBER 20 TH TOPOLOGICAL SORT

CSE 373 NOVEMBER 20 TH TOPOLOGICAL SORT CSE 373 NOVEMBER 20 TH TOPOLOGICAL SORT PROJECT 3 500 Internal Error problems Hopefully all resolved (or close to) P3P1 grades are up (but muted) Leave canvas comment Emails tomorrow End of quarter GRAPHS

More information

Sequence Abstract Data Type

Sequence Abstract Data Type 1 Sequence Abstract Data Type Table of Contents Introduction.. 1 Objects for the sequence data type.. 2 The sequence as an object. 2.1 Sequence components. 2.2 Operations on sequences 3 Enquiry operations..

More information

For example, let s say we define an array of char of size six:

For example, let s say we define an array of char of size six: Arrays in C++ An array is a consecutive group of memory locations that all have the same name and the same type. To refer to a particular location, we specify the name and then the positive index into

More information

CS2 Practical 1 CS2A 22/09/2004

CS2 Practical 1 CS2A 22/09/2004 CS2 Practical 1 Basic Java Programming The purpose of this practical is to re-enforce your Java programming abilities. The practical is based on material covered in CS1. It consists of ten simple programming

More information

Computer Programming C++ (wg) CCOs

Computer Programming C++ (wg) CCOs Computer Programming C++ (wg) CCOs I. The student will analyze the different systems, and languages of the computer. (SM 1.4, 3.1, 3.4, 3.6) II. The student will write, compile, link and run a simple C++

More information

Data Structures. Subodh Kumar. Dept of Computer Sc. & Engg. IIT Delhi. Bharti 422)

Data Structures. Subodh Kumar. Dept of Computer Sc. & Engg. IIT Delhi. Bharti 422) Data Structures Subodh Kumar (subodh@iitd.ac.in, Bharti 422) Dept of Computer Sc. & Engg. IIT Delhi Logistics! Web: www.cse.iitd.ac.in/~subodh/courses/col106! Textbook: Data Structures and Algorithms in

More information

Documentation Requirements Computer Science 2334 Spring 2016

Documentation Requirements Computer Science 2334 Spring 2016 Overview: Documentation Requirements Computer Science 2334 Spring 2016 These requirements are based on official Java coding conventions but have been adapted to be more appropriate to an academic environment.

More information

UNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING

UNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING UNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING CMPE13/L: INTRODUCTION TO PROGRAMMING IN C SPRING 2012 Lab 3 Matrix Math Introduction Reading In this lab you will write a

More information

Programming Assignment I Due Thursday, October 7, 2010 at 11:59pm

Programming Assignment I Due Thursday, October 7, 2010 at 11:59pm Programming Assignment I Due Thursday, October 7, 2010 at 11:59pm 1 Overview of the Programming Project Programming assignments I IV will direct you to design and build a compiler for Cool. Each assignment

More information

As stated earlier, the declaration

As stated earlier, the declaration The int data type As stated earlier, the declaration int a; is an instruction to the compiler to reserve a certain amount of memory to hold the values of the variable a. How much memory? Two bytes (usually,

More information

Problem Set 6 Due: 11:59 Sunday, April 29

Problem Set 6 Due: 11:59 Sunday, April 29 CS230 Data Structures Handout # 36 Prof. Lyn Turbak Monday, April 23 Wellesley College Problem Set 6 Due: 11:59 Sunday, April 29 Reading: You are expected to read and understand all of the following handouts,

More information

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University 9/5/6 CS Introduction to Computing II Wayne Snyder Department Boston University Today: Arrays (D and D) Methods Program structure Fields vs local variables Next time: Program structure continued: Classes

More information

CSCI 135 Programming Exam #1 Fundamentals of Computer Science I Fall 2014

CSCI 135 Programming Exam #1 Fundamentals of Computer Science I Fall 2014 CSCI 135 Programming Exam #1 Fundamentals of Computer Science I Fall 2014 This part of the exam is like a mini- programming assignment. You will create a program, compile it, and debug it as necessary.

More information

INFSCI 1017 Implementation of Information Systems Spring 2017

INFSCI 1017 Implementation of Information Systems Spring 2017 INFSCI 1017 Implementation of Information Systems Spring 2017 Time: Thursdays 6:00 8:30 Location: Information Science Building, Room 406 Instructor: Alexander Nolte Office Hours: Monday, 1-2PM Thursdays,

More information

Maps and Trees. CS310: Program 2. 1 Overview. 2 Requirements. Instructor Provided Files. Late Work: Up to 72 hours Penalty: 10% per 24

Maps and Trees. CS310: Program 2. 1 Overview. 2 Requirements. Instructor Provided Files. Late Work: Up to 72 hours Penalty: 10% per 24 Due Date: 2018-NOV-04 Points: 100 1 Overview CS310: Program 2 Maps and Trees Late Work: Up to 72 hours Penalty: 10% per 24 Maps associates unique keys with their corresponding values, and they provide

More information

CSE 143: Computer Programming II Spring 2015 HW7: 20 Questions (due Thursday, May 28, :30pm)

CSE 143: Computer Programming II Spring 2015 HW7: 20 Questions (due Thursday, May 28, :30pm) CSE 143: Computer Programming II Spring 2015 HW7: 20 Questions (due Thursday, May 28, 2015 11:30pm) This program focuses on binary trees and recursion. Turn in the following files using the link on the

More information

Using C++, design an Abstract Data Type class named MyGrades. The class must have the following private members :

Using C++, design an Abstract Data Type class named MyGrades. The class must have the following private members : Programming Assignment - 3 Due Date : Section 2 - Monday October 1 st, 2018 - No Later than 12:45 pm Using C++, design an Abstract Data Type class named MyGrades. The class must have the following private

More information

This is a combination of a programming assignment and ungraded exercises

This is a combination of a programming assignment and ungraded exercises CSE 11 Winter 2017 Programming Assignment #1 Covers Chapters: ZY 1-3 START EARLY! 100 Pts Due: 25 JAN 2017 at 11:59pm (2359) This is a combination of a programming assignment and ungraded exercises Exercises

More information

a f b e c d Figure 1 Figure 2 Figure 3

a f b e c d Figure 1 Figure 2 Figure 3 CS2604 Fall 2001 PROGRAMMING ASSIGNMENT #4: Maze Generator Due Wednesday, December 5 @ 11:00 PM for 125 points Early bonus date: Tuesday, December 4 @ 11:00 PM for 13 point bonus Late date: Thursday, December

More information

EECE.2160: ECE Application Programming Spring 2017

EECE.2160: ECE Application Programming Spring 2017 Course Meetings Section 201: MWF 8-8:50, Ball 314 Section 202: MWF 12-12:50, Kitson 305 Course Website Main page: http://mjgeiger.github.io/eece2160/sp17/ Schedule: http://mjgeiger.github.io/eece2160/sp17/schedule.htm

More information

a b c d a b c d e 5 e 7

a b c d a b c d e 5 e 7 COMPSCI 230 Homework 9 Due on April 5, 2016 Work on this assignment either alone or in pairs. You may work with different partners on different assignments, but you can only have up to one partner for

More information

Prelim 1. CS2110, October 2, 2014, 5:30 PM Extra Total Question TrueFalse Multiple Object Oriented

Prelim 1. CS2110, October 2, 2014, 5:30 PM Extra Total Question TrueFalse Multiple Object Oriented Prelim 1 CS2110, October 2, 2014, 5:30 PM 1 2 3 4 5 Extra Total Question TrueFalse Multiple Object Oriented Recursion Lists Extra Credit Max 20 20 30 15 15 5 100 Score Grader The exam is closed book and

More information

King Abdulaziz University Faculty of Computing and Information Technology Computer Science Department

King Abdulaziz University Faculty of Computing and Information Technology Computer Science Department King Abdulaziz University Faculty of Computing and Information Technology Computer Science Department CPCS204, 3 rd Term 2014 (Summer) Program1: FCIT Samba Bank Assigned: Wednesday June 11 th, 2014 Due:

More information

BIL220, Spring 2012 Data Lab: Manipulating Bits Assigned: Feb. 23, Due: Wed., Mar. 8, 23:59PM

BIL220, Spring 2012 Data Lab: Manipulating Bits Assigned: Feb. 23, Due: Wed., Mar. 8, 23:59PM BIL220, Spring 2012 Data Lab: Manipulating Bits Assigned: Feb. 23, Due: Wed., Mar. 8, 23:59PM Ali Caglayan (alicaglayan@cs.hacettepe.edu.tr) and Oguzhan Guclu (oguzhanguclu@cs.hacettepe.edu.tr) are the

More information

Compuer Science 62 Assignment 10

Compuer Science 62 Assignment 10 Compuer Science 62 Assignment 10 Due 11:59pm on Thursday, April 22, 2010 This assignment is the C++ version of the animal game. The program will have three parts, which have been carefully specified. You

More information

ENCM 369 Winter 2017 Lab 3 for the Week of January 30

ENCM 369 Winter 2017 Lab 3 for the Week of January 30 page 1 of 11 ENCM 369 Winter 2017 Lab 3 for the Week of January 30 Steve Norman Department of Electrical & Computer Engineering University of Calgary January 2017 Lab instructions and other documents for

More information

Programming Assignment 3

Programming Assignment 3 UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2017 Programming Assignment 3 Introduction For this programming assignment you are to write a C, C++, Java, or Python

More information

2. You are required to enter a password of up to 100 characters. The characters must be lower ASCII, printing characters.

2. You are required to enter a password of up to 100 characters. The characters must be lower ASCII, printing characters. BLACK BOX SOFTWARE TESTING SPRING 2005 DOMAIN TESTING LAB PROJECT -- GRADING NOTES For all of the cases below, do the traditional equivalence class and boundary analysis. Draw one table and use a new line

More information

Circular Linked List Assignment

Circular Linked List Assignment Page 1 of 6 Circular Linked List Assignment Overview A circular linked list is essentially a singly linked list in which the next pointer of the tail node is set to point to the head node of the linked

More information

Graduate-Credit Programming Project

Graduate-Credit Programming Project Graduate-Credit Programming Project Due by 11:59 p.m. on December 14 Overview For this project, you will: develop the data structures associated with Huffman encoding use these data structures and the

More information

CMPSCI 187 / Spring 2015 Sorting Kata

CMPSCI 187 / Spring 2015 Sorting Kata Due on Thursday, April 30, 8:30 a.m Marc Liberatore and John Ridgway Morrill I N375 Section 01 @ 10:00 Section 02 @ 08:30 1 Contents Overview 3 Learning Goals.................................................

More information

Set4. 8 February 2019 OSU CSE 1

Set4. 8 February 2019 OSU CSE 1 Set4 8 February 2019 OSU CSE 1 Documenting Set4 (and Map4) By now you understand hashing and its benefits. But the algorithms we are using are not trivial, and make a lot of assumptions about the representation.

More information

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall Programming Assignment 1 (updated 9/16/2017)

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall Programming Assignment 1 (updated 9/16/2017) UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall 2017 Programming Assignment 1 (updated 9/16/2017) Introduction The purpose of this programming assignment is to give you

More information

Hands on Assignment 1

Hands on Assignment 1 Hands on Assignment 1 CSci 2021-10, Fall 2018. Released Sept 10, 2018. Due Sept 24, 2018 at 11:55 PM Introduction Your task for this assignment is to build a command-line spell-checking program. You may

More information

Assignments 3 & 4. COMP248/Winter Assignment 3 & 4 Page 1 of 7

Assignments 3 & 4. COMP248/Winter Assignment 3 & 4 Page 1 of 7 Concordia University Comp 248 Winter 2016 Introduction to Programming Combined Assignments 3 & 4 - Due by 11:59 PM Sunday March 20, 2016 Assignments 3 & 4 Purpose: The purpose of these assignments is to

More information

Our second exam is Thursday, November 10. Note that it will not be possible to get all the homework submissions graded before the exam.

Our second exam is Thursday, November 10. Note that it will not be possible to get all the homework submissions graded before the exam. Com S 227 Fall 2016 Assignment 3 300 points Due Date: Wednesday, November 2, 11:59 pm (midnight) Late deadline (25% penalty): Thursday, November 2, 11:59 pm General information This assignment is to be

More information

(edit 3/7: fixed a typo in project specification 2-f) user_id that user enters should be in the range [0,n-1] (i.e., from 0 to n-1, inclusive))

(edit 3/7: fixed a typo in project specification 2-f) user_id that user enters should be in the range [0,n-1] (i.e., from 0 to n-1, inclusive)) CSE 231 Spring 2017 Programming Project 7 (edit 3/1: fixed a typo in num_in_common_between_lists(user1_friend_lst, user2_friend_lst as described in c) calc_similarity_scores(network)) (edit 3/7: fixed

More information

HW4: Breadth-First Search

HW4: Breadth-First Search HW4: Breadth-First Search Course: CMSC751/ENEE759K, Spring 2010 Title: Breadth-First Search Date Assigned: March 25th, 2010 Date Due: April 9th, 2010 11:59pm Contact: George Caragea - george@cs.umd.edu

More information

EECE.2160: ECE Application Programming

EECE.2160: ECE Application Programming Summer 2017 Programming Assignment #9: Doubly-Linked Lists Due Monday, 6/26/17, 11:59:59 PM (+15% if submitted by 6/23, +10% if submitted 6/24-6/25, +5% if submitted 6/26) 1. Introduction This assignment

More information

Data Management, Spring 2015: Project #1

Data Management, Spring 2015: Project #1 Advice The assignment description is long, and it is important that you follow the instructions carefully. Be sure to read the entire description before you start implementing. Note that we will be testing

More information

Project #1 Exceptions and Simple System Calls

Project #1 Exceptions and Simple System Calls Project #1 Exceptions and Simple System Calls Introduction to Operating Systems Assigned: January 21, 2004 CSE421 Due: February 17, 2004 11:59:59 PM The first project is designed to further your understanding

More information

CS 270 Algorithms. Oliver Kullmann. Generalising arrays. Direct addressing. Hashing in general. Hashing through chaining. Reading from CLRS for week 7

CS 270 Algorithms. Oliver Kullmann. Generalising arrays. Direct addressing. Hashing in general. Hashing through chaining. Reading from CLRS for week 7 Week 9 General remarks tables 1 2 3 We continue data structures by discussing hash tables. Reading from CLRS for week 7 1 Chapter 11, Sections 11.1, 11.2, 11.3. 4 5 6 Recall: Dictionaries Applications

More information