High-Level Design Specification for the Callimuse System

Size: px
Start display at page:

Download "High-Level Design Specification for the Callimuse System"

Transcription

1 High-Level Design Specification for the Callimuse System CSC354 Introduction to Software Engineering, Dr. Dale Parson, Fall This assignment is due by end of October 24, Introduction by the Instructor (Customer) There will be an in-class review within teams on Tuesday October 22 like before. Attendance is mandatory and counts for 15% of the project grade. Bring your draft document for peer review that day. Here are instructions for turning it in. cd $HOME cp ~parson/softeng/design13fall.zip SoftEng cd./softeng unzip design13fall.zip cd design13fall The Word file DesignSpec354Fall2013.doc is in there (this file). Copy that file onto your local machine and edit it. I MUST be able to open it with MS Word and view all text and illustrations for evaluation. I plan to integrate the high-level design specs into one Word document. If you edit it in Open Office or some other program, open it in Word on a KU computer before turning it in, to make sure I can read it. I will deduct 15% from any document turned in that I cannot open with Word. When you are done editing that file, copy it back into that same directory, cd into that directory and type gmake turnitin. That will send it to my account on acad. I have written a minimal system that actually runs and displays one test stroke. It mostly illustrates the skeletal structure of the Graphics Server. The MIDI Generator is very similar in overall multithreaded-server structure to the Graphics Server. The OSC/UDP application protocol includes lossless compression to cut down on the number of UDP datagrams per stroke, but it is missing fields and requires segmentation -> reassembly enhancements in order to work with normal, full-size strokes. There is generated Javadoc documentation for my working skeletal example here. The com.illposed.osc pages give the JavaOsc documentation, and the kucmuse and kutil pages give the Callimuse and related utility documentation. A requirement on your implementation code is the creation of Javadoc comments for all public and protected methods and fields that generates Javadoc HTML without warnings.

2 You can inspect my code on acad/bill at ~parson/softeng/parsonswe/trunk in the kucmuse and kutil subdirectories. You will be building atop that code base after approval of your design specifications. I have requested that KU IT add access for you to the Subversion code repository management database that we will use to manage code, and to the Bugzilla bug reporting system. We should have that access in time for the implementation process. We have gone over UML modeling tools and approaches in class. Use the textbook author s sketch approach, that I call a map of the design, in this assignment. Every student must capture at least one UML design diagram and turn it in with the descriptive text in this assignment. Turn in your assignments individually and I will integrate them as I grade them. Make sure that your subsections complement each other, and that they do not duplicate each other. There are more detailed instructions for each section below. Follow my writing guidelines. We already have a top-level deployment diagram on page 1 of the Functional Specification. Do not re-capture that diagram. The current, high-level design spec should show the insides of those boxes in the Functional Spec. See for the requirements specification. The present, functional specification is not comprehensive. It builds on, constrains, and resolves issues left open by the requirements spec. Partition each of the sections below into subsections, one per team member. 2. Vendor System Demo Design (COTS Team) By the end of the semester I would like a demonstration of the Nightshade system for scripting planetarium shows. Nightshade is available here. I am specifically interested in Nightshade NG PR2 Released including scripting. You will not be designing the Nightshade system. You will be designing a demo. Learn as much as possible about the Nightshade system and specify what you plan to demonstrate for this assignment. Include design illustrations for your plan. 3. Mobile User Interface Design (Mobile Client Team) My only small prototype code for this team is a demonstration of how to send an OSC/UDP broadcast message via our initial (to-be-extended) Callimuse protocol. See the main method test driver in the bottom of file kucmuse/callimuseframe.java. My Functional Spec gives the

3 anticipated fields for the protocol, which is outline in // implementation comments in method OSCInterpreter.run in file CallimuseFrame.java. See additional comments in the next section. 209 // HERE IS THE OSC/UDP DATAGRAM PROTOCOL THAT I AM USING. 210 // STUDENTS MUST FULLY DEFINED AND EXTEND IT: 211 // [0] String Sender's IP address for identification 212 // [1] Integer Sender's port identifier 213 // [2] Integer sequence number for fully assembled message 214 // [3] Integer subsequence number to steer reassembly 215 // [4] Integer total number of subsequences 216 // [5] Object [] of radii Float objects 217 // [6] Object [] of theta Float objects Use whatever UML diagramming techniques are useful. Use class diagrams. Use at least one of sequence diagrams, activity diagrams or state diagrams to show the flow of control or the changes of states or both. Class diagrams show structure. These other diagram types show highlevel behavior. Model the essential aspects of our app s interaction with Android libraries. You can show whatever Android classes are appropriate as simple class boxes; you do not need to show internal structure of Android libraries. 4. OSC/UDP Application Protocol and support (Networking Team) Your jobs are to design the full application protocol, to document some existing classes from my initial prototype, to show how you will extend that prototype to include segmentation and reassembly in order to accommodate the 1500-byte limit on a UDP datagram. Your classes from my Javadoc and code base include kutil.runnableosclistener, kutil.compressintegerfloatarrays and kucuse.callimuseoscserver. Write class diagrams that show their relationships. You can model any class or interface in JavaOsc (com.illposed.osc) as a simple box with no internal structure. For your classes, however, show all helper classes including private nested classes for the existing software. The previous section of this spec shows the draft, 7-field OSC application protocol of the initial code. You will need to extend it to support at least the fields in the Functional Spec, including array fields radius[] between 0.0 (center) and 1.0 (edge of dome), angle theta[] in the range [0.0, 2pi) radians, and virtual pressure[] for each centroid pixel. The scalar fields of the Functional Spec include color, brush stroke, momentum and spin. You do not need to use UML to illustrate the application protocols. Use Word tables like this.

