Documente Academic
Documente Profesional
Documente Cultură
Course Number: Course Title: Credit Hours: Instructor: CE/CS 1337.002 Computer Science I 3 Cort Steinhorst Office: ECSS 3.609 Office Phone: 972-883-6353 E-Mail: cort.steinhorst@utdallas.edu Web Site: www.utdallas.edu/~csteinh Tuesday, 2:30 P.M. 3:45 P.M. Thursday, 2:30 P.M. 3:45 P.M. Other hours by appointment.
Office Hours:
Prequisites: CS 1336 or equivalent programming experience. (3-0) S Catalog Description: Introduction to object-oriented software analysis, design, and development. Classes and objects. Object composition and polymorphism. Sorting, searching, recursion. Strings using core classes. Inheritance and interfaces. Graphic User Interfaces. Includes a comprehensive programming project. Course Expectations: After successful completion of this course, the student should be able to:
1. 2. 3. 4. 5. 6.
develop object oriented software solutions express multi-class relationships among objects implement graphical user interfaces develop event driven programs implement algorithms to search and sort objects develop recursive programs
Textbook: Introduction to JAVA Programming Comprehensive Version, Eighth Edition, by Y. Daniel Liang, Prentice Hall
Course Syllabus
Page 1
Assignments: Program #1 Purpose: Demonstrate the ability to create and execute a JAVA program using moderately complex control structures. Assignment: Write a program that creates a loan amortization table. The user of the program will supply values for Initial Loan Principal, Annual Percentage Rate and Monthly Payment. The program should print out the appropriate amortization table including the Number of Monthly Payments and the Total Interest Paid for the life of the loan. The program should allow multiple runs of the table process and should allow the user to compare runs in a tabular format (at least 4 different versions of the amortization table) at the end of the program execution. Key data from each amortization table that should be displayed in the comparison table are Initial Principle, Initial Payment, Annual Percentage Rate, Total Number of Payments and Total Interest Paid. Document the correctness of your program by submitting a test plan for your program along with the normal documentation required. Be sure to include the test cases that you employed to validate the correctness of your program. Program #2 Purpose: Demonstrate the ability to create and execute a JAVA program that utilizes string manipulation to solve a daily life problem. Assignment: Write a program that will accept ten (or more) names (first and last names) and associated birth-date. Your program should ask the user for how many people s/he wants to enter and then read the names (first and last) and the corresponding birth-date. The birth-date must be entered in the following format: MM/DD/YYYY. Your program should then use a menu that allows the user to display, search and exit. Display should display the list of the entries, sorted by last name, first name, or birth-date as requested by the user. Search should search for a specific entry by a specific field (last name, first name or birth-date) as requested by the user. Exit should terminate the program when the user selects exit from the menu. Program #3 Purpose: Demonstrate the ability to create and execute a JAVA program that creates a multi-class relationship among classes. Assignment: Write a program that consists of the classes listed below. Player Class: The Player Class consists of at least two elements -- the player name and a collection of scores for games. The score attribute is not used in Program #3 (and may be omitted in Program #3) but will be needed in Program #4. Include in the class appropriate accessor and mutator methods for each element in the class. You may have other attributes if needed. Team Class: The Team class consists of at least 2 elements -- the name of the team and a collection of players from the Player class. Include in the class appropriate accessor and mutator methods for each element in the class. You may have other attributes if needed. Input3 class: The Input3 class is provided for you. The Input3 class supplies data for your program. The Input3 class has a public method, called getNextString, which returns a string with the input for your program, one after the other. You must use this class to get the data for your program. See Input3.java on eLearning to understand the class construction. Your program should be written in such a manner that the grader could utilize an Input3 class with different numbers of teams and players and still give correct output according to the data supplied.
Course Syllabus
Page 2
Your program should display the roster of each team in alphabetical order by last name.
Program #4 Purpose: Demonstrate the ability to create and execute a JAVA program that creates a multi-class relationship among classes. Assignment: Enhance Program #3 to include the Game class listed below. Game Class: The Game Class consists of at least 3 elements the names of two teams and an integer number which identifies the game. Include in the class appropriate methods to show the output requested below. You may have other attributes if needed. Input4 class: The Input4 class is provided for you. The Input4 class supplies data for your program. The Input4 class has a public method, called getNextString, which returns a string with the input for your program, one after the other. You must use this class to get the data for your program. See Input4.java on eLearning to understand the class construction. Your program should be written in such a manner that the grader could utilize an Input4 class with different numbers of teams, players and games and still give correct output according to the data supplied. Your program should display the following information: For each game: Display the final score for the game. Display the name of the highest scoring player(s) in the game, the score and the name of his team. For each team: Display the roster of each team in alphabetical order by last name with the average score of each player for the season. Display the average score for the season against each of the two opponent teams. Program #5 Purpose: Demonstrate the ability to write a complex Java application using Graphical User Interfaces. Assignment: Form a three to four member programming team from students in your class. Write a program to register students for a college. Students have names, addresses and courses. Implement the interface class RegisterStudent. RegisterStudent has one method, public boolean register, which returns the boolean value of true or false if the student is successfully registered for the course. Graduate students can only register for graduate level courses, with a maximum course load of 6 credit hours, while undergraduate students can only register for undergraduate level courses with a maximum course load of 12 credit hours. Courses have a course number, credit hours and a minimum and maximum enrollment. The system should graphically display a sorted list of registered courses for a student and/or a roster for each current course with the names of the students enrolled in sorted order by last name. Demonstrate the correct operation of your program by creating a driver program to load the student data base and the course data base from data your group has created. The grader can then select students and register them for courses. Once the grader has enrolled students into courses, the grader can request the report for a student or for a course.
Course Syllabus
Page 3
Academic Calendar:
Class Date
1 2 3 4 5 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Thursday, August 25 Tuesday, August 30 Thursday, September 1 Tuesday, September 6 Thursday, September 8 Tuesday, September 13 Thursday, September 15 Tuesday, September 20 Thursday, September 22 Tuesday, September 27 Thursday, September 29 Tuesday, October 4 Thursday, October 6 Tuesday, October 11 Thursday, October 13 Tuesday, October 18 Thursday, October 20 Tuesday, October 25 Thursday, October 27 Tuesday, November 1 Thursday, November 3 Tuesday, November 8 Thursday, November 10 Tuesday, November 15 Thursday, November 17 Tuesday, November 22 Thursday, November 24 Tuesday, November 29 Thursday, December 1 Tuesday, December 6
Class Activity
Review of Syllabus Programming Review Software Testing Labor Day Holiday Arrays Searching and Sorting Strings Objects Objects continued Objects continued Objects continued Exam Review Exam 1 Ch 6, 7, 8 and 9 Inheritance and Polymorphism Abstract Classes and Interfaces Exception Handling Text and Binary I/O Binary I/O continued Exam Review Exam 2 Ch 10, 11, 13, and 14 Graphical User Interfaces Event-Driven Programming GUI continued Program 5 Group Meetings Program 5 Group Meetings Recursion Thanksgiving Holiday Program 5 Group Meetings Exam Review Exam 3 Ch 12, 16, 19 & 20
Assignment
Confirm access to eLearning Program 1
Read Chapter 6 Read Chapter 7, Program 1 due Read Chapter 9, Program 2 Read Chapter 8 Read Chapter 10, Program 2 Due Program 3
Read Chapter 11 Read Chapter 14 Read Chapter 13, Program 3 due Read Chapter 9 and 19, Program 4
Read Chapter 12 Read Chapter 16, Program 4 due Read Chapter 17 Program 5 Read Chapter 20
Program 5 due
Course Requirements: There will be regularly assigned reading and homework problems. The homework problems will require the student to spend time programming a computer. Programming assignments should be turned in by means of eLearning. Assignment files contain: A text copy of all source code (.java). A text copy of your algorithm(s) and UML diagrams (.txt, .doc or .jpg).
Course Syllabus
Page 4
Programming assignments will be graded on a 100 point basis, utilizing the following criteria: Max Score Partitioning Organization Program Design Source Code Efficiency Coupling Comments Formatting Coding Style Execution Program Execution Naming Capitalization No crashes Error Recovery Efficiency Nominal cases Specification Documentation Total Special cases 5% 5% 5% 5% 10% 5% 5% 5% 5% 5% 5% 25% 5% 10% 100%
Keep in mind that you always want to write code that is easy to understand and is also easy to maintain. Source Code: (45%) Program Design: 20% Many times you can write code that fulfills the requirements by just writing a single main() method. But most times, the problem is complicated enough to require several steps, which may be repeated one or more times. Please design your programs so that the functionality is spread across multiple methods that each accomplish a particular task, and name the method according to the task it performs. Points Criteria 5 Partitioning: Is the required functionality spread logically across multiple methods (or classes)? 5 5 5 Organization: Is the overall program flow easy to follow? Is it easy for an outsider to figure out how your software works? Efficiency: Do the individual methods accomplish their given tasks as efficiently as possible? Are unnecessary variables, loops, methods, and classes eliminated? Coupling: Are methods (and classes) loosely coupled? Does each method only receive the data it needs in order to accomplish its task? Are the public methods and variables appropriately so? Is information as hidden as possible?
Course Syllabus
Page 5
Comments: 10%
Every file should have a header that includes your name, CS1337.nnn, & the homework number. Every class should have an extensive header comment explaining the purpose of the class. Every method should have comments explaining what it does, what its parameters are, and what values it returns. Significant variables and sections of code should have comments explaining their purpose. Avoid meaningless comments like Declare the variables or This code adds one to the variable.
Coding Style: 15% You should try to follow most of the coding standards for Java (see http://java.sun.com/docs/codeconv/), but these three are especially important: Points 5 5 5 Criteria Formatting: Is code properly indented to indicate blocks? Naming: Is everything (significant variables, classes, methods) named logically and descriptively? (Not required for looping variables and throwaway variables.) Capitalization: Package names are lowercase: java.io, java.net, etc. Class (and interface) names should be nouns, with the first letter of each internal word capitalized: Loan, AmortizationTable, Person, HashMap Method names should be verbs, with the first letter lowercase & the first letter of each internal word capitalized: run(), runFaster(), runForYourLife() Constants should be in all upper-case, with words separated by an underscore: final int THIS_IS_A_CONSTANT = 1;
Execution: (45%) This section has to do with how well your program runs. If your program does not compile, please be aware that you may get no credit in this section. Program Execution: 15% Points 5 5 5 Criteria No crashes: Does the program actually run all the way through the simplest possible test case without crashing? Error Detection & Recovery: Does the program react well (does not crash) to unexpected or inconsistent events or input? Are exceptions handled appropriately? Efficiency: Does the program finish executing in a reasonable amount of time?
Satisfaction of Specification: 30% This is really the most important part: does your program do what it is supposed to do? Points 25 5 Criteria Nominal case: Does the software correctly fulfill the requirements of the assignment for the expected test cases? Special cases: Does the software correctly handle unusual but legal test cases? Example: square root of a negative number, interest payment higher than loan payment
Course Syllabus
Page 6
For programming assignments that seem arbitrarily restricted (your program must save 4 runs, your program must accept up to 10 names), points will be not taken off as long as your program meets at least those requirements. You may exceed them without penalty. Documentation (10%) All assignments must be submitted with documentation. At a minimum, this should include an algorithm report and a UML class diagram if you have more than a few classes. You should describe the overall flow of your program at least at a high level. If there are any parts of the program that are unusually complex, you should specify those parts in detail, using pseudocode or a flowchart.
Course Syllabus
Page 7
Letter grades will be assigned as follows: 98-100 92-97 90-91 88-89 82-87 80-81 78-79 72-77 70-71 68-69 62-67 60-61 Below 60 A+ A AB+ B BC+ C CD+ D DF.
Academic Integrity
The faculty expects from its students a high level of responsibility and academic honesty. Because the value of an academic degree depends upon the absolute integrity of the work done by the
Course Syllabus
Page 8
student for that degree, it is imperative that a student demonstrate a high standard of individual honor in his or her scholastic work. Scholastic dishonesty includes, but is not limited to, statements, acts or omissions related to applications for enrollment or the award of a degree, and/or the submission as ones own work or material that is not ones own. As a general rule, scholastic dishonesty involves one of the following acts: cheating, plagiarism, collusion and/or falsifying academic records. Students suspected of academic dishonesty are subject to disciplinary proceedings. Plagiarism, especially from the web, from portions of papers for other classes, and from any other source is unacceptable and will be dealt with under the universitys policy on plagiarism (see general catalog for details). This course will use the resources of turnitin.com, which searches the web for possible plagiarism and is over 90% effective.
Email Use
The University of Texas at Dallas recognizes the value and efficiency of communication between faculty/staff and students through electronic mail. At the same time, email raises some issues concerning security and the identity of each individual in an email exchange. The university encourages all official student email correspondence be sent only to a students U.T. Dallas email address and that faculty and staff consider email from students official only if it originates from a UTD student account. This allows the university to maintain a high degree of confidence in the identity of all individual corresponding and the security of the transmitted information. UTD furnishes each student with a free email account that is to be used in all communication with university personnel. The Department of Information Resources at U.T. Dallas provides a method for students to have their U.T. Dallas mail forwarded to other accounts.
Course Syllabus
Page 9
Copies of these rules and regulations are available to students in the Office of the Dean of Students, where staff members are available to assist students in interpreting the rules and regulations.
Student AccessAbility
The goal of Student AcessAbility is to provide students with documented disabilities educational opportunities equal to those of their peers. Student AccessAbility is located in room 3.200 in the Student Services Building. Office hours are Monday through Thursday, 8:00 a.m. to 6:00 p.m. and Friday, 8:00 a.m. to 5:00 p.m. The contact information for the Office of Student AccessAbility is: UT Dallas Student AccessAbility 800 W. Campbell Rd., SSB32 Richardson, Texas 75083 (972) 883-2098 (voice or TTY) The Office of Student AccessAbility's primary functions are to provide: 1. academic accommodations for students with a documented, permanent physical, mental or sensory disability 2. non-academic accommodations 3. resource and referral information and advocacy support as necessary and appropriate. Non-academic accommodations must meet the same standards regarding documentation as academic accommodations. Academic accommodations for each student are determined by Student AccessAbility on an individual basis with input from qualified professionals. The college or university may need to provide special services such as registration, note-taking, or mobility assistance. It is the students responsibility to notify his or her professors of the need for such an accommodation. Student AccessAbility provides students with letters to present to faculty members to verify that the student has a disability and needs accommodations. Individuals requiring special accommodation should contact the professor after class or during office hours.
Course Syllabus
Page 10
If a student or an instructor disagrees about the nature of the absence [i.e., for the purpose of observing a religious holy day] or if there is similar disagreement about whether the student has been given a reasonable time to complete any missed assignments or examinations, either the student or the instructor may request a ruling from the chief executive officer of the institution, or his or her designee. The chief executive officer or designee must take into account the legislative intent of TEC 51.911(b), and the student and instructor will abide by the decision of the chief executive officer or designee.
These descriptions and timelines are subject to change at the discretion of the Professor.
Course Syllabus
Page 11