Java: An Introduction to Problem Solving & Programming. Sixth Edition, Walter ...
Head First Java (2nd Edition), Kathy Sierra and Bert Bates. O'Reilly Press ...
BMI 540: Computer Science with Java Programming Oregon Health & Science University Fall 2013
General Information Dates: September 30, 2013 – December 13, 2013 Instructor: Justin Fletcher, PhD Email:
[email protected] Office: BICC 405 Required text: Java: An Introduction to Problem Solving & Programming. Sixth Edition, Walter Savitch, Pearson/Prentice‐Hall, 2011. *Note: While it’s preferable that you use the 6th edition, the 5th edition is acceptable for use. The figure numbers and page numbers will not match those in the lectures, however. Additional optional material: Computer Science: An Overview. Eleventh Edition, J. Glenn Brookshear, Addison‐Wesley, 2011. Technology in Action, Complete Version. Tenth Edition, Alan Evans, Kendall Martin, Mary Anne Poatsy, Prentice‐Hall, 2014. Head First Java (2nd Edition), Kathy Sierra and Bert Bates. O’Reilly Press, 2005. Class times and location: On campus: Wednesdays and Fridays, 9 – 10:30 am, BICC 124 Distance: Course material posted each Wednesday.
Overview BMI 540 provides an introduction to computer science and programming demonstrated through the Java programming language. In addition, the course includes the presentation of computer science principles, including computer representation and storage of data, structured programming, object‐oriented programming, and algorithms. The goal of this class is to expose Medical Informatics students to software development with an object oriented programming language so they can communicate effectively with software developers and/or continue further with learning software programming and development.
Prerequisites Students should have knowledge of basic structured programming techniques prior to admission to the class; students should have completed at least one prior college level course in computer programming, such as C, Perl, Visual Basic, C++, or beginning Java. In addition, students must pass a pretest before enrolling in the course OR have completed the Intro to Programming online course at OHSU.
Goals of the Course The main goal of BMI 540 is to introduce students to the fundamentals of computer science and object‐oriented programming in Java. Specific topics for BMI 540 include: The history of computing Computer representation and manipulation of data Operating system basics Algorithms, iterative and recursive structures, efficiency and correctness Fundamental data structures Fundamental data types, such as strings, integers, floats, etc. Control structures, such as if‐then, while, etc. Classes and methods Program modularity, step‐wise refinement and divide‐and‐conquer approaches to problem solving Simple I/O from files. Introduction to other areas of computer science that are important to medical informatics
Computing Environment Students will be using the eclipse IDE on their personal Macs and/or PCs; more details will be provided during the course. Instructions for turning in your work will be provided with each exercise and must be followed exactly for full credit.
Grading The class will require completion of weekly homework assignments and two examinations. The final grade will be determined with an approximate weighting of Participation 10% Homework 40% Quizzes 20% Final Exam 30%
Participation is defined as class attendance for on campus students and participation in the discussion board for distance students. Homework assignments must be turned in by the due date. Only assignments that are correct and complete upon submission by the original due date will receive full credit. Learning to program can be very time consuming and frustrating, but the only way to learn is by doing. It is in your best interests to keep up with the homework assignments and the reading, as it is easy to get hopelessly behind. To encourage everyone to keep up, assignments that are not submitted on time will be penalized. Late assignments will be downgraded up to 10% per day. Assignments that are more than one week late will not be accepted. Graduate Studies in the OHSU School of Medicine is committed to providing grades to students in a timely manner. Course instructors will provide students with information in writing at the beginning of each course that describes the grading policies and procedures including but not limited to evaluation criteria, expected time needed to grade individual student examinations and type of feedback they will provide. Class grades are due to the Registrar by the Friday following the week of finals. However, on those occasions when a grade has not been submitted by the deadline, the following procedure shall be followed: 1) The Department1 /Program Coordinator2 will immediately contact the Instructor requesting the missing grade, with a copy to the Program Director and Registrar. 2) If the grade is still overdue by the end of next week, the Department1 /Program Coordinator2 will email the Department Chair directly, with a copy to the Instructor and Program Director requesting resolution of the missing grade. 3) If, after an additional week the grade is still outstanding, the student or Department1 /Program Coordinator2 may petition the Office of Graduate students for final resolution. 1 2
For courses that are run by a specific department. For the conjoined courses (course number is preceded by CON_ that are run by Graduate Studies.
Academic Honesty Academic honesty is required in order to pass this course. Students are encouraged to help each other; nevertheless, all quizzes, written assignments and presentations must be the work of the individual student. Literature and resources (including Internet resources) employed in fulfilling assignments must be cited. See http://www.ohsu.edu/xd/education/library/research‐ assistance/plagiarism.cfm?WT_rank=1# for information on code of conduct for OHSU and http://www.ohsu.edu/xd/education/teaching‐and‐learning‐center/for‐students/index.cfm for more information on citing sources and recognizing plagiarism. It is acceptable and even encouraged to discuss general programming issues and computer science concepts. However, there should be no sharing of actual code for the homework exercises. Learning to write and debug your own code is an essential part of this course.
Likewise, students are expected not to collaborate on the answers to homework problems that do not require programming, although discussion of the concepts involved and working of similar problems together is permitted. In an effort to uphold the principles and practice of academic honesty, OHSU may use originality checking systems such as Turnitin to compare a student’s submitted work against multiple sources.
COPYRIGHT INFORMATION Every reasonable effort has been made to protect the copyright requirements of materials used in this course. Class participants are warned not to copy, audio, or videotape in violation of copyright laws. Journal articles will be kept on reserve at the library or online for student access. Copyright law does allow for making one personal copy of each article from the original article. This limit also applies to electronic sources. To comply with the fair use fair use doctrine of the US copyright law, Sakai course sites close three weeks after grades are posted with the Registrar. Please be sure to download all course material you wish to keep before this time as you will have no further access to your courses.
USE OF SAKAI This course will have an online component, which can be accessed through Sakai, OHSU’s online course management system. For any technical questions or if you need help logging in, please contact the Sakai Help Desk. Hours: Sakai Help Desk is available Mon – Fri, 8 am – 10 pm and weekends and holidays 12 pm – 5 pm Contact Information: (Local) 503‐494‐7074 (4‐7074 on campus) (Toll‐free) 877‐972‐5249 (Web) http://atech.ohsu.edu/help (Email)
[email protected]
Student Access OHSU is committed to providing equal access to qualified students with disabilities. Student Access determines and facilitates reasonable accommodations, including academic adjustments and auxiliary aids, for students with documented disabilities. A qualified student with a disability is a person who meets the academic and technical standards requisite to admission or participation in a particular program of study. As defined by the Americans with Disability Act (ADA), a person with a disability has a physical or mental impairment that substantially limits one or more major life activities of the individual. This may include, but is not limited to, physical conditions, chronic health issues, sensory impairments, mental health conditions, learning disabilities and ADHD. Student Access works with students with disabilities from all of OHSU’s educational programs and at each campus.
Each school has an assigned Program Accommodation Liaison (PAL), who acts as an “in‐house” resource for students and faculty concerning access issues for students with disabilities. The PAL works in collaboration with Student Access to implement recommended accommodations for students with disabilities. It is recommended that you contact Student Access to consult about possible accommodations if you a) received disability accommodations in the past, b) begin experiencing academic difficulties, and/or c) are given a new diagnosis from your healthcare provider. Learn more about Student Access: Phone: 503 494‐0082 Email:
[email protected] Website: www.ohsu.edu/student‐access
Schedule of Topics (tentative) Week
1
Topic
2
3
4
5
6
Readings Required: Savitch, Ch. 1 Intro to Computers and Java Recommended: The History of Computing Brookshear, Ch. 0; Evans, Ch. 1‐2 Required: Introduction to Object Oriented Savitch, Ch. 2, 5 programming with Java Recommended: Brookshear, Ch. Java Primitive Types, Strings and 6.5 Console I/O Required: Savitch, Ch. 3, 4 Flow of Control in Java Recommended: Data Representation and Manipulation Brookshear, Ch. 1, 2 Arrays, Debugging in Java Required: Savitch, Ch. 7.1 Quiz #1 Required: OOP: Classes, Objects, Methods, Scope, Savitch, Ch. 5, 6 Constructors, Overloading Recommended: Operating Systems Brookshear, Ch. 3; Evans, Ch. 5 Required: Savitch, Ch. 8 Inheritance Recommended: Brookshear, Ch. Algorithm Efficiency 5
Homework
Install eclipse and write a simple program
Simple program with two classes
Program using Java control structures, constants, variables; data representation exercises
Write a multiple class program with arrays; OS concepts
Write a multiple class program with inheritance; algorithm efficiency concepts
7
Abstract Classes, Dynamic Binding & Polymorphism Building a Program in Java Quiz #2
8
Exception Handling, File I/O Data Structures
9
Java Data Structures Thanksgiving holiday
10
GUIs & Java Swing Optional: Databases and Networking
11
Final Examination
Required: Savitch, Ch. 9, 10 Program with I/O from files; data structure Recommended: concepts Brookshear, Ch. 8 Required: Program using linked list Savitch, Ch. 12 or tree structure Recommended: Savitch, Ch. 15 Recommended: Brookshear, Ch. 4 & 9; Evans, Ch. 11‐12