4 Table I: Unsegmented OSC/UDP format that uses address pattern "/callimuse/stroke" 1 Sender IP [0] String Sender port [1] Integer 4000 Sender sequence [2] Integer 0 Sender subsequence Number of subsequences [3] Integer 0 [4] Integer 6 Radii [5] Object [] of Float Theta [6] Object [] of Float Here is another for the actual, compressed format that my initial code uses. It does not yet do segmentation and reassembly. Table II: Compressed OSC/UDP format that uses address pattern "/callimuse/stroke/reassemble" Sender IP [0] String Sender port [1] Integer 4000 Sender sequence [2] Integer 0 Sender subsequence Number of subsequences [3] Integer 0 [4] Integer 6 Radii [5] Integer [] of compressed Float Theta [6] Integer [] of compressed Float 1 See the initial stroke pattarns in the Javadoc for the strokepattern constants in class CallimuseFrame.

5 You need to extend these protocols in collaboration with the Mobile-client-UI, Graphics Server and MIDI Translator teams. You need to synchronize with the latter team and the MIDI Generator team to define their protocols. Your main implementation job is to design and later to implement segmentation and reassembly methods. Segmentation turns one OSC/UDP unsegmented message into a series of segmented messages that divide compressed arrays evenly across some number of OSC/UDP messages with no more than 1500 bytes. Allow no more than 250 total Integer [] elements per segmented message. Reassembly of unsegmented messages is probably the hardest part. We will go over a draft design that should be feasible in class. For now you need to document the design of the planned segmentation and reassembly methods in a class in package kutil. Use class diagrams. Use at least one of sequence diagrams, activity diagrams or state diagrams to show the flow of control or the changes of states or both. Class diagrams show structure. These other diagram types show high-level behavior. 4. Graphics Server Design Your interfaces and classes from my Javadoc and code base include kutil.dependentframe, kutil.startframe, kutil.polarcartesiandevice, kucmuse.callimuseframe and kucmuse.ideogram. You can model any class or interface outside of your assignment as a simple box with no internal structure. For your classes, however, show all helper classes including private nested classes for the existing software. Your main jobs are to add color, stroke styles, motion, generation of outbound OSC/UDP broadcast messages to be used by the MIDI generator, and ideogram recognition. I will help with ideogram recognition as needed. Do not delay graphical display waiting for ideogram recognition. We can run that in another thread. We have a 16-threaded Linux server with a high-powered GPU card called dumbledore in the Old Main lab. We can use that for testing, in addition to laptop(s) that members of the graphics team provide. I may have a laptop for you to use. The outgoing OSC/UDP protocol outline in the Functional Spec mentions OSC fields location, momentum, spin, disappearing / evaporating, color, brush stroke styling, and ideograms data coming from the graphics engine. Work with the MIDI team and the networking team You will probably need to incorporate a javax.swing.timer into your design to drive evolution of the graphics on the state of the dome in between arrival of OSC/UDP messages from the mobile UIs. Use class diagrams. Use at least one of sequence diagrams, activity diagrams or state diagrams to show the flow of control or the changes of states or both, for example the advance in state as driven by the timer, and the generation of outgoing OSC/UDP. Class diagrams show structure. These other diagram types show high-level behavior.

6 5. MIDI Generator Design I do not have starting code for the MIDI generator. My advice is to copy class kucmuse.callimuseframe into a new class kucmuse.midigenerator and use that as an example of how to set up your OSC listener thread. The OSC processing part of your class should map directly. You should implement a minimal GUI that has at least one graphical control, which is a combo box to select the MIDI device for output. Here are the top two graphical controls from the Scrabble-to-MIDI control GUI. Your code should run only in Synthesizer mode. Sequencer mode that creates and records and runs static MIDI sequences is not appropriate for this application, so you don t need that first combo box. If you use a foot controller to control some aspects of MIDI translation, then you will need a second combo box to select the input MIDI device. In directory parson/javalang/gamestomidi2013rev1/scrabble are the following files. ScrabbleToMultiMidiConfigUI.java is the MIDI generator UI class. It is too complicated to use as an example of the overall design, but it may supply some useful example code snippets. File ScrabbleToMultiMidi.java is the MIDI Translator for Scrabble. Again it is too complicated, but it may provide useful code snippets. The Javadoc for Scrabble-to-MIDI at the following URL is too big for use as a design example, but if you go inspecting the above two classes, some of that Javadoc may be useful. Some of the scheduling logic in helper class SynthRunnable inside that file may be useful; I will summarize state machine issues below. Basically, the MIDI Translator is a collection of state machines. A. There is one state machine that takes incoming OSC/UDP messages, maps them to musical phrases, and puts them into some kind of phrase queue. B. Another state machine takes the MIDI phrases out of the queue, according to time, and delivers them to a MIDI port. Note that you write notes to a javax.sound.midi. javax.sound.midi.receiver. This state machine should also write copies of repeating phrases (if any) back into the phrase queue. C. If you decide to support effects modulation from a foot controller or other MIDI controller device, javax.sound.midi.transmitter actually receives the incoming messages,

