Protein Sequence Database

Size: px
Start display at page:

Download "Protein Sequence Database"

Transcription

1 Protein Sequence Database A protein is a large molecule manufactured in the cell of a living organism to carry out essential functions within the cell. The primary structure of a protein is a sequence of amino acids. There are 20 common amino acids, each of which has a chemical name (e.g., "Glycine"), a three-letter abbreviation (e.g., "Gly"), and a one-letter code (e.g., "G"). See for a table about the chemistry of the amino acids and for information about how the amino acids fit into the genetic code. The twenty one-letter codes are: A, C, D, E, F, G, H, I, K, L, M, N, P, Q, R, S, T, V, W, Y For the purpose of representing and manipulating the primary structure of a protein, it suffices to use the one-letter codes in a string. For example, MLQSIIKNIWIPMKPYYTKVYQEIWIGMGLMGFIVYKIRAADKRSKALKASAPAPGHH is the amino acid sequence for a human protein called "6.8 kda mitochondrial proteolipid". In this project, amino acid sequences will always be upper-case, with no white space inserted. There are many online databases from which protein sequences can be obtained. One is SWISS-PROT, which can be found at As of March 27, 2004, SWISS-PROT contained database entries for 146,720 amino acid sequences. Each database entry has much more information about a protein than its sequence, as can be seen by going to This is the entry for the protein whose sequence was given above. A shorter sample is given in Figure 4 on page 8 of this specification. Besides the amino acid sequence (found in a formatted form under the heading "Sequence information" near the bottom of the page) other important information in the SWISS-PROT entry includes: The primary accession code (e.g. "P56378") that is always a unique 6-character identifier for the entry A protein name (e.g., "6.8 kda mitochondrial proteolipid") that is an official name for the protein that indicates its function in a cell and One or more source organism fields (e.g., "Homo sapiens (Human)") that give the species where the protein is found. A molecular weight given to the nearest mass unit. For our purposes in this assignment, rather than use a text file of SWISS-PROT entries, the program will manipulate a binary database file that contains condensed protein records consisting of a primary accession number, a protein name, a source organism, the amino acid sequence, and the molecular weight. More precisely, each database record will be stored in the following format: Significance Type Comments Accession code sequence of characters alphanumeric, always 6 characters Protein name length unsigned short Protein name sequence of characters no meaningful restriction on contents Number of source organisms unsigned short The following pair of entries will be repeated the specified number of times Organism name length unsigned short Organism name sequence of characters no meaningful restriction on contents Amino acid sequence length unsigned short Amino acid sequence sequence of characters upper-case, from code set given above Molecular weight of protein unsigned int Last modified: 4/13/2004 2:10 PM 1

2 Since there are three fields of variable size, the total record length will also vary. The first four bytes of the database file will be an unsigned integer specifying the number of records stored in the file. Note that there are absolutely no stated limits on the lengths of the strings that occur in the protein records. Figure 1 below illustrates the binary layout of a protein record in the database file. The highlighting indicates the correspondence between the plain text and the binary representation. The first byte of the hex dump belongs to the previous record in the database file, and the last 15 bytes belong to the next record. Figure 1 Sample Protein Record in Plain Text and Binary Format: P protein gamma (Protein kinase C inhibitor protein-1) (KCIP-1). Homo sapiens (Human) Mus musculus (Mouse) Rattus norvegicus (Rat) VDREQLVQKARLAEQAERYDDMAAAMKNVTELNEPLSNEERNLLSVAYKNVVGARRSSWRVISSIEQKTSADGNEKK IEMVRAYREKIEKELEAVCQDVLSLLDNYLIKNCSETQYESKVFYLKMKGDYYRYLAEVATGEKRATVVESSEKAYS EAHEISKEHMQPTHPIRLGLALNYSVFYYEIQNAPEQACHLAKTAFDDAIAELDTLNEDSYKDSTLIMQLLRDNLTL WTSDQQDDDGGEGNN A 0B 0C 0D 0E 0F ABCDEF :8F D 33 2D P35214E :8F F E D 6D protein gamma (P 0000:8F F E 20 6B 69 6E rotein kinase C 0000:8F E F F inhibitor protei 0000:8F40 6E 2D B D E n-1) (KCIP-1) :8F F 6D 6F E Homo sapiens ( 0000:8F D 61 6E D D Human)..Mus musc 0000:8F C D 6F ulus (Mouse)..Ra 0000:8F E 6F ttus norvegicus 0000:8F F C B (Rat)ö.VDREQLVQK 0000:8FA C D ARLAEQAERYDDMAAA 0000:8FB0 4D 4B 4E C 4E C 53 4E MKNVTELNEPLSNEER 0000:8FC0 4E 4C 4C B 4E NLLSVAYKNVVGARRS 0000:8FD B SWRVISSIEQKTSADG 0000:8FE0 4E 45 4B 4B D B NEKKIEMVRAYREKIE 0000:8FF0 4B 45 4C C 53 4C 4C 44 4E KELEAVCQDVLSLLDN 0000: C 49 4B 4E B YLIKNCSETQYESKVF 0000: C 4B 4D 4B C YLKMKGDYYRYLAEVA 0000: B B TGEKRATVVESSEKAY 0000: B D SEAHEISKEHMQPTHP 0000: C 47 4C 41 4C 4E IRLGLALNYSVFYYEI 0000: E C 41 4B QNAPEQACHLAKTAFD 0000: C C 4E B 44 DAIAELDTLNEDSYKD 0000: C 49 4D 51 4C 4C E 4C 54 4C STLIMQLLRDNLTLWT 0000: E 4E 0B 6E 00 SDQQDDDGGEGNN.n. 0000: F D 33 2D O70456! A more extensive hex dump of a sample binary database file is shown in Figure 2 on page 6 of this specification. Last modified: 4/13/2004 2:10 PM 2

