Check my WWW page for up to date information.
Class meets at two different times at 10am and at 11am in OLC 129.
The teaching assistants are Joshua Breininger (jbreininger2018@my.fit.edu), Candice Chambers (chambersc2017@my.fit.edu), and Mahbuba Perveen (mperveen2019@my.fit.edu). Lab sections meet on TR at 9:30am, 11am, and 12:30pm (OEC 228). The teaching assistants hold office hours at the Student Success and Support Center in the Henry Building.
There is another WWW page for weekly lab assignments.
We review basic Java programming and recursion, introduce object-oriented programming and generics. We introduce data defined by the programmer and pre-defined data structures like stacks and queues. We review sorting and algorithmic analysis---both analytic and empirical. We assign programming exercises in various application domains like image processing, audio synthesis, Monte Carlo methods, and web programming.
Basically, the prerequisite for cse1002 is the ability to read and write
Java programs using static
methods and fields.
Students should already know most of the Java statements, operators,
and primitive types.
There is no required textbook. Here are number of excellent books for learning to program in Java. The recommended textbook for the class is:
Sedgewick |
Robert Sedgewick and Kevin Wayne. |
The textbook is a subset of a more comprehensive introduction to programming and computer science. It is listed below.
Sedgewick |
Robert Sedgewick and Kevin Wayne. |
A 20-part lecture series by Robert Sedgewick is available for about $30 at informit.
The book by Bloch is much like this course in teaching how to use Java well, as opposed to just what are the Java language features. Java in a Nutshell is an excellent reference for all things Java.
Bloch |
Joshua Bloch. | |
Evens |
Ben Evans and David Flanagan. |
main
dev.java
CopyText8.java
,
number-by-number:
CopyInt8.java
, token-by-token
Base.java
,
Lexicographic.java
, recursively
RecursiveBinary.java
,
iterative binary search Binary.java
, and
generic binary search GenericBinary.java
.
Sort.java
(API),
Insertion.java
,
Selection.java
,
Merge.java
(recursive, divide and conquer),
Quick.java
, and
Quick.java
.
codingbat.com
-- basic Java exercises
There will be three in-class midterms and a final exam. Tests will make up 60% of the total grade. Programming assignments make up the other 40%. Every week there will be programming assignments in lab and attendance is noted. It expected that you are in lab thinking, coding, asking, helping, testing, and submitting the assignments. We have extended due dates to accommodate students the need extra help, not for procrastinating. It is not possible to make-up missed assignments. However, we drop some low scores to compensate for the occasional absences.
For each student the numeric scores for the assignments and exams are recorded. If you have any question about your standing in the class, or if some score has been recorded wrong, please contact me or the lab instructor in a timely fashion.
We tend to grade exam questions and projects using the entire scale and not just the top end, so scores look lower than you may be used to. Since the tests are not standardized, your grade is determined mostly by how you do compared to the rest of the class, not by the magnitude of your numeric scores. The average numeric score is roughly equivalent to a B- letter grade. Hence, the approximate way to tell how you are doing in the class is: above average numeric score means A or B, below average means C or D. The letter grade for the class will be assigned at the end of the semester. Cutoffs based on the weighted sum of these numeric scores will determine the letter grade. Sometimes we have to make some very tough choices; invariably someone in the class must receive the highest B, the highest C, etc in the class. Your best strategy is to not make it close, i.e., study! Students are expected to take the common final exam at the regularly scheduled time during finals week.
Please take advantage of the support services provided by the CS help desk and the Student Success Support Center located in the Henry Building south of Panther Dining Hall.
They are not there to write a program for you; bring what you have done in lab with you and they will help you.
Do not cheat on the exams; do not ask for or give code to others; do not buy or sell the solutions to the projects. Do not make solutions publicly available. The penalty for academic misconduct is a grade of 'F'. The objective of the class is developing code, not finding code. Discussions with your classmates, with teaching assistants, at the help desk, or academic support center are encouraged. Know how to do exercises, know how to ask for help, and know how to help each other. Compare the following pairs of questions:
If you receive ideas, code snippets, or help from any source, be sure to give proper credit and acknowledgment. Programs that are significantly the same as others will receive a score of zero.
Please note, that copies of some work (homework, projects, exams, etc) for undergraduate classes may be kept on file. This is done for two purposes. For review by ABET, for the purposes of maintaining the accreditation of the CS program, and to detect plagiarism.
Monday, 8 January 2024 | First lecture |
Sunday, 14 January 2024 | World Logic Day death of Gödel; birth of Tarski |
Monday, 15 January 2024 | Martin Luther King Jr. Day (no classes) |
Monday, 29 January 2024 | Midterm Exam #1 Computer science, interfaces, memory hierarchy, program development, translations, I/O streams |
Friday, 23 February 2024 | Midterm Exam #2 data, expressions, statements, correctness, testing, methods, parameter passing, recursion |
Friday, 29 February 2024 | Leap Day. Rata Die 738,945 |
Sunday, 10 March 2024 | Daylight Savings Time begins |
Thursday, 14 March 2024 | Pi Day |
Friday, 22 March 2024 | Midterm Exam #3 user-defined data, records, OO, inheritance, dynamic dispatch |
25-29 March 2024 | Spring Break (no classes) |
Wednesday, 24 April 2024 | Last lecture |
Thursday, 2 May 2024 | Common Final Exam, 10:30am -- 12:30pm place not determined yet exceptions, generics, big-oh, stacks, queues |
dev.java
dev.java
dev.java
try
/catch
try
/catch
/finally
try
resource statement
dev.java
Comparable
and Comparator
dev.java