7 which you read via a custom application subclass derived from interface Receiver. The Transmitter sends MIDI messages to your Receiver. I recommend skipping (C) until you get (A) and (B) working. You can run (A) on the OSC/UDP acceptmessage thread (unless the mapping is so time consuming that your code starts dropping datagrams, in which case I will help you set up another thread to run the OSC-to-MIDI mapper), and you can run (B) in the GUI thread under the control of a javax.swing.timer object. I have never timed the output this way, but it seems like a simple enough approach. You could use a java.util.concurrent.priorityblockingqueue with note time as the priority function. Notes or phrases with earlier times come out first. Any thread enqueuing or dequeuing a note or phrase could peek() for the next time and then set a Swing Timer to go off at the time of the next note or phrase, and then write MIDI output. Probably the simplest way to integrate (C) into this design is to write a MIDI-to-OSC message translator that runs on its own thread and sends OSCMessages to the acceptmessage method already running in (A). That way all incoming rata arrives as OSC messages. I can help to write this MIDI-control-to-OSC translator. Do not worry about implementing sound spatialization too much just yet. However, we are only writing a spec at this time, not code, so you should address spatial sound at a very high level in this spec. In addition to a class diagram, each of the above state machines needs a simple, state machine diagram. A simple dataflow diagram can show the flow of data though your nodes in the deployment diagram and within Ableton Live. An outline of how you plan to route MIDI channels through Ableton Live would also be useful. That would be a dataflow diagram. Feel free to show an illustration of the Live work surface if useful.

High-Level Design Specification for the Callimuse System

High-Level Design Specification for the Callimuse System High-Level Design Specification for the Callimuse System CSC354 Introduction to Software Engineering, Dr. Dale Parson, Fall 2013. This spec is the October 27 consolidated version. 1. Introduction by the

More information

CSC 220 Object Oriented Multimedia Programming, Fall 2018

CSC 220 Object Oriented Multimedia Programming, Fall 2018 CSC 220 Object Oriented Multimedia Programming, Fall 2018 Dr. Dale E. Parson, Assignment 3, text menu on a remote-control Android, mostly array handling. This assignment is due via D2L Assignment Assignment

More information

Here are the steps to get the files for this project after logging in on acad/bill.

Here are the steps to get the files for this project after logging in on acad/bill. CSC 243, Java Programming, Spring 2013, Dr. Dale Parson Assignment 5, handling events in a working GUI ASSIGNMENT due by 11:59 PM on Thursday May 9 via gmake turnitin Here are the steps to get the files

More information

Textbook Charles Petzold, Programming Windows, 5th edition, Microsoft Press. References - other textbooks or materials none

Textbook Charles Petzold, Programming Windows, 5th edition, Microsoft Press. References - other textbooks or materials none CS351 Systems Programming Last Updated - 03/01/02 Course Manager Dr. Phil Dickens, Assistant Professor 3 credit hours; required for CS & CPE; 100 min. lecture & 100 min. lab each week Current Catalog Description

More information

Here are the steps to get the files for this project after logging in on acad/bill.

Here are the steps to get the files for this project after logging in on acad/bill. CSC 243, Java Programming, Spring 2013, Dr. Dale Parson Assignment 3, cloning & serializing game state for save & restore commands ASSIGNMENT due by 11:59 PM on Thursday April 11 via gmake turnitin Here

More information

CSC 543 Multiprocessing & Concurrent Programming, Fall 2016

CSC 543 Multiprocessing & Concurrent Programming, Fall 2016 CSC 543 Multiprocessing & Concurrent Programming, Fall 2016 Dr. Dale E. Parson, Midterm Exam Project, Assorted Thread Synchronization Problems This assignment is due by 11:59 PM on Wednesday November 2

More information

Here are the steps to get the files for this project after logging in on acad/bill.