3 Assignment: You will implement a system that maintains a database of amino acid sequences (proteins) stored in the format described above. There is no stated limit on the number of records that may be in the file, so all data structures must be fully dynamic. Your system will build and maintain several in-memory index data structures to support these operations: Inserting a new protein record Retrieving for protein records based on accession number, source organism, or amino acid sequence Retrieving protein records based on subsequences. You will implement a single C++ program to perform all system functions. Program Invocation: The program will take the size of the hash table and the names of three files from the command line, like this: ProteinDB <HT size> <database file name> <command script file name> <log file name> If the database file is not found, open a new file using the given name, and begin execution with an empty database. Naturally, if the script file is not found, the program should log an error message and exit. Data and File Structures: There will be a persistent database file, in the format described earlier. Adding a new protein record to the database requires updating the indexing data structures in memory and the database file on disk. Each of the search keys is simply an ASCII string, and so the keys can be compared using the standard relational operators. The amino acid sequence and accession codes are unique (primary) that is, no two different proteins will have the same accession code or amino acid sequence. The other fields are not guaranteed to be primary. The index for the amino acid sequences will use a hash table to store index entries, consisting of the amino acid sequence and the file offset at which the record begins. The hash table will contain the number of slots specified on the command line. Since open hashing is used, there is never any reason to resize the table. The amino acid sequences will be hashed using the ELFhash function discussed in the course notes. Rather than use a probing strategy, the hash table will store a container in each slot. The container in each slot should be capable of storing an arbitrary number of records (although we hope that will not really be necessary), and it should support efficient search, insertion and deletion. Within those constraints, it's your choice 2. The index structure for the accession codes is your choice, subject to the requirement that it support efficient search, insertion and deletion. The index entries in the accession code index will be similar to those in the amino acid sequence index, in that they will store two values however, the second value in an accession index entry will be the corresponding amino acid sequence. The index for the source organisms cannot be a hash table because there will be many protein records from a single organism. Since this index must also support efficient search, insertion, and deletion, we will use a binary tree structure. The ideal option would be a balanced tree, like an AVL. However, if you cannot do that reliably, you may use a plain BST instead, for a penalty of 5%. (There will be no partial credit given for semi-functional AVL trees.) The source organism index will store index entries containing the organism name and a list of corresponding amino acid sequences (NOT file offsets!). This means that retrievals based on the accession code or the source organism name will require first searching the accession code or source organism index and then performing one or more searches of the hash table that indexes the amino acid sequences 1. Aside from where specific data structures are required, you may use any STL components you like. At the start of execution, your program should parse the binary database file and build both index structures. Each index object should have the ability to write a nicely-formatted display of itself to an output stream. Last modified: 4/13/2004 2:10 PM 3

4 Other System Elements: There should be an overall controller that validates the command line arguments and manages the initialization of the indices. The controller should hand off execution to a command processor that manages retrieving commands from the script file, and making the necessary calls to carry out those commands. Command File: The execution of the program will be driven by a script file. Lines beginning with a semicolon character ('') are comments and should be ignored. Each non-comment line of the command file will specify one of the commands described below. Each line consists of a sequence of tokens, which will be separated by single tab characters. A newline character will immediately follow the final token on each line. The command file is guaranteed to conform to this specification, so you do not need to worry about error-checking when reading it. The following commands must be supported: show_sequence<tab><sequence> Log all the data fields in the protein record that stores the sequence given in <sequence>. show_accession<tab><accession> Log all the data fields in the protein record that has primary accession number <accession>. show_organism<tab><species> Log all the data fields in every protein record that includes the organism name given in <species>. At the end of the list, log the number of matching protein records that were found. add<tab><accession> Add a new protein record with primary accession code <accession>, if it does not already exist in the database. The protein name, organism(s), molecular weight, and sequence for the new record will be found on the following input lines in that order. The lines will be labeled with the flags DE, OS, MW and SQ, respectively. Each flag will be followed by three spaces. Note that it is possible there will be multiple organism lines. update<tab><accession> Update the protein record with primary accession code <accession>. If the given accession code is not already in the database, treat this as an add command. The protein name, organism(s), molecular weight, and sequence to update the record will be given on the following lines in the same format as for the add command. Updating the database file poses some challenges. There is no guarantee that the updated record will be the same length as the original record. Therefore, when updating an existing record you will do something (your choice) to mark the original record in the file as invalid, and then append the updated record to the database file. Note that this may require modifying all the index structures. find_subsequence<tab><subsequence> 3 In this command, <subsequence> must be a non-empty sequence of the twenty amino acid codes (all upper case). You are to log the primary accession code of every protein record that has a sequence that contains <subsequence> as a (contiguous) subsequence within it. You should be able to use one of the index structures to guide your search, especially if you provide iterator support, but this does require a full traversal of the database. Sequences should be logged in order of primary accession code. This will be treated as extra-credit. debug<tab>[accession organism sequence] Log the contents of the specified index in a fashion that makes the internal structure of the index clear. If the index is stored in a hash table, you should display information only for non-empty slots. clear<tab> Delete the contents of the entire database. open<tab><database file name> Read the protein records in the specified binary database file and add them to the database, if they are not duplicates. This will include adding the records to the original database file, just like an add command. Last modified: 4/13/2004 2:10 PM 4

