CSE 1002: Software Development II (Spring 2024)

General info

Instructor

Ryan Stansifer

Office hours

Check my WWW page for up to date information.

Lectures

Class meets at two different times at 10am and at 11am in OLC 129.

Lab sections

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.

Overview

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.

Prerequisites

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.

Textbook

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.
Introduction to Programming in Java: An Interdisciplinary Approach, second edition.
Addison-Wesley, 2017. ISBN-13 978-0-672-33784-0, 758 pages.

book cover

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.
Computer Science: An Interdisciplinary Approach.
Addison-Wesley, Boston, 2017. ISBN-13 0-13-407642-3, 1146 pages.

book cover

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.
Effective Java, third edition.
Addison-Wesley, 2018.

book cover
Evens

Ben Evans and David Flanagan.
Java in a Nutshell, seventh edition.
O'Reilly, 2018.

book cover

Here are the authors' PDF lecture slides based on the textbook.

These are the class lectures notes presented in class in order.

Grading and assignments

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.

Projects

All students need a Florida Tech "Tracks" account to work in the lab. All Java programs must compile with Java 17 of the compiler. All projects must adhere strictly to the style guide and have the appropriate header. Strive to turn in beautiful programs; don't turn in the first draft. Projects will be submitted electronically using the submit server. You must follow all submission procedures precisely. If the failure to follow procedures makes it difficult to evaluate the project, then you can expect to receive no credit for the project. Even for simple programs it is hard to find bugs. Learn to test to the programs yourself, so that it has fewer bugs; don't turn in your program without thoroughly testing it.

Important Notices

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:

Would you give me your Olympic gold medal?
How do I become an Olympic swimmer?

What is the code for today's programming exercise?
How do I compute the base three of a number?

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.

Calendar and Important Dates

Consult the Florida Tech academic calendar for important dates for all classes.

Monday, 8 January 2024First lecture
Sunday, 14 January 2024World Logic Day
death of Gödel; birth of Tarski
Monday, 15 January 2024Martin Luther King Jr. Day (no classes)
Monday, 29 January 2024Midterm Exam #1
Computer science, interfaces, memory hierarchy, program development, translations, I/O streams
Friday, 23 February 2024Midterm Exam #2
data, expressions, statements, correctness, testing, methods, parameter passing, recursion
Friday, 29 February 2024Leap Day. Rata Die 738,945
Sunday, 10 March 2024Daylight Savings Time begins
Thursday, 14 March 2024Pi Day
Friday, 22 March 2024Midterm Exam #3
user-defined data, records, OO, inheritance, dynamic dispatch
25-29 March 2024Spring Break (no classes)
Wednesday, 24 April 2024Last lecture
Thursday, 2 May 2024Common Final Exam, 10:30am -- 12:30pm
place not determined yet
exceptions, generics, big-oh, stacks, queues

Syllabus