Here are the steps to get the files for this project after logging in on acad/bill. CSC 243, Java Programming, Spring 2014, Dr. Dale Parson Assignment 4, implementing undo, redo & initial GUI layout ASSIGNMENT due by 11:59 PM on Saturday April 19 via gmake turnitin ASSIGNMENT 5 (see page

More information

Assignment 2, perquack2 class hierarchy in Java, due 11:59 PM, Sunday March 16, 2014 Login into your account on acad/bill and do the following steps:

Assignment 2, perquack2 class hierarchy in Java, due 11:59 PM, Sunday March 16, 2014 Login into your account on acad/bill and do the following steps: CSC 243 Java Programming, Spring 2014, Dr. Dale E. Parson Assignment 2, perquack2 class hierarchy in Java, due 11:59 PM, Sunday March 16, 2014 Login into your account on acad/bill and do the following

More information

CSC 510 Advanced Operating Systems, Fall 2017

CSC 510 Advanced Operating Systems, Fall 2017 CSC 510 Advanced Operating Systems, Fall 2017 Dr. Dale E. Parson, Assignment 4, Benchmarking and analyzing a modified Assignment 1 running on System VMs on Type 1 and Type 2 hypervisors. This assignment

More information

OSC. Simplification. Asset Store Description 2 Underlying Concepts 3 Getting started 4

OSC. Simplification. Asset Store Description 2 Underlying Concepts 3 Getting started 4 OSC Simplification Manual Version 1.2 Asset Store Description 2 Underlying Concepts 3 Getting started 4 How to receive without scripting 4 How to send almost without scripting 5 How to receive using scripting

More information

CSC 552 UNIX System Programming, Fall 2015

CSC 552 UNIX System Programming, Fall 2015 CSC 552 UNIX System Programming, Fall 2015 Dr. Dale E. Parson, Assignment 4, multi-threading a socket-based server loop & helper functions. This assignment is due via make turnitin from the wordcathreadc4/

More information

AMath 483/583 Lecture 2

AMath 483/583 Lecture 2 AMath 483/583 Lecture 2 Outline: Binary storage, floating point numbers Version control main ideas Client-server version control, e.g., CVS, Subversion Distributed version control, e.g., git, Mercurial

More information

AMath 483/583 Lecture 2. Notes: Notes: Homework #1. Class Virtual Machine. Notes: Outline:

AMath 483/583 Lecture 2. Notes: Notes: Homework #1. Class Virtual Machine. Notes: Outline: AMath 483/583 Lecture 2 Outline: Binary storage, floating point numbers Version control main ideas Client-server version control, e.g., CVS, Subversion Distributed version control, e.g., git, Mercurial

More information

CSC 343 Operating Systems, Fall 2015

CSC 343 Operating Systems, Fall 2015 CSC 343 Operating Systems, Fall 2015 Dr. Dale E. Parson, Assignment 4, analyzing swapping algorithm variations. This assignment is due via gmake turnitin from the swapping2015 directory by 11:59 PM on

More information

CSE398: Network Systems Design

CSE398: Network Systems Design CSE398: Network Systems Design Instructor: Dr. Liang Cheng Department of Computer Science and Engineering P.C. Rossin College of Engineering & Applied Science Lehigh University February 23, 2005 Outline

More information

Big Java Late Objects

Big Java Late Objects Big Java Late Objects Horstmann, Cay S. ISBN-13: 9781118087886 Table of Contents 1. Introduction 1.1 Computer Programs 1.2 The Anatomy of a Computer 1.3 The Java Programming Language 1.4 Becoming Familiar

More information

Cambrian College Online Course Review Checklist

Cambrian College Online Course Review Checklist Course Code: Instructor: Reviewed By: Cambrian College Online Course Review Checklist Course Name: Date Reviewed: Instructions: The criteria in the Checklist reflect design principles required for all

More information

CMSC 417 Project Implementation of ATM Network Layer and Reliable ATM Adaptation Layer

CMSC 417 Project Implementation of ATM Network Layer and Reliable ATM Adaptation Layer CMSC 417 Project Implementation of ATM Network Layer and Reliable ATM Adaptation Layer 1. Introduction In this project you are required to implement an Asynchronous Transfer Mode (ATM) network layer and

More information

OSC. Notes on OSC. Figure 1 Some examples of OSC devices.

OSC. Notes on OSC. Figure 1 Some examples of OSC devices. OSC Overview Open Sound Control is a protocol for sending control messages across networks. It was developed by Adrian Freed and Matt Wright (working with David Wessel) at CNMAT in Berkeley in 1996 as

More information

Announcements. 1. Forms to return today after class:

Announcements. 1. Forms to return today after class: Announcements Handouts (3) to pick up 1. Forms to return today after class: Pretest (take during class later) Laptop information form (fill out during class later) Academic honesty form (must sign) 2.

More information

CSC 120 Introduction to Creative Graphical Coding, Fall 2015

CSC 120 Introduction to Creative Graphical Coding, Fall 2015 CSC 120 Introduction to Creative Graphical Coding, Fall 2015 Dr. Dale E. Parson, Assignment 1, Implementing and testing an automated avatar in Processing. This assignment is due via D2L Dropbox Assignment

More information

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018 San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018 Course and Contact Information Instructor: Suneuy Kim Office

More information

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017 San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017 Course and Contact Information Instructor: Dr. Kim Office Location:

More information

Prerequisit. cies. Consortium. on Creating. interviews. In research, the. Standards. A. Software Program(s) 3. Web

Prerequisit. cies. Consortium. on Creating. interviews. In research, the. Standards. A. Software Program(s) 3. Web Web Design Tools (ITSE 1301) Credit: 3 semester credit hours (2 hours lecture, 2 hours lab) Prerequisit te/co-requisite: Course Description Designing and publishing Web documents according to World Wide

More information

Implement an ADT while using Subversion

Implement an ADT while using Subversion 1 Objectives Learn to use Subversion Implement an ADT while using Subversion In this lab, you learn about the version control tool called Subversion and you will implement a Java class given an interface.

More information

Introduction to Computation and Problem Solving

Introduction to Computation and Problem Solving Class 1: Introduction Introduction to Computation and Problem Solving Prof. Steven R. Lerman and Dr. V. Judson Harward Handouts for Today Course syllabus Academic Honesty Guidelines Laptop request form

More information

CSC 343 Operating Systems, Fall 2015

CSC 343 Operating Systems, Fall 2015 CSC 343 Operating Systems, Fall 2015 Dr. Dale E. Parson, Assignment 2, modeling an atomic spin lock, a mutex, and a condition variable. This assignment is due via gmake turnitin from the criticalsection2015

More information

Software Architecture

Software Architecture Software Architecture Architectural Design and Patterns. Standard Architectures. Dr. Philipp Leitner @xleitix University of Zurich, Switzerland software evolution & architecture lab Architecting, the planning

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

COS 333: Advanced Programming Techniques. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University

COS 333: Advanced Programming Techniques. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University COS 333: Advanced Programming Techniques Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University 1 Agenda Introductions Course Overview Resources Topics Assignments Project (briefly) Schedule (briefly)

More information

Notes Discussed project needs and possible tool use Everything needs to be documented very well for future use Stretch goal discussed

Notes Discussed project needs and possible tool use Everything needs to be documented very well for future use Stretch goal discussed Team meeting 1 - Creation of Team VERITAS Meeting time - 3:30-4:30 9/5/2017 Discussed project Created team contract, can be found with each member and on team wiki Decided on specific jobs and which person

More information

CSC 310 Programming Languages, Spring 2014, Dr. Dale E. Parson

CSC 310 Programming Languages, Spring 2014, Dr. Dale E. Parson CSC 310 Programming Languages, Spring 2014, Dr. Dale E. Parson Assignment 3, Perquacky in Python, due 11:59 PM, Saturday April 12, 2014 I will turn the solution back on Monday April 14, after which I will

More information

Digital Media II. EXAM INFORMATION Items. Points. Prerequisites. Grade Level. Course Length. Career Cluster. Performance Standards

Digital Media II. EXAM INFORMATION Items. Points. Prerequisites. Grade Level. Course Length. Career Cluster. Performance Standards EXAM INFORMATION Items 42 Points 57 Prerequisites DIGITAL MEDIA I Grade Level 10-12 Course Length ONE YEAR Career Cluster ARTS, A/V TECHNOLOGY, AND COMMUNICATION INFORMATION TECHNOLOGY Performance Standards

More information

Design Patterns. CSC207 Fall 2017

Design Patterns. CSC207 Fall 2017 Design Patterns CSC207 Fall 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe the

More information

COURSE SYLLABUS FOR. COMP-297 Web Page Design: Adobe Dreamweaver

COURSE SYLLABUS FOR. COMP-297 Web Page Design: Adobe Dreamweaver Coffeyville Community College COURSE SYLLABUS FOR COMP-297 Web Page Design: Adobe Dreamweaver Mrs. Darla Thornburg Spring 2018 Page 1 of 8 COURSE NUMBER: COURSE TITLE: CREDIT HOURS: INSTRUCTOR: OFFICE

More information

Configuring Windows 8 Course 20687A - Five days - Instructor-led - Hands-on

Configuring Windows 8 Course 20687A - Five days - Instructor-led - Hands-on Configuring Windows 8 Course 20687A - Five days - Instructor-led - Hands-on Introduction This course provides students hands-on experience with Windows 8. It provides guidance on installing, upgrading,

More information

Fall Principles of Knowledge Discovery in Databases. University of Alberta

Fall Principles of Knowledge Discovery in Databases. University of Alberta Principles of Knowledge Discovery in Databases Fall 1999 Dr. Osmar R. Zaïane 2 1 Class and Office Hours Class: Mondays, Wednesdays and Fridays from 10:00 to 10:50 Office Hours: Tuesdays from 11:00 to 11:55

More information

ESET 349 Microcontroller Architecture, Fall 2018

ESET 349 Microcontroller Architecture, Fall 2018 ESET 349 Microcontroller Architecture, Fall 2018 Syllabus Contact Information: Professor: Dr. Byul Hur Office: 008 Fermier Telephone: (979) 845-5195 FAX: E-mail: byulmail@tamu.edu Web: rftestgroup.tamu.edu

More information

COURSE SYLLABUS. Complete JAVA. Industrial Training (3 MONTHS) PH : , Vazhoor Road Changanacherry-01.

COURSE SYLLABUS. Complete JAVA. Industrial Training (3 MONTHS) PH : , Vazhoor Road Changanacherry-01. COURSE SYLLABUS Complete JAVA Industrial Training (3 MONTHS) PH : 0481 2411122, 09495112288 E-Mail : info@faithinfosys.com www.faithinfosys.com Marette Tower Near No. 1 Pvt. Bus Stand Vazhoor Road Changanacherry-01

More information

Assignment 1: Plz Tell Me My Password

Assignment 1: Plz Tell Me My Password Assignment 1: Plz Tell Me My Password Part I Due: 11:59 pm, September 23, 2013 Part II Due : 11:59 pm, September 27, 2013 1 Introduction The objective of this assignment is to gain experience in: socket

More information

ECE 4110 Internetwork Programming Lab 3: UDP Traffic Generator. Lab Goals. Section I: Coding udp_gen & udp_sink

ECE 4110 Internetwork Programming Lab 3: UDP Traffic Generator. Lab Goals. Section I: Coding udp_gen & udp_sink ECE 4110 Internetwork Programming Lab 3: UDP Traffic Generator Group Number: Member Names: Date Issued: Tuesday February 7, 2012 Date Due: Friday February 17, 2012 Last Edited: 2/6/2012 Lab Goals Finish

More information

Planning and Administering SharePoint 2016

Planning and Administering SharePoint 2016 Planning and Administering SharePoint 2016 Course 20339A 5 Days Instructor-led, Hands on Course Information This five-day course will combine the Planning and Administering SharePoint 2016 class with the

More information

3. When you process a largest recent earthquake query, you should print out:

3. When you process a largest recent earthquake query, you should print out: CS3114 (Fall 2013) PROGRAMMING ASSIGNMENT #1 Due Wednesday, September 18 @ 11:00 PM for 100 points Due Tuesday, September 17 @ 11:00 PM for 10 point bonus Updated: 9/11/2013 Assignment: This is the first

More information

Web Design Capstone :: Syllabus

Web Design Capstone :: Syllabus Web Design Capstone :: Syllabus Course: MMC 6936 Semester: Summer 2014 Meeting Times: Saturdays, 10 a.m.-1 p.m. EST Professor: Dr. Amy Zerba Contact: azerba@jou.ufl.edu and 646-404-7867 Office Hours: Available

More information

Handout 4: Version Control Reference

Handout 4: Version Control Reference CSCI 2600 Principles of Software Handout 4: Version Control Reference Introduction SVN (Subversion) provides the following functionality: It allows multiple users to edit the same files independently,

More information

Architectural Blueprint

Architectural Blueprint IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Architectural Blueprint

More information

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968) San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968) Course and Contact Information Instructor: Office Location: Vidya Rangasayee MH229