5 exit<tab> Terminate program execution. A sample command script is included in Figure 3 on page 7 of this document. As a general rule, every command should result in some output. In particular, error messages should be logged if searches yield no protein records. Instrumentation: Each index must be instrumented so that it logs information about each search it performs. The information should identify each index record that is accessed during the index search, and should be written to the log file. Log File Description: Since this assignment will be graded by TAs, rather than the Curator, the format of the output is left up to you. Of course, your output should be clear, concise, well labeled, and correct. The first two lines should contain your name, section specification (e.g., "CS :00 TTh"), and project title (e.g., "Major Project 2: Protein Sequence Database"). The remainder of the log file output should come directly from your processing of the command file. You are required to echo each command that you process to the log file so that it's easy to determine which command each section of your output corresponds to. Each command should be numbered, starting with 1, and the output from each command should be well formatted, and delimited from the output resulting from processing other commands. A complete sample log will be posted shortly on the course website. Submitting Your Program: You will submit this assignment to the Curator System (read the Student Guide), where it will be archived for grading at a demo with a TA. For this assignment, you must submit a gzip'd tar file containing all the source code files for your implementation (i.e., header files and cpp files). Submit only the header and cpp files. Submit nothing else. In order to correct submission errors and late-breaking implementation errors, you will be allowed up to five submissions for this assignment. You may choose which one will be evaluated at your demo. The Student Guide and link to the submission client can be found at: Evaluation: Shortly before the due date for the project, we will announce which TA will be grading your project and post signup sheets inside the McB 124 lab. You will schedule a demo with your assigned TA. At the demo, you will perform a build, and run your program on the demo test data, which we will provide to the TAs. The TA will evaluate the correctness of your results. In addition, the TA will evaluate your project for good internal documentation and software engineering practice. Remember that your implementation will be tested in the McB 124 lab environment. If you use a different development platform, it is entirely your responsibility to make sure your implementation works correctly in the lab. Note that the evaluation of your project will depend substantially on the quality of your code and documentation. See the Programming Standards page on the course website for specific requirements that should be observed in this course. Pledge: Each of your program submissions must be pledged to conform to the Honor Code requirements for this course. Specifically, you must include the pledge statement provided on the Submitting Assignments page of the course website. Last modified: 4/13/2004 2:10 PM 5

6 Figure 2 Hex Dump of Sample Binary DB File: A 0B 0C 0D 0E 0F ABCDEF :0000 A C Q9V2L2B.Puta 0000: D 61 6D 69 6E 6F C tive 1-aminocycl 0000:0020 6F F E 65 2D 31 2D F opropane-1-carbo 0000: C D 69 6E xylate deaminase 0000: E 35 2E E (EC ) : F 63 6F Pyrococcus aby 0000: A 01 4D B C 4C ssij.mhpkvdallsr 0000: C C FPRITLIPWETPIQYL 0000: C B PRISRELGVDVYVKRD 0000: C C E 4B B 4C 45 DLTGLGIGGNKIRKLE 0000:00A0 46 4C 4C C FLLGDALSRGCDTVIT 0000:00B E C IGAVHSNHAFVTALAA 0000:00C0 4B 4B 4C 47 4C C 49 4C KKLGLGAVLILRGEEV 0000:00D0 4C 4B 47 4E 59 4C 4C 44 4B 4C 4D LKGNYLLDKLMGIETR 0000:00E E C 4D 4B IYEADNSWELMKVAEE 0000:00F C 4B B 4B VAEELKGEGKKPYIIP 0000: C PGGASPVGTLGYIRGV 0000: C B 4B 4C 47 4C GELYTQVKKLGLRIDT 0000: C 4C 4C VVDAVGSGGTYAGLLL 0000: E GSAIVNAEWSVVGIDV 0000: B 41 4B B 4E 4C SSATEKAKERVKNLVE 0000:0150 4B 54 4B 45 4C 4C E 56 4B KTKELLGINVKVQEPR 0000: B B IYDYGFGAYGKIVKEV 0000: B 4C 49 4B D C 4C 4C 44 AKLIKSVGTMEGLLLD 0000: B C 4D 44 4C 41 4B PVYTGKAFYGLMDLAK 0000:0190 4B C C C KGDLGESVLFIHTGGL 0000:01A D 4C 45 4C 4C 56 AA PGIFHYGEEMLELLVª 0000:01B0 8B Q8U4R3S.Putat 0000:01C D 61 6D 69 6E 6F C 6F ive 1-aminocyclo 0000:01D F E 65 2D 31 2D F 78 propane-1-carbox 0000:01E0 79 6C D 69 6E ylate deaminase 0000:01F E 35 2E E (EC ) (A 0000: D 69 6E E CC deaminase) : F 63 6F Pyrococcus fur 0000: F D B C 4C iosusi.mhpkvqsll 0000: B C SKFPRVELIPWETPIQ 0000: C 50 4E B 4C B YLPNISKLVGADIYVK 0000: C C E 4B B RDDLTGLGIGGNKIRK 0000:0260 4C C 4C B LEYLLGDAIIRKADVI 0000: E C ITVGAVHSNHAFVTGL 0000: B 4B 4C C 56 4C B AAKKLGFDVVLVLRGK 0000: C E 59 4C 4C 44 4B 49 4D EELRGNYLLDKIMGIE 0000:02A B C 4D 4B TRVYEAKDSFELMKYA 0000:02B B 45 4C B B EEVAKELEEKGRKPYI... Last modified: 4/13/2004 2:10 PM 6

7 Figure 3 Sample Command Script: Script file for the Protein Database Project Display some records: show_accession Q9V2L2 show_accession P11576 show_sequence ILNSPDRACNLAKQAFDEAISELDSLGEESYKDSTLIMQLLXDNLTLWTSDTNEDGGDEIK show_organism Drosophila melanogaster (Fruit fly) Add a new record: add P56378 DE 6.8 kda mitochondrial proteolipid OS Homo sapiens (Human) MW SQ MLQSIIKNIWIPMKPYYTKVYQEIWIGMGLMGFIVYKIRAADKRSKALKASAPAPGHH Echo the added record: show_accession P56378 Now dump the database and the indices debug accession debug organism debug sequence Quit: exit Last modified: 4/13/2004 2:10 PM 7

