You are on page 1of 6

Spring 2011 Course Syllabus

Course Number & Title: CS 1335.001 Computer Science I (non-majors)


Time & Location: TTh 8:30am-9:45am ECSS 2.410

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 (Emails within e-learning is preferred)
Web Site: www.utdallas.edu/~jeyv

Office Hours: Tuesdays & Thursdays 9:45am - 11:15am


Additional hours by appointment.

TA: TBD

Prerequisites: 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. Ability to develop object oriented software solutions


2. Ability to express multi-class relationships among objects
3. Ability to implement graphical user interfaces
4. Ability to develop event driven programs
5. Ability to implement algorithms to search and sort objects
6. Ability to 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):

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

1 Tuesday, January 11 Review of Syllabus Self-assessment


2 Thursday, January 13 Java Fundamentals Read Chapter 1 and 2

3 Tuesday, January 18 Java Fundamentals Read Chapter 3 and 4

4 Thursday, January 20 Java Fundamentals Read Chapter 5


Program 1 start

Tuesday, January 25 Arrays Read Chapter 8

5 Thursday, January 27 Arrays …

6 Tuesday, Feburary 1 Text Processing Read Chapter 10


Program 1 due

7 Thursday, Feburary 3 Text Processing … Program 2 start

8 Tuesday, Feburary 8 Exam 1 Review

9 Thursday, Feburary 10 Exam 1 – Ch 1-5, 8, 10

10 Tuesday, Feburary 15 Classes Read Chapter 6


Program 2 due

11 Thursday, Feburary 17 Classes and Objects Read Chapter 9


Program 3

12 Tuesday, Feburary 22 Classes and Objects Read Chapter 9

13 Thursday, Feburary 24 Inheritance Read Chapter 11

14 Tuesday, March 1 Exceptions Read Chapter 12


Program 3 due

15 Thursday, March 3 Exceptions continued Program 4

16 Tuesday, March 8 GUI Applications Read Chapter 7

17 Thursday, March 10 GUI Applications continued

Tuesday, March 15 Spring Break, no class

Thursday, March 17 Spring Break, no class

18 Tuesday, March 22 Applets Read Chapter 14


Program 6 – form groups

19 Thursday, March 24 Applets continued Program 4 due

20 Tuesday, March 29 Exam 2 Review Program 5

21 Thursday, March 31 Exam 2 – Chapters 6, 7, 9, 11,


12

22 Tuesday, April 5 Advanced GUI Read Chapter 13

23 Thursday, April 7 Advanced GUI continued

24 Tuesday, April 12 Program 6 Group Meetings Program 5 due

25 Thursday, April 14 Recursion Read Chapter 15

26 Tuesday, April 19 Program 6 Group Meetings


27 Thursday, April 21 Recursion continued

28 Tuesday, April 26 Program 6 Group Meetings

29 Thursday, April 28 Final Exam Review,


final day of class

Tuesday, May 3 Reading day, no class Program 6 due

Thursday, May 5 No class

30 Monday, May 9 Comprehensive Final exam


@ 8am – all Chapters

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 will be graded on a 100 point basis, utilizing the following criteria:

Max Score

Source Code Overall design 40%

Formatting 10%

Naming 10%

Capitalization 10%

Execution Nominal cases 25%

Special cases 5%

Total 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 exams are open book and open notes, but laptop or electronic devices are NOT allowed. All make-up
exams are scheduled during the week following the actual exam date at the discretion of the instructor.
Make-up exams are only given to those students who coordinate the missing of an exam prior to the
originally scheduled exam date and time.

Class attendance is not recorded except for exam dates and times. However, 5-10 quizzes will be given
on randomly selected days. Those quizzes will typically test your understanding of course materials
covered recently & 15% of the final grade will be determined by your performance in those quizzes.
Make-up quizzes will not be given for absentees, however one quiz with the lowest score will be dropped
from consideration when computing the final grade.

Assignments are due at midnight on the day listed in the syllabus. Late assignments will be accepted for
2 additional days with 20% penalty. Late penalty will be waived only for health issues (be ready to
provide proof).
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.

Each student in the class is encouraged to join/form a study group to prepare for exams, exchange ideas,
clarify concepts and discuss assignments in high level, but do not ask others to code for you or copy
other’s programs. In addition to breaking UTD academic integrity policies, it is likely that such students
will perform badly in quizzes without that coding experience.

TA is responsible for grading quizzes and projects & instructor is responsible for grading all the exams.
So, contact TA directly for any grading related discrepancies related to TA's items to maximize efficiency.
If you cannot resolve it with TA, bring it up to instructor's attention.

In addition to meeting the instructor before or after the class, you can also visit the instructor or TA
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 TA 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 as well.

The final grade will be computed as follows:

Quizzes: 15% (average of quiz scores will be used, but 1 lowest score will be dropped)
Projects: 30% (6 assignments contributing 5% each)
Exam1: 15%
Exam2: 15%
Final Exam: 25%

Letter grades will be assigned as follows:

98-100 A+
92-97 A
90-91 A-
88-89 B+
82-87 B
80-81 B-
78-79 C+
72-77 C
70-71 C-
68-69 D+
62-67 D
60-61 D-
Below 60 F

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 (up to 4 different
versions) of the table process and should allow the user to compare runs in a tabular format.
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 Input4.java
on eLearning to understand the class construction.

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 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. The grader can then select students
and courses for each student and display the reports. 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).

Off-campus Instruction and Course Activities

No off-campus activities are scheduled.

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.

You might also like