More information

Lab - TCP Traffic Generator

Lab - TCP Traffic Generator ECE4110 Fall Semester, 2010 Lab - TCP Traffic Generator Assigned: Sep 10, 2010 Due: Sep 20, 2010 Group Number: Member Names: Lab Goals 1. Finish a TCP sockets programs to transmit and receive TCP data.

More information

Undergraduate Course Syllabus

Undergraduate Course Syllabus College of Software Engineering Undergraduate Course Syllabus Course ID 311016040 Course Name Introduction to Computer System Course Attribute Compulsory Selective Course Language English Chinese Credit

More information

Code Check TM Software Requirements Specification

Code Check TM Software Requirements Specification Code Check TM Software Requirements Specification Author: Richard McKenna Debugging Enterprises TM Based on IEEE Std 830 TM -1998 (R2009) document format Copyright 2017 Debugging Enterprises No part of

More information

New York University Computer Science Department Courant Institute of Mathematical Sciences

New York University Computer Science Department Courant Institute of Mathematical Sciences New York University Computer Science Department Courant Institute of Mathematical Sciences Course Title: Data Communications & Networks Course Number: g22.2662-001 Instructor: Jean-Claude Franchitti Session:

More information

Syllabus CSCI 405 Operating Systems Fall 2018

Syllabus CSCI 405 Operating Systems Fall 2018 Syllabus CSCI 405 Operating Systems Fall 2018 1.0 General Information Class Time: Monday/Wednesday/Friday 11:00 AM - 11:50 AM Class Location: 317 Thompson Instructor: Dr. Deepti Joshi; Office: 224 Thompson;