8 Figure 4 A sample SWISS-PROT protein database entry: ID 1431_MAIZE STANDARD PRT 261 AA. AC P49106 DT 01-FEB-1996 (Rel. 33, Created) DT 01-FEB-1996 (Rel. 33, Last sequence update) DT 01-OCT-1996 (Rel. 34, Last annotation update) DE like protein GF14-6. GN GRF1. OS Zea mays (Maize). OC Eukaryota Viridiplantae Streptophyta Embryophyta Tracheophyta OC Spermatophyta Magnoliophyta Liliopsida Poales Poaceae OC PACCAD clade Panicoideae Andropogoneae Zea. OX NCBI_TaxID=4577 RN [1] RP SEQUENCE FROM N.A. RX MEDLINE= PubMed= RA de Vetten N.C., Ferl R.J. RT "Two genes encoding GF14 (14-3-3) proteins in Zea mays. Structure, RT expression, and potential regulation by the G-box binding complex." RL Plant Physiol. 106: (1994). CC -!- FUNCTION: Is associated with a DNA binding complex to bind to CC the G box, a well-characterized cis-acting DNA regulatory element CC found in plants genes. CC -!- SIMILARITY: Belongs to the family. CC CC This SWISS-PROT entry is copyright. It is produced through a collaboration CC between the Swiss Institute of Bioinformatics and the EMBL outstation - CC the European Bioinformatics Institute. There are no restrictions on its CC use by non-profit institutions as long as its content is in no way CC modified and this statement is not removed. Usage by and for commercial CC entities requires a license agreement (See CC or send an to license@isb-sib.ch). CC DR EMBL S77133 AAB DR PIR T01752 T DR HSSP P A38. DR MaizeDB DR InterPro IPR DR Pfam PF DR PRINTS PR ZETA. DR SMART SM _3_3 1. DR PROSITE PS _1 1. DR PROSITE PS _2 1. KW Multigene family. SQ SEQUENCE 261 AA MW 25EC70725A5F6801 CRC64 MASAELSREE NVYMAKLAEQ AERYEEMVEF MEKVAKTVDS EELTVEERNL LSVAYKNVIG ARRASWRIIS SIEQKEEGRG NEDRVTLIKD YRGKIETELT KICDGILKLL ETHLVPSSTA PESKVFYLKM KGDYYRYLAE FKTGAERKDA AENTMVAYKA AQDIALAELA PTHPIRLGLA LNFSVFYYEI LNSPDRACSL AKQAFDEAIS ELDTLSEESY KDSTLIMQLL RDNLTLWTSD ISEDPAEEIR EAPKRDSSEG Q // Last modified: 4/13/2004 2:10 PM 8

9 Notes: The reason that the other two indices refer to the hash table index, instead of storing file offsets themselves, is that this simplifies maintaining the index structures if the binary database file is changed. For example, if lots of updates are performed, the database file will contain lots of "dead" records. It would be natural to read and re-write the database file periodically to eliminate those dead records but that will change the file offsets for many of the records. Since the hash table index is the only one that actually stores file offsets, it's the only index that would have to be rebuilt when this is done. The ELFHash function is good enough on long strings that you would expect to not have too many collisions if the hash table size is reasonable (i.e., about twice the number of records actually stored). Given that observation, it's acceptable to use an efficient, dynamic, linear structure in each slot. The find_subsequence command will be treated as an extra-credit component of the assignment. It will be evaluated (if you implement it) as a separate section of the testing, and will be worth up to 10/100 added to your final score. Last modified: 4/13/2004 2:10 PM 9

Protein Sequence Database

Protein Sequence Database Protein Sequence Database A protein is a large molecule manufactured in the cell of a living organism to carry out essential functions within the cell. The primary structure of a protein is a sequence

More information

Conceptually a file is thought of as an array of bytes. If there are k bytes in the file, the bytes are indexed from 0 to k-1.

Conceptually a file is thought of as an array of bytes. If there are k bytes in the file, the bytes are indexed from 0 to k-1. Model of File I/O Conceptually a file is thought of as an array of bytes. 1 If there are k bytes in the file, the bytes are indexed from 0 to k-1. The bytes in the file are un-interpreted they have no

More information

CS 2605 Lab 10 Spring 2008

CS 2605 Lab 10 Spring 2008 Text Parsing and Indexing: A Minimal db Goal In this lab, you will explore basic text parsing in C++. Learning Objectives understanding how to use getline() to break down input data understanding the logical

More information

Multiple-Key Indexing

Multiple-Key Indexing Multiple-Key Indexing For this project you provide indexing capabilities for a simple database file. The database will consist of a sequence of logical records, of varying sizes (similar to the initial

More information

Geographic Information System

Geographic Information System Geographic Information System Geographic information systems organize information pertaining to geographic features and provide various kinds of access to the information. A geographic feature may possess

More information

Geographic Information System version 1.0

Geographic Information System version 1.0 Geographic Information System version 1.0 Geographic information systems organize information pertaining to geographic features and provide various kinds of access to the information. A geographic feature

More information

CS 2704 Project 1 Spring 2001

CS 2704 Project 1 Spring 2001 Robot Tank Simulation We've all seen various remote-controlled toys, from miniature racecars to artificial pets. For this project you will implement a simulated robotic tank. The tank will respond to simple

More information

Geographic Information System

Geographic Information System Geographic Information System Geographic information systems organize information pertaining to geographic features and provide various kinds of access to the information. A geographic feature may possess

More information

Similarity searches in biological sequence databases

Similarity searches in biological sequence databases Similarity searches in biological sequence databases Volker Flegel september 2004 Page 1 Outline Keyword search in databases General concept Examples SRS Entrez Expasy Similarity searches in databases

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 ) 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

CS 2604 Minor Project 1 DRAFT Fall 2000

CS 2604 Minor Project 1 DRAFT Fall 2000 RPN Calculator For this project, you will design and implement a simple integer calculator, which interprets reverse Polish notation (RPN) expressions. There is no graphical interface. Calculator input

More information

Here is a C function that will print a selected block of bytes from such a memory block, using an array-based view of the necessary logic:

Here is a C function that will print a selected block of bytes from such a memory block, using an array-based view of the necessary logic: Pointer Manipulations Pointer Casts and Data Accesses Viewing Memory The contents of a block of memory may be viewed as a collection of hex nybbles indicating the contents of the byte in the memory region;

