Process Coding Sequenced Object Oriented Lab Lesson Plan Subject Area: AP Computer Science A Integrated Subjects: Biology (Genetics) Introduction: Students will complete a Java OOP program that consists of six classes which represent a Gene, a Transcript, and Dictionaries. The Dictionary classes can be used for DNA to RNA transcription and RNA to Protein translation. The Transcript class will contain methods to transcript a DNA coding sequence into an mRNA sequence and to translate an mRNA sequence into a protein. The Gene class contains Transcript objects. Activities Teacher introduction to the Lab (Biology and Dictionary Data Structure): 30 minutes Student Internet research of DNA-RNA complementary bases used in transcription and codonamino acid relationships used in translation: 30 minutes Students work on lab (programming assignment): 200 minutes Teacher class discussions as necessary: 10 minutes Materials Process Coding Sequences Assignment.doc - the student assignment. Process Coding Sequences Javadocs folder - the Java Documentation for the assignment. index.html is the top-level page. Process Coding Sequences Assignment Student folder - the student starter code (includes a JCreator project) Process Coding Sequences Assignment Teacher folder - the completed project Activity Overview 1. Teacher introduces the Lab which includes o Discussion of the purpose, goals, and work products of the lab. o Review of the genetics concepts and definitions involved in DNA coding sequences, mRNA, proteins, transcription, and translation. o Introduction to the Dictionary Data Structure. 2. Student use the Internet to research DNA-RNA complementary bases used in transcription, and codon-amino acid relationships used in translation. 3. Students work on lab (programming assignment). Each student is responsible for completing his own assignment. Students may consult, but may not copy. 4. Teacher will circulate in the classroom as students work and o help students as appropriate. o make sure that students stay engaged. o o ask questions to assess understanding. discuss common difficulties with the class as a whole. Assessment Pre-assessment: none Summative assessment: Teacher will observe student engagement during the programming. Post-assessment: Completed programming assignments will be evaluated for adherence to the requirements specified in the assignment (90%) and programming style based on Checkstyle results (10%). Resources Introduction to Genetics: http://en.wikipedia.org/wiki/Introduction_to_genetics DNA: http://en.wikipedia.org/wiki/DNA RNA: http://en.wikipedia.org/wiki/RNA Base Pairs: http://en.wikipedia.org/wiki/Base_pair Codon to Amino Acid Table: http://www.biogem.org/codon.jpg DNA Transcription: http://library.thinkquest.org/C004535/dna_transcription.html RNA Translation: http://library.thinkquest.org/C004535/rna_translation.html Modifications: Make Dictionary a concrete class. Reduce the coding requirements be including more pre-written code in the student starter project. Extensions: The Dictionary class can be expanded in various ways: o Methods could be added to make it more general including methods to add entries, remove entries, and determine if the entries include a specific key. o Entries could be maintained in sorted order. DNA Coding sequences and mRNA could be displayed in groups or three (codons). File Input/Output requirements have been minimized in this assignment. Students could write code to process the chromosome21.txt file directly. A GUI (Graphical User Interface) could be added to improve the user interface to the assignment. Topics: (from the AP Computer Science A Course Description Topic Outline) I. Object-Oriented Program Design A. Program design 1. Read and understand a problem's description, purpose, and goals. 2. Apply data abstraction and encapsulation. 3. Read and understand class specifications and relationships among the classes ("is-a", "has-a" relationships). 4. Understand and implement a given class hierarchy. B. Class design 5. Extend a given class using inheritance. II. Program Implementation A. Implementation techniques 1. Methodology a. Object-oriented development c. Encapsulation and information hiding d. Procedural abstraction B. Programming constructs 1. Primitive types vs. objects 2. Declaration b. Variable declarations c. Class declarations e. Method declarations f. Parameter declarations 3. Console output (System.out.print/println) 4. Control a. Methods b. Sequential c. Conditional d. Iteration C. Java library classes 1. included in the A-level AP Java Subset (String, List, ArrayList) III. Program Analysis A. Testing 1. Test classes and libraries in isolation 3. Perform integration testing B. Debugging 2. Identify and correct errors 3. Techniques: use a debugger, add extra output statements, hand-trace code C. Understand and modify existing code F. Reason about programs 1. Pre- and post-conditions IV. Standard Data Structures A. Simple data types (int, boolean, double) B. Classes C. One-dimensional arrays V. Standard Algorithms A. Operations on data structures listed above 1. Traversals 2. Insertion B. Searching 1. Sequential