More information

CSC 120 Introduction to Creative Graphical Coding, Fall 2017

CSC 120 Introduction to Creative Graphical Coding, Fall 2017 CSC 120 Introduction to Creative Graphical Coding, Fall 2017 Dr. Dale E. Parson, Assignment 1, Implementing and testing an automated avatar in Processing. This assignment is due via D2L Assignments Assignment

More information

RT Digital Media Extended Lab Choose One: Work Alone Work in a Pair Extra Work Required 3 or More Students May Collaborate, but Submissions must be Un

RT Digital Media Extended Lab Choose One: Work Alone Work in a Pair Extra Work Required 3 or More Students May Collaborate, but Submissions must be Un ECEN 5033 RT Digital Media Systems Lecture 10 Extended Lab Background March 31, 2008 Sam Siewert RT Digital Media Extended Lab Choose One: Work Alone Work in a Pair Extra Work Required 3 or More Students

More information

Summary of Student Projects from CSC 580, Multiprocessor Programming in Java

Summary of Student Projects from CSC 580, Multiprocessor Programming in Java Summary of Student Projects from CSC 580, Multiprocessor Programming in Java Dale E. Parson, http://faculty.kutztown.edu/parson, January 2012, course was held spring 2011 This course in Multiprocessor

More information

Introduction to scripting with Gig Performer Draft V0.51. Dr. David H Jameson Nebojsa Djogo. Deskew Technologies, LLC May 4, 2018

Introduction to scripting with Gig Performer Draft V0.51. Dr. David H Jameson Nebojsa Djogo. Deskew Technologies, LLC May 4, 2018 Introduction to scripting with Gig Performer Draft V0.51 Dr. David H Jameson Nebojsa Djogo Deskew Technologies, LLC May 4, 2018 Introduction The Gig Performer scripting language, which we have rather unimaginatively

More information

CS 241 Data Organization using C

CS 241 Data Organization using C CS 241 Data Organization using C Fall 2018 Instructor Name: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Farris 2120 Office Hours: Tuesday 2-4pm and Thursday 9:30-11am

More information

CMSC 201 Fall 2016 Homework 6 Functions

CMSC 201 Fall 2016 Homework 6 Functions CMSC 201 Fall 2016 Homework 6 Functions Assignment: Homework 6 Functions Due Date: Wednesday, October 26th, 2016 by 8:59:59 PM Value: 40 points Collaboration: For Homework 6, collaboration is not allowed

More information

CS-537: Midterm Exam (Fall 2013) Professor McFlub

CS-537: Midterm Exam (Fall 2013) Professor McFlub CS-537: Midterm Exam (Fall 2013) Professor McFlub Please Read All Questions Carefully! There are fourteen (14) total numbered pages. Please put your NAME (mandatory) on THIS page, and this page only. Name:

More information

Project #1: Tracing, System Calls, and Processes

Project #1: Tracing, System Calls, and Processes Project #1: Tracing, System Calls, and Processes Objectives In this project, you will learn about system calls, process control and several different techniques for tracing and instrumenting process behaviors.

More information

COURSE SYLLABUS ANDROID. Industrial Training (4 MONTHS) PH : , Vazhoor Road Changanacherry-01.

COURSE SYLLABUS ANDROID. Industrial Training (4 MONTHS) PH : , Vazhoor Road Changanacherry-01. COURSE SYLLABUS ANDROID Industrial Training (4 MONTHS) PH : 0481 2411122, 09495112288 E-Mail : info@faithinfosys.com www.faithinfosys.com Marette Tower Near No. 1 Pvt. Bus Stand Vazhoor Road Changanacherry-01

More information

Course Outline. Microsoft SharePoint Server 2013 for the Site Owner/Power User Course 55035: 2 days Instructor-Led

Course Outline. Microsoft SharePoint Server 2013 for the Site Owner/Power User Course 55035: 2 days Instructor-Led Microsoft SharePoint Server 2013 for the Site Owner/Power User Course 55035: 2 days Instructor-Led Introduction This two day class is designed for information workers or power users who serve as SharePoint

More information

ECE 4110 Internetwork Programming Lab 2: TCP Traffic Generator. Lab Goals. Prelab

ECE 4110 Internetwork Programming Lab 2: TCP Traffic Generator. Lab Goals. Prelab ECE 4110 Internetwork Programming Lab 2: TCP Traffic Generator Group Number: Member Names: Date Issued: Tuesday January 22, 2013 Date Due: Wednesday, January 30, 2013 Last Edited: 1/21/2013 Lab Goals Finish