More information

Accessing Data in Memory

Accessing Data in Memory Accessing Data in Memory You will implement a simple C function that parses a tangled list of binary records in memory, processing them nonsequentially, and produces a simple text report. The function

More information

CS 1044 Program 6 Summer I dimension ??????

CS 1044 Program 6 Summer I dimension ?????? Managing a simple array: Validating Array Indices Most interesting programs deal with considerable amounts of data, and must store much, or all, of that data on one time. The simplest effective means for

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

CS 2704 Project 3 Spring 2000

CS 2704 Project 3 Spring 2000 Maze Crawler For this project, you will be designing and then implementing a prototype for a simple game. The moves in the game will be specified by a list of commands given in a text input file. There

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

CS 2704 Project 2: Elevator Simulation Fall 1999

CS 2704 Project 2: Elevator Simulation Fall 1999 Elevator Simulation Consider an elevator system, similar to the one on McBryde Hall. At any given time, there may be zero or more elevators in operation. Each operating elevator will be on a particular

More information

CS 3114 Data Structures and Algorithms READ THIS NOW!

CS 3114 Data Structures and Algorithms READ THIS NOW! READ THIS NOW! Print your name in the space provided below. There are 9 short-answer questions, priced as marked. The maximum score is 100. When you have finished, sign the pledge at the bottom of this

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

CS 2604 Minor Project 3 DRAFT Summer 2000

CS 2604 Minor Project 3 DRAFT Summer 2000 Simple Hash Table For this project you will implement a simple hash table using closed addressing and a probe function. The hash table will be used here to store structured records, and it should be implemented

More information

CS 2604 Minor Project 1 Summer 2000

CS 2604 Minor Project 1 Summer 2000 RPN Calculator For this project, you will design and implement a simple integer calculator, which interprets reverse Polish notation (RPN) expressions. There is no graphical interface. Calculator input

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

CS 3114 Data Structures and Algorithms DRAFT Project 2: BST Generic

CS 3114 Data Structures and Algorithms DRAFT Project 2: BST Generic Binary Search Tree This assignment involves implementing a standard binary search tree as a Java generic. The primary purpose of the assignment is to ensure that you have experience with some of the issues

More information

Pointer Accesses to Memory and Bitwise Manipulation

Pointer Accesses to Memory and Bitwise Manipulation C Programming Pointer Accesses to Memory and Bitwise Manipulation This assignment consists of two parts, the second extending the solution to the first. Q1 [80%] Accessing Data in Memory Here is a hexdump

More information

Pointer Accesses to Memory and Bitwise Manipulation

Pointer Accesses to Memory and Bitwise Manipulation C Programming Pointer Accesses to Memory and Bitwise Manipulation This assignment consists of implementing a function that can be executed in two modes, controlled by a switch specified by a parameter

More information

Computational Theory MAT542 (Computational Methods in Genomics) - Part 2 & 3 -

Computational Theory MAT542 (Computational Methods in Genomics) - Part 2 & 3 - Computational Theory MAT542 (Computational Methods in Genomics) - Part 2 & 3 - Benjamin King Mount Desert Island Biological Laboratory bking@mdibl.org Overview of 4 Lectures Introduction to Computation

More information

When we search a nucleic acid databases, there is no need for you to carry out your own six frame translation. Mascot always performs a 6 frame

When we search a nucleic acid databases, there is no need for you to carry out your own six frame translation. Mascot always performs a 6 frame 1 When we search a nucleic acid databases, there is no need for you to carry out your own six frame translation. Mascot always performs a 6 frame translation on the fly. That is, 3 reading frames from

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

BIFS 617 Dr. Alkharouf. Topics. Parsing GenBank Files. More regular expression modifiers. /m /s

BIFS 617 Dr. Alkharouf. Topics. Parsing GenBank Files. More regular expression modifiers. /m /s Parsing GenBank Files BIFS 617 Dr. Alkharouf 1 Parsing GenBank Files Topics More regular expression modifiers /m /s 2 1 Parsing GenBank Libraries Parsing = systematically taking apart some unstructured

More information

CS 3114 Data Structures and Algorithms READ THIS NOW!

CS 3114 Data Structures and Algorithms READ THIS NOW! READ THIS NOW! Print your name in the space provided below. There are 7 short-answer questions, priced as marked. The maximum score is 100. This examination is closed book and closed notes, aside from

More information

Bioinformatics resources for data management. Etienne de Villiers KEMRI-Wellcome Trust, Kilifi

Bioinformatics resources for data management. Etienne de Villiers KEMRI-Wellcome Trust, Kilifi Bioinformatics resources for data management Etienne de Villiers KEMRI-Wellcome Trust, Kilifi Typical Bioinformatic Project Pose Hypothesis Store data in local database Read Relevant Papers Retrieve data

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

Maciej Sobieraj. Lecture 1

Maciej Sobieraj. Lecture 1 Maciej Sobieraj Lecture 1 Outline 1. Introduction to computer programming 2. Advanced flow control and data aggregates Your first program First we need to define our expectations for the program. They

More information

Note: This is a miniassignment and the grading is automated. If you do not submit it correctly, you will receive at most half credit.

Note: This is a miniassignment and the grading is automated. If you do not submit it correctly, you will receive at most half credit. Com S 227 Fall 2018 Miniassignment 1 40 points Due Date: Friday, October 12, 11:59 pm (midnight) Late deadline (25% penalty): Monday, October 15, 11:59 pm General information This assignment is to be done

More information

Pointer Accesses to Memory and Bitwise Manipulation

Pointer Accesses to Memory and Bitwise Manipulation C Programming Pointer Accesses to Memory and Bitwise Manipulation This assignment consists of two parts, the second extending the solution to the first. Q1 [80%] Accessing Data in Memory Here is a hexdump

More information

Biostatistics and Bioinformatics Molecular Sequence Databases

