You are on page 1of 8

Fall 2011 Course Syllabus (LetusGo Green - No paper copies, please!

find the latest version within e-learning) CS 1335.001 - Computer Science I for Non-Majors MWF 9 am - 9:50 am ECSS 2.412 Instructor: Dr. Jey Veerasamy Office: ECSS 3.231 Office Phone: 972-883-4241 (you can call me during office hours) E-Mail: jeyv@utdallas.edu (Email within e-learning is preffered) Web Site: www.utdallas.edu/~jeyv

Office Hours: TBD Other hours by appointment. TA: TBD Prequisites: CS 1336 or equivalent programming experience. (3-0) S Catalog Description: CS 1335 - Computer Science I for Non-Majors (3 semester hours) Introduction to object-oriented software analysis, design, and development. Classes and objects. Object composition and polymorphism. Sorting and searching. Strings using core classes. Inheritance and interfaces. Graphical User Interfaces. This class cannot be used to fulfill degree requirements for majors in the School of Engineering and Computer Science. Computer Science and Engineering majors may NOT take this course. Students who have taken CS 1337 cannot receive credit for this course. Prerequisite: CS 1336 with a grade of C or better or equivalent. (3-0) S Course Expectations: After successful completion of this course, the student should have an: 1. 2. 3. 4. 5. 6. Ability Ability Ability Ability Ability Ability to to to to to to 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: Starting Out with Java: From Control Structures through Objects (4th Edition), by Tony Gaddis, Addison Wesley, ISBN: 9780136080206 Academic Calendar (Look for updates in elearning throughout the course): Download the source code from the CD that came with the textbook, or you can download it directly from

http://wps.aw.com/aw_gaddis_javacso_4s/113/29029/7431666.cw/index.html. We will use several of those files in the class. Step-by-step instructions to download and install JDK and JGRASP have been posted under Lecture Notes in eLearning. Ignore the specific version #s in the instructions and install the latest available versions. Alternate option is to install these from the textbook CD. Class Date Class Activity Assignment

Wednesday, August 24

Review of Syllabus

Self-assessment in class, Self-assessment in the web too Read Chapter 1 and 2 Read Chapter 1 and 2 Read Chapter 3 and 4 Read Chapter 5, Program 1 start Read Chapter 8

2 3 4 5 6

Friday, August 26 Monday, August 29 Wednesday, August 31 Friday, Sep 2 Monday, Sep 5 Wednesday, Sep 7

Java Fundamentals Java Fundamentals Java Fundamentals Java Fundamentals Methods Labor day no class Methods Arrays Arrays Arrays

7 8 9 10 11 12 13 14 15 16 17 18 19

Friday, Sep 9 Monday, Sep 12 Wednesday, Sep 14 Friday, Sep 16 Monday, Sep 19 Wednesday, Sep 21 Friday, Sep 23 Monday, Sep 26 Wednesday, Sep 28 Friday, Sep 30 Monday, Oct 3 Wednesday, Oct 5 Friday, Oct 7

Read Chapter 8

Program 1 due

Test 1 Ch 1-5 & 8

Test 1

Text Processing Classes and Objects

Read Chapter 10, Program 2 start Read Chapter 6

Classes and Objects Inheritance

Read Chapter 9 Program 3 Read Chapter 11

20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

Monday, Oct 10 Wednesday, Oct 12 Friday, Oct 14 Monday, Oct 17 Wednesday, Oct 19 Friday, Oct 21 Monday, Oct 24 Wednesday, Oct 26 Friday, Oct 28 Monday, Oct 31 Wednesday, Nov 2 Friday, Nov 4 Monday, Nov 7 Wednesday, Nov 9 Friday, Nov 11 Monday, Nov 14 Wednesday, Nov 16 Friday, Nov 18

Exceptions Exceptions continued

Read Chapter 12, Program 2 due Program 4 Test 2

Exam Review Exam 2 Chapters 6, 911 GUI Applications GUI Applications continued Read Chapter 7 Program 3 due Program 5 Test 3

Applets Applets continued Advanced GUI Advanced GUI continued

Read Chapter 14 Program 4 due Read Chapter 13 Program 6 Test 4

Advanced GUI continued Project 5 discussion Program 6 Group Meetings Read Chapter 15

38 39

Monday, Nov 21 Wednesday, Nov 23 Friday, Nov 25 Recursion Thanksgiving holiday Recursion continued Program 6 Group Meetings Program 6 Group Meetings Project 5 due

40

Monday, Nov 28

41

Wednesday, Dec 1

42 43

Friday, Dec 3 Monday, Dec 5 Wednesday, Dec 7 Wednesday, Dec 14 @ 8am Exam Review, final day of class Reading day, no class Final Exam

Test 5

Program 6 due

Course Requirements: There will be regularly assigned reading and programming assignments. The programming assignments will require the student to spend time programming in a computer. Programming assignments will be graded on a 100 point basis, utilizing the following criteria: Max Score Source Code Overall design Formatting Naming Capitalization Execution Nominal cases Special cases Total 40% 10% 10% 10% 25% 5% 100%