More information

INFS 2150 (Section A) Fall 2018

INFS 2150 (Section A) Fall 2018 INFS 2150 (Section A) Fall 2018 Introduction to Web Development Class meets TUE & THU: 12:30am-1:45pm: in Wheatley 114 Instructor: Peter Y. Wu Office: Wheatley 309 Office Hours: Tuesday 9:00 am-12:00 noon;

More information

San Jose State University - Department of Computer Science

San Jose State University - Department of Computer Science San Jose State University - Department of Computer Science CS 151, Section 4 - Object-Oriented Design Instructor:Cay S. Horstmann Email: cay.horstmann@sjsu.edu Telephone: +1-408-924-5060 Office Hours:

More information

Descriptions for CIS Classes (Fall 2017)

Descriptions for CIS Classes (Fall 2017) Descriptions for CIS Classes (Fall 2017) Major Core Courses 1. CIS 1015. INTRODUCTION TO COMPUTER INFORMATION SYSTEMS. (3-3-0). This course provides students an introductory overview to basic computer

More information

Oracle Field Sales/Laptop

Oracle Field Sales/Laptop Oracle Field Sales/Laptop Implementation Guide Release 11i June 2001 Part No. A87538-02 This Implementation Guide provides information and instructions to help you implement Oracle Field Sales/Laptop,

More information

Assignment 6: Ray Tracing

Assignment 6: Ray Tracing Assignment 6: Ray Tracing Programming Lab Due: Monday, April 20 (midnight) 1 Introduction Throughout this semester you have written code that manipulated shapes and cameras to prepare a scene for rendering.

More information

The Bliss GUI Framework. Installation Guide. Matías Guijarro

The Bliss GUI Framework. Installation Guide. Matías Guijarro The Bliss GUI Framework Installation Guide Author Date Matías Guijarro 08/09/05 Index 1. Installing the Framework... 3 1.1 Deploying the packages... 3 1.2 Testing the installation... 4 2.Setting up the

More information

Intellicus Getting Started

Intellicus Getting Started Intellicus Getting Started Intellicus Web-based Reporting Suite Version 4.5 Enterprise Professional Smart Developer Smart Viewer Intellicus Technologies info@intellicus.com www.intellicus.com Copyright

More information

Blackboard Frequently Asked Questions: Student Issues

Blackboard Frequently Asked Questions: Student Issues Blackboard Frequently Asked Questions: Student Issues Course Issues Why am I not seeing a course I just registered for in CUNYfirst, in Blackboard? It takes 24-48 hours from the time you registrar or change

More information

Homeschool Programming, Inc.

Homeschool Programming, Inc. Online Course Overview Course Title: TeenCoder: Java Programming TeenCoder: Java Programming Online Course Syllabus and Planner Updated November, 2015 Online ISBN: 978-0-9887070-2-3, published 2015 by

More information

Massachusetts Institute of Technology Dept. of Electrical Engineering and Computer Science Fall Semester, Introduction to EECS 2

Massachusetts Institute of Technology Dept. of Electrical Engineering and Computer Science Fall Semester, Introduction to EECS 2 Massachusetts Institute of Technology Dept. of Electrical Engineering and Computer Science Fall Semester, 2006 6.082 Introduction to EECS 2 Lab #9: Link-state Routing Goal: Using a network simulator written

More information

TCP/IP Packet Identifier

TCP/IP Packet Identifier Software Requirement Specification Requested by: Mr. Ken Swarner Systems Administrator Computer Science Department of Siena College TCP/IP Packet Identifier EdgeTech Development Always on the cutting edge

More information

CSC 112 Lab 1: Introduction to Unix and C++ Fall 2009

CSC 112 Lab 1: Introduction to Unix and C++ Fall 2009 CSC 112 Lab 1: Introduction to Unix and C++ Fall 2009 Due: Friday, September 4 th, 9:00am Introduction The operating system of a computer is the coordinator of all of the computer s activities, including

More information

Information Technology Web Solution Services

Information Technology Web Solution Services Information Technology Web Solution Services Icetech, Inc. HUBZONE (410) 225-3117 (410) 225-3120 Fax webmaster@icetech.net http://www.icetech.net Contents EXECUTIVE SUMMARY... 2 OUR SERVICES INCLUDE:...

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

CSCI 200 Lab 11 A Heap-Based Priority Queue

CSCI 200 Lab 11 A Heap-Based Priority Queue CSCI 200 Lab 11 A Heap-Based Priority Queue Preliminaries Part of today s lab will focus on implementing a heap-based priority queue using an ArrayListlike class called ZHExtensibleArrayStructure. Recall

More information

Planning and Administering SharePoint 2016

Planning and Administering SharePoint 2016 Planning and Administering SharePoint 2016 20339-1; 5 Days; Instructor-led Course Description This five-day course will provide you with the knowledge and skills to plan and administer a Microsoft SharePoint

More information

OpenScape Contact Center Multimedia. First Contact Resolution in a Multi-Channel World <insert date here>

OpenScape Contact Center Multimedia. First Contact Resolution in a Multi-Channel World <insert date here> OpenScape Contact Center Multimedia First Contact Resolution in a Multi-Channel World Agenda OpenScape Contact Center Agile vs. Enterprise What is OpenScape Contact Center Multimedia

More information

CSC 2405: Computer Systems II

CSC 2405: Computer Systems II CSC 2405: Computer Systems II Dr. Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Spring 2016 Course Goals: Look under the hood Help you learn what happens under the hood of computer systems

More information

CSE 333 Lecture 1 - Systems programming