Biostatistics and Bioinformatics Molecular Sequence Databases . 1 Description of Module Subject Name Paper Name Module Name/Title 13 03 Dr. Vijaya Khader Dr. MC Varadaraj 2 1. Objectives: In the present module, the students will learn about 1. Encoding linear sequences

More information

Note: This is a miniassignment and the grading is automated. If you do not submit it correctly, you will receive at most half credit.

Note: This is a miniassignment and the grading is automated. If you do not submit it correctly, you will receive at most half credit. Com S 227 Spring 2018 Miniassignment 1 40 points Due Date: Thursday, March 8, 11:59 pm (midnight) Late deadline (25% penalty): Friday, March 9, 11:59 pm General information This assignment is to be done

More information

Here is a C function that will print a selected block of bytes from such a memory block, using an array-based view of the necessary logic:

Here is a C function that will print a selected block of bytes from such a memory block, using an array-based view of the necessary logic: Pointer Manipulations Pointer Casts and Data Accesses Viewing Memory The contents of a block of memory may be viewed as a collection of hex nybbles indicating the contents of the byte in the memory region;

More information

The Use of WWW in Biological Research

The Use of WWW in Biological Research The Use of WWW in Biological Research Introduction R.Doelz, Biocomputing Basel T.Etzold, EMBL Heidelberg Information in Biology grows rapidly. Initially, biological retrieval systems used conventional

More information

COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager

COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager Points Possible: 100 Submission via Canvas No collaboration among groups. Students in one group should NOT share any project

More information

2. Take a few minutes to look around the site. The goal is to familiarize yourself with a few key components of the NCBI.

2. Take a few minutes to look around the site. The goal is to familiarize yourself with a few key components of the NCBI. 2 Navigating the NCBI Instructions Aim: To become familiar with the resources available at the National Center for Bioinformatics (NCBI) and the search engine Entrez. Instructions: Write the answers to

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

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this programming assignment is to give you some experience

More information

12. Key features involved in building biological 3databases

12. Key features involved in building biological 3databases 12. Key features involved in building biological 3databases Central to the discipline of bioinformatics is the need to store biological information systematically in structured databases. The first databases

More information

Programming Project 5: NYPD Motor Vehicle Collisions Analysis

Programming Project 5: NYPD Motor Vehicle Collisions Analysis : NYPD Motor Vehicle Collisions Analysis Due date: Dec. 7, 11:55PM EST. You may discuss any of the assignments with your classmates and tutors (or anyone else) but all work for all assignments must be

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

Fundamental Concepts: array of structures, string objects, searching and sorting. Static Inventory Maintenance Program

Fundamental Concepts: array of structures, string objects, searching and sorting. Static Inventory Maintenance Program Fundamental Concepts: array of structures, string objects, searching and sorting The point of this assignment is to validate your understanding of the basic concepts presented in CS 1044. If you have much

More information

CS 1803 Pair Homework 4 Greedy Scheduler (Part I) Due: Wednesday, September 29th, before 6 PM Out of 100 points

CS 1803 Pair Homework 4 Greedy Scheduler (Part I) Due: Wednesday, September 29th, before 6 PM Out of 100 points CS 1803 Pair Homework 4 Greedy Scheduler (Part I) Due: Wednesday, September 29th, before 6 PM Out of 100 points Files to submit: 1. HW4.py This is a PAIR PROGRAMMING Assignment: Work with your partner!

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

INTRODUCTION TO BIOINFORMATICS

INTRODUCTION TO BIOINFORMATICS Molecular Biology-2017 1 INTRODUCTION TO BIOINFORMATICS In this section, we want to provide a simple introduction to using the web site of the National Center for Biotechnology Information NCBI) to obtain

More information

EE 109 Lab 8a Conversion Experience

EE 109 Lab 8a Conversion Experience EE 109 Lab 8a Conversion Experience 1 Introduction In this lab you will write a small program to convert a string of digits representing a number in some other base (between 2 and 10) to decimal. The user

More information

User s Guide. Using the R-Peridot Graphical User Interface (GUI) on Windows and GNU/Linux Systems

User s Guide. Using the R-Peridot Graphical User Interface (GUI) on Windows and GNU/Linux Systems User s Guide Using the R-Peridot Graphical User Interface (GUI) on Windows and GNU/Linux Systems Pitágoras Alves 01/06/2018 Natal-RN, Brazil Index 1. The R Environment Manager...

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

File Navigation and Text Parsing in Java

File Navigation and Text Parsing in Java File Navigation and Text Parsing in Java This assignment involves implementing a smallish Java program that performs some basic file parsing and navigation tasks, and parsing of character strings. 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

ECSE 321 Assignment 2

ECSE 321 Assignment 2 ECSE 321 Assignment 2 Instructions: This assignment is worth a total of 40 marks. The assignment is due by noon (12pm) on Friday, April 5th 2013. The preferred method of submission is to submit a written

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

org.hs.ipi.db November 7, 2017 annotation data package

org.hs.ipi.db November 7, 2017 annotation data package org.hs.ipi.db November 7, 2017 org.hs.ipi.db annotation data package Welcome to the org.hs.ipi.db annotation Package. The annotation package was built using a downloadable R package - PAnnBuilder (download

More information

Microsoft Excel Level 2

Microsoft Excel Level 2 Microsoft Excel Level 2 Table of Contents Chapter 1 Working with Excel Templates... 5 What is a Template?... 5 I. Opening a Template... 5 II. Using a Template... 5 III. Creating a Template... 6 Chapter

More information

Prelim 2 Solution. CS 2110, April 26, 2016, 5:30 PM

Prelim 2 Solution. CS 2110, April 26, 2016, 5:30 PM Prelim Solution CS 110, April 6, 016, 5:0 PM 1 5 Total Question True/False Complexity Heaps Trees Graphs Max 10 0 0 0 0 100 Score Grader The exam is closed book and closed notes. Do not begin until instructed.

More information

LESSON 1. A C program is constructed as a sequence of characters. Among the characters that can be used in a program are:

LESSON 1. A C program is constructed as a sequence of characters. Among the characters that can be used in a program are: LESSON 1 FUNDAMENTALS OF C The purpose of this lesson is to explain the fundamental elements of the C programming language. C like other languages has all alphabet and rules for putting together words

More information

Remaining Enhanced Labs

Remaining Enhanced Labs Here are some announcements regarding the end of the semester, and the specifications for the last Enhanced Labs. Don t forget that you need to take the Common Final Examination on Saturday, May 5, from

More information

CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square)

CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) Introduction This semester, through a project split into 3 phases, we are going

More information

Important Project Dates

Important Project Dates Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Fall 2002 Handout 4 Project Overview Wednesday, September 4 This is an overview of the course project

More information

Overview. Exercise 0: Implementing a Client. Setup and Preparation

Overview. Exercise 0: Implementing a Client. Setup and Preparation Overview This Lab assignment is similar to the previous one, in that you will be implementing a simple clientserver protocol. There are several differences, however. This time you will use the SOCK_DGRAM

More information

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 3: SEP. 13TH INSTRUCTOR: JIAYIN WANG

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 3: SEP. 13TH INSTRUCTOR: JIAYIN WANG CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 3: SEP. 13TH INSTRUCTOR: JIAYIN WANG 1 Notice Reading Assignment Chapter 1: Introduction to Java Programming Homework 1 It is due this coming Sunday

More information

1. HPC & I/O 2. BioPerl

1. HPC & I/O 2. BioPerl 1. HPC & I/O 2. BioPerl A simplified picture of the system User machines Login server(s) jhpce01.jhsph.edu jhpce02.jhsph.edu 72 nodes ~3000 cores compute farm direct attached storage Research network

More information

NUMERIC SYSTEMS USED IN NETWORKING

NUMERIC SYSTEMS USED IN NETWORKING NUMERIC SYSTEMS USED IN NETWORKING Decimal - Binary - Hexadecimal Table ASCII Code 128 64 32 16 8 4 2 1 The Letter A 0 1 0 0 0 0 0 1 Data Units Base 10 Numbering System Base 2 Numbering System Decimal

More information

CIS-331 Exam 2 Fall 2015 Total of 105 Points Version 1

CIS-331 Exam 2 Fall 2015 Total of 105 Points Version 1 Version 1 1. (20 Points) Given the class A network address 117.0.0.0 will be divided into multiple subnets. a. (5 Points) How many bits will be necessary to address 4,000 subnets? b. (5 Points) What is

More information

Pointer Casts and Data Accesses

Pointer Casts and Data Accesses C Programming Pointer Casts and Data Accesses For this assignment, you will implement a C function similar to printf(). While implementing the function you will encounter pointers, strings, and bit-wise

More information

CS 2150 (fall 2010) Midterm 2

CS 2150 (fall 2010) Midterm 2 Name: Userid: CS 2150 (fall 2010) Midterm 2 You MUST write your name and e-mail ID on EACH page and bubble in your userid at the bottom of EACH page, including this page. If you are still writing when

More information

CMSC 201 Spring 2017 Project 1 Number Classifier

CMSC 201 Spring 2017 Project 1 Number Classifier CMSC 201 Spring 2017 Project 1 Number Classifier Assignment: Project 1 Number Classifier Due Date: Design Document: Saturday, March 11th, 2017 by 8:59:59 PM Project: Friday, March 17th, 2017 by 8:59:59

More information

CS 2505 Fall 2013 Data Lab: Manipulating Bits Assigned: November 20 Due: Friday December 13, 11:59PM Ends: Friday December 13, 11:59PM

CS 2505 Fall 2013 Data Lab: Manipulating Bits Assigned: November 20 Due: Friday December 13, 11:59PM Ends: Friday December 13, 11:59PM CS 2505 Fall 2013 Data Lab: Manipulating Bits Assigned: November 20 Due: Friday December 13, 11:59PM Ends: Friday December 13, 11:59PM 1 Introduction The purpose of this assignment is to become more familiar

More information

Assignment 7: Single-cell genomics. Bio /02/2018