Programming assignments should be turned in by means of eLearning. You need to submit only .java files for individual assignments. For program 6, in addition to the source code, you need to include a document/PowerPoint presentation with UML diagrams for all the classes as well (10% for documentation, 60% for Source Code and 30% for execution). Course & Instructor Policies: All tests/final exam are open book and open notes, but laptop or electronic devices are NOT allowed. Make-up tests are not given, unless a student had to miss 2 or more tests due to a valid medical reason. Class attendance is not recorded except for exam dates and times. However, you are strongly encouraged to attend all sessions since several test/exam questions will be based on the classroom material. I encourage everyone to submit the assignments 1 or 2 days early. Do not wait until the last minute to submit it. But I do understand things happen and occasionally you may not be able to submit assignments on time. My policy is to assess 1% penalty for every 2 hours. For example, if you submit the assignment exactly 1 day later, 12% penalty will be assessed. Late assignments will be accepted up to 4 days. You won't be able to submit it after 4 days and your assignment grade will be set to 0. Only exception to this late policy is

serious medical condition, for which you will need to submit proof of doctor certificate. Please do not send emails requesting for extension or penalty waiver. In case there are any problems with assignment submission in e-learning, you can email the assignment to TA inside e-learning. In case of e-learning system outage, you will be given grace period to submit it. Course credit is only given for work assigned in the course schedule. No extra work will be assigned nor will extra credit be given for any extra work performed by a student. However, there is only one extra credit item in this course: Active participation in the class. When computing the final grade towards the end of the course, instructor may assign upto 5% additional credit based on your active role in the classroom. TA is responsible for grading only the programming assignments. Instructor is responsible for grading all the tests & final exam. So, contact the TA directly for any grading related discrepancies for programs. If you cannot resolve it with TA, bring it to instructor's attention. In addition to meeting the instructor before or after the class, you can also visit the instructor during respective office hours. You can call instructor's office phone during office hours as well. However, be prepared to hold and wait if the instructor is busy with another student in the office. Additionally, you are welcome to email the instructor or grader within e-learning. This is preferred approach specifically if you run into project related issues & you need help to progress. In such scenarios, in addition to problem description & applicable error messages, zip all your source files and include it with your email too, so that we can help you efficiently. I plan on checking e-learning emails at least twice a day including the weekends. If you do not hear from me within a day or if you have an urgent issue, email me directly to my UTD email address.

The final grade will be computed as follows: Tests Projects Final exam 40% 35% 25% Best 4 out of 5 scores 7 assignments contributing 5% each Comprehensive exam

Letter grades will be assigned as follows: 98-100 88-89 78-79 68-69 Below 60 A+ B+ C+ D+ F 92-97 82-87 72-77 62-67 A B C D 90-91 80-81 70-71 60-61 ABCD-

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. Program #2 Purpose: Demonstrate the ability to create and execute a JAVA program that utilizes complex data structures 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. Search should search for a specific entry by a specific field (last name, first name or birth-date). 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 list of scores for games. The score attribute is not used 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 6 elements -- the name of the team and five 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 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 Input3.java on eLearning to understand the class construction. Your program should display the following information: For each game: o o 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: o o Display the roster of each team in alphabetical order by last name with the average score of each player for the season. Display the team's average score for the season against each of the two opponent teams.

Program #5 Purpose: Demonstrate the ability to utilize graphical interfaces in Java Assignment: Write a program that simulates a box fan. The box fan should have a speed control mechanism for OFF, HIGH, MEDIUM, and LOW speeds. The fan blades should rotate at whatever speed has been selected by the user. The fan should allow changing the fan state without terminating the program. Program #6 Purpose: Demonstrate the ability to write a complex Java application. Assignment: Students should 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, 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 5000 or 6000 level courses with a maximum course load of 6 credit hours while undergraduate students can only register for 1000, 2000, 3000 or 4000 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 a roster for each current course with the names of the students enrolled in sorted order. 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. Then, the user should be able to register the students for classes, select a class & display the roster, and select a student & display his/her class list. In addition to the source code, you need to include a document/PowerPoint presentation with UML diagrams for all the classes as well (10% for documentation, 60% for Source Code and 30% for execution). Program #7 Purpose: Demonstrate the ability to write a simple GUI based game in Java. Assignment: Instructor will provide partial code for a game & provide additional requirements. You should design and complete coding and make it work. Policies and Procedures for Students The University of Texas at Dallas provides a number of policies and procedures designed to provide students with a safe and supportive learning environment. Brief summaries of the policies and procedures are provided for you at http://provost.utdallas.edu/home/index.php/syllabus-policies-and-procedures-text and include information about technical support, field trip policies, off-campus activities, student conduct and discipline, academic integrity, copyright infringement, email use, withdrawal from class, student grievance procedures, incomplete grades, access to Disability Services, and religious holy days. You may also seek further information at these websites: http://www.utdallas.edu/BusinessAffairs/Travel_Risk_Activities.htm http://www.utdallas.edu/judicialaffairs/index.html http://www.utsystem.edu/ogc/intellectualproperty/copypol2.htm http://www.utdallas.edu/disability/documentation/index.html These descriptions and timelines are subject to change at the discretion of the Professor. Review the updates within e-learning.