CSE 333 Lecture 1 - Systems programming CSE 333 Lecture 1 - Systems programming Hal Perkins Department of Computer Science & Engineering University of Washington Welcome! Today s goals: - introductions - big picture - course syllabus - setting

More information

Project 2 Reliable Transport

Project 2 Reliable Transport Project 2 Reliable Transport UC Berkeley CS 168, Fall 2014 Version 1.0 Due: 11:59am (noon), November 2nd, 2014 In this project, you will build a simple reliable transport protocol, BEARS TP (BTP). Your

More information

CSE 489/589 Recitation TCP Socket & Synchronous I/O Multiplexing

CSE 489/589 Recitation TCP Socket & Synchronous I/O Multiplexing Recitation TCP Socket & Synchronous I/O Multiplexing Wenjun Jiang Computer Sciences and Engineering University at Buffalo Information Instructor: Dr. Lu Su Office: 321 Davis Hall Email: lusu [at] buffalo.edu

More information

CPSC 150 Laboratory Manual. Lab 1 Introduction to Program Creation

CPSC 150 Laboratory Manual. Lab 1 Introduction to Program Creation CPSC 150 Laboratory Manual A Practical Approach to Java, jedit & WebCAT Department of Physics, Computer Science & Engineering Christopher Newport University Lab 1 Introduction to Program Creation Welcome

More information

Networking Applications

Networking Applications Networking Dr. Ayman A. Abdel-Hamid College of Computing and Information Technology Arab Academy for Science & Technology and Maritime Transport Multimedia Multimedia 1 Outline Audio and Video Services

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

Using Midi with 7Pad. 7Pad Midi IN and Out with USB cable. Tutorial Topics

Using Midi with 7Pad. 7Pad Midi IN and Out with USB cable. Tutorial Topics Using Midi with 7Pad Tutorial Topics Using Midi with 7Pad...1 7Pad Midi IN and Out with USB cable...1 Midi Input with USB :...3 Midi clock input and Ableton Link...4 7Pad output midi channels :...5 7PadMidi

More information

Software Engineering for Mechatronics Applications

Software Engineering for Mechatronics Applications Software Engineering for Mechatronics Applications 2017W1-MECH550C 2017W1-MECH575A Instructor Professor Arda Erol Email : ardaerol@mail.ubc.ca Classroom : ICICS X051 (both lecture and labs) Time : Tuesdays

More information

Course 55197A: Microsoft SharePoint Server 2016 for the Site Owner/Power User

Course 55197A: Microsoft SharePoint Server 2016 for the Site Owner/Power User Skip to main content Course 55197A: Microsoft SharePoint Server 2016 for the Site Owner/Power User - Course details Course Outline Module 1: The Role of the Site Owner This module provides an introduction

More information

Interactive XML Visualization - using XSLT 2.0 on the Browser. Phil Fearon - Saxonica

Interactive XML Visualization - using XSLT 2.0 on the Browser. Phil Fearon - Saxonica Interactive XML Visualization - using XSLT 2.0 on the Browser Phil Fearon - Saxonica Big XML Theme Big data Large scale searching Processing large volumes at high speed Crunching big XML files Open Linked

More information

Syllabus Class schedule Section 1: Tuesdays 9:00 11:50 Section 2: Tuesdays 1:00 3:50

Syllabus Class schedule Section 1: Tuesdays 9:00 11:50 Section 2: Tuesdays 1:00 3:50 GBDA 228 Digital Imaging of Online Applications Winter Term 2018 University of Waterloo, Stratford Campus Global Business and Digital Arts Syllabus Class schedule Section 1: Tuesdays 9:00 11:50 Section

More information

Introduction to Programming System Design CSCI 455x (4 Units)

Introduction to Programming System Design CSCI 455x (4 Units) Introduction to Programming System Design CSCI 455x (4 Units) Description This course covers programming in Java and C++. Topics include review of basic programming concepts such as control structures,

More information

"Charting the Course... MOC /2: Planning, Administering & Advanced Technologies of SharePoint Course Summary

Charting the Course... MOC /2: Planning, Administering & Advanced Technologies of SharePoint Course Summary Description Course Summary This five-day course will provide you with the knowledge and skills to plan and administer a Microsoft environment. The course teaches you how to deploy, administer, and troubleshoot

More information

Analysis Tool Project

Analysis Tool Project Tool Overview The tool we chose to analyze was the Java static analysis tool FindBugs (http://findbugs.sourceforge.net/). FindBugs is A framework for writing static analyses Developed at the University

More information

2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows,

2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows, 2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows, Windows Server, and other product names are or may be registered

More information

(Movement - Synthesis) Improve existing programming skills by developing much larger and more complex programs than in previous classes.

(Movement - Synthesis) Improve existing programming skills by developing much larger and more complex programs than in previous classes. Location MWF 1205-1255 Klaus 1443 Class Objective Purpose: CS2340 takes students who know an object-oriented language, and focuses on getting them to use that language in a true object-oriented style.

More information

Networked Access to Library Resources

Networked Access to Library Resources Institute of Museum and Library Services National Leadership Grant Realizing the Vision of Networked Access to Library Resources An Applied Research and Demonstration Project to Establish and Operate a

More information

COS 333: Advanced Programming Techniques

COS 333: Advanced Programming Techniques COS 333: Advanced Programming Techniques Robert M. Dondero, Ph.D. Princeton University Please pick up handouts at the back of the room 1 COS 333: Course Overview Copyright 2018 by Robert M. Dondero, Ph.D.

More information

Design of Embedded Systems

Design of Embedded Systems Design of Embedded Systems José Costa Software for Embedded Systems Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2015-01-02 José Costa (DEI/IST) Design of Embedded Systems 1

More information