Assignment 7: Single-cell genomics. Bio /02/2018 Assignment 7: Single-cell genomics Bio5488 03/02/2018 Assignment 7: Single-cell genomics Input Genotypes called from several exome-sequencing datasets derived from either bulk or small pools of cells (VCF

More information

Systems/DBG Debugger Version 2.20

Systems/DBG Debugger Version 2.20 Systems/DBG Debugger Version 2.20 Copyright c 2018, Dignus, LLC Systems/DBG Debugger Version 2.20 i Copyright c 2018 Dignus LLC, 8378 Six Forks Road Suite 203, Raleigh NC, 27615. World rights reserved.

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

ORG ; TWO. Assembly Language Programming

ORG ; TWO. Assembly Language Programming Dec 2 Hex 2 Bin 00000010 ORG ; TWO Assembly Language Programming OBJECTIVES this chapter enables the student to: Explain the difference between Assembly language instructions and pseudo-instructions. Identify

More information

CS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA

CS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA CS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA Code Due: Tuesday, November 7, 2017, by 11:59 p.m. The Assignment The purpose of this assignment is to give you more

More information

Intel Architecture Segment:Offset Memory Addressing

Intel Architecture Segment:Offset Memory Addressing Name: Date: Lab Section: Lab partner s name: Lab PC Number: Objectives: Understanding video memory and character mapping of CGA characters in ROM BIOS, using the DOS debug command. Writing simple assembly-language

More information

Project 3 Due October 21, 2015, 11:59:59pm

Project 3 Due October 21, 2015, 11:59:59pm Project 3 Due October 21, 2015, 11:59:59pm 1 Introduction In this project, you will implement RubeVM, a virtual machine for a simple bytecode language. Later in the semester, you will compile Rube (a simplified

More information

Geneious 5.6 Quickstart Manual. Biomatters Ltd

Geneious 5.6 Quickstart Manual. Biomatters Ltd Geneious 5.6 Quickstart Manual Biomatters Ltd October 15, 2012 2 Introduction This quickstart manual will guide you through the features of Geneious 5.6 s interface and help you orient yourself. You should

More information

Hash Table and Hashing

Hash Table and Hashing Hash Table and Hashing The tree structures discussed so far assume that we can only work with the input keys by comparing them. No other operation is considered. In practice, it is often true that an input

More information

CpSc 1011 Lab 5 Conditional Statements, Loops, ASCII code, and Redirecting Input Characters and Hurricanes

CpSc 1011 Lab 5 Conditional Statements, Loops, ASCII code, and Redirecting Input Characters and Hurricanes CpSc 1011 Lab 5 Conditional Statements, Loops, ASCII code, and Redirecting Input Characters and Hurricanes Overview For this lab, you will use: one or more of the conditional statements explained below

More information

Ascii Art. CS 1301 Individual Homework 7 Ascii Art Due: Monday April 4 th, before 11:55pm Out of 100 points

Ascii Art. CS 1301 Individual Homework 7 Ascii Art Due: Monday April 4 th, before 11:55pm Out of 100 points CS 1301 Individual Homework 7 Ascii Art Due: Monday April 4 th, before 11:55pm Out of 100 points Files to submit: 1. HW7.py THIS IS AN INDIVIDUAL ASSIGNMENT! You should work individually on this assignment.

More information

lecture23: Hash Tables

lecture23: Hash Tables lecture23: Largely based on slides by Cinda Heeren CS 225 UIUC 18th July, 2013 Announcements mp6.1 extra credit due tomorrow tonight (7/19) lab avl due tonight mp6 due Monday (7/22) Hash tables A hash

More information

Do not start the test until instructed to do so!

Do not start the test until instructed to do so! Instructions: Print your name in the space provided below. This examination is closed book and closed notes, aside from the permitted one-page formula sheet. No calculators or other electronic devices

More information

Decision Logic: if, if else, switch, Boolean conditions and variables

Decision Logic: if, if else, switch, Boolean conditions and variables CS 1044 roject 4 Summer I 2007 Decision Logic: if, if else, switch, Boolean conditions and variables This programming assignment uses many of the ideas presented in sections 3 through 5 of the course notes,

More information

Compilers Project 3: Semantic Analyzer

Compilers Project 3: Semantic Analyzer Compilers Project 3: Semantic Analyzer CSE 40243 Due April 11, 2006 Updated March 14, 2006 Overview Your compiler is halfway done. It now can both recognize individual elements of the language (scan) and

More information

Assignment 5: MyString COP3330 Fall 2017

Assignment 5: MyString COP3330 Fall 2017 Assignment 5: MyString COP3330 Fall 2017 Due: Wednesday, November 15, 2017 at 11:59 PM Objective This assignment will provide experience in managing dynamic memory allocation inside a class as well as

More information

UNIVERSAL SERIAL INTERFACE

UNIVERSAL SERIAL INTERFACE UNIVERSAL SERIAL INTERFACE Coastal Environmental Systems Application Note ZENO_MANUAL_USI.DOC 4/21 UNIVERSAL SERIAL INTERFACE Overview The Universal Serial Interface lets you program your ZENO to communicate

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

Problem Set 1 Due: 11:59pm Wednesday, February 7

Problem Set 1 Due: 11:59pm Wednesday, February 7 CS251 Programming Languages Handout # 13 Prof. Lyn Turbak January 31, 2007 Wellesley College Reading: Problem Set 1 Due: 11:59pm Wednesday, February 7 Handouts #1 #12 (only Chapters 1 5 of Handout #9 =

More information

PR quadtree. public class prquadtree< T extends Compare2D<? super T> > {

PR quadtree. public class prquadtree< T extends Compare2D<? super T> > { PR quadtree This assignment involves implementing a point-region quadtree (specifically the PR quadtree as described in section 3.2 of Samet s paper) as a Java generic. Because this assignment will be

More information

Project 1 Balanced binary

Project 1 Balanced binary CMSC262 DS/Alg Applied Blaheta Project 1 Balanced binary Due: 7 September 2017 You saw basic binary search trees in 162, and may remember that their weakness is that in the worst case they behave like

More information

CS 118 Project Phase 2 P2P Networking

CS 118 Project Phase 2 P2P Networking CS 118 Project Phase 2 P2P Networking Due Monday, March 15 th at 11:59pm Boelter Hall 4428, Box D3/C4 and via Electronic Submission Overview In this phase you will extend your work from Phase 1 to create

More information

Project 1. due date Sunday July 8, 2018, 12:00 noon

Project 1. due date Sunday July 8, 2018, 12:00 noon Queens College, CUNY, Department of Computer Science Object-oriented programming in C++ CSCI 211 / 611 Summer 2018 Instructor: Dr. Sateesh Mane c Sateesh R. Mane 2018 Project 1 due date Sunday July 8,

More information

ECHO Process Instrumentation, Inc. Modbus RS485 Module. Operating Instructions. Version 1.0 June 2010

ECHO Process Instrumentation, Inc. Modbus RS485 Module. Operating Instructions. Version 1.0 June 2010 ECHO Process Instrumentation, Inc. Modbus RS485 Module Operating Instructions Version 1.0 June 2010 ECHO Process Instrumentation, Inc. PO Box 800 Shalimar, FL 32579 PH: 850-609-1300 FX: 850-651-4777 EM:

More information

CS447-Network and Data Communication Project #2 Specification, Fall 2017 Due December 5, 2017

CS447-Network and Data Communication Project #2 Specification, Fall 2017 Due December 5, 2017 CS447-Network and Data Communication Project #2 Specification, Fall 2017 Due December 5, 2017 1. Introduction In this project, we will develop a Sliding-Window flow-control (SWFC) simulator using C/C++

More information