CSE 1002: Software Development II (Fall 2017)

General info

Instructor

Ryan Stansifer

Office hours

Check my WWW page for up to date information.

Lectures

Class meets from 9am to 9:50 Monday, Wednesday, and Friday in the Crawford (CRF) Building room 210.

Lab sections

The lab instructor is Haoran Chang. Lab sections meet on TR from 12:30pm to 1:15pm in OEC 228 and 229 and from 5pm to 6:15pm in OEC 127 and 128.

There is another WWW page for material related to the lab section. (We use the learning mangement sytem Canvas only sparingly.)

Overview

We review basic Java programming and recursion, introduce object-oriented programming, generics, and study simple data structures. We review sorting and algorithmic analysis---both analytic and empirical. We assign programming exercises in various application domains like image processing, audio synthesis, Android app development, Monte Carlo methods, and web page ranking.

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. An important difference in cse1001 compared to cse1002 is the difference between static and non-static.

Textbook

The 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

Related textbooks for the class:

Sedgewick

Robert Sedgewick and Kevin Wayne.
Introduction to Programming in Java: An Interdisciplinary Approach.
Pearson Addison-Wesley, 2007. ISBN-13 978-0-321-49805-2, 723 pages.

book cover
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

Lecture Topics and Notes

Notes from the Textbook

Here are the authors' PDF lecture slides based on the old book:

Reference Material

Other links

Extra Practice

Grading and assignments

There will be three in-class midterms and a final exam. Tests will make up 60% of the total grade. Every week there will be programming assignments and possibly quizzes in lab. Attendence in lab is required for quizzes and some programming assignments. It is not possible to make-up missed quizzes and 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 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 version 1.8 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. We can test your program and see if it has bugs, but we cannot easily find the bug in your program. 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

Academic Support

Please take advantage of the support services provided by the CS help desk and the office of Academic Support.

Cheating

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 algorithm 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.

Title IX

What is Title IX?

Title IX of the Educational Amendments Act of 1972 is the federal law prohibiting discrimination based on sex under any education program and/or activity operated by an institution receiving and/or benefiting from federal financial assistance. Behaviors that can be considered “sexual discrimination” include sexual assault, sexual harassment, stalking, relationship abuse (dating violence and domestic violence), sexual misconduct, and gender discrimination. You are encouraged to report these behaviors.

Reporting

Florida Tech can better support students in trouble if we know about what is happening. Reporting also helps us to identify patterns that might arise — for example, if more than one complainant reports having been assaulted or harassed by the same individual. Florida Tech is committed to providing a safe and positive learning experience. To report a violation of sexual misconduct or gender discrimination, please contact Security at 321-674-8111. * Please note that as your professor, I am required to report any incidences to Security or to the Title IX Coordinator (321-674-8700). For confidential reporting, please contact CAPS at 321-674-8050.

Calendar and Important Dates

Consult the Florida Tech academic calendar for important dates for all classes.
Monday, 21 August 2017first lecture
Monday, 21 August 2017eclipse
the solar kind
Tuesday, 22 August 2017first lab
Monday, 4 September 2017Labor Day (no classes)
Thursday, 7 September 2017lab canceled
Friday, 8 September 2017first midterm exam
Introduction and S&W sections 1.3, 1.4, & 1.5
canceled
Monday, 11 September 2017class canceled (Hurricane Irma)
Wednesday, 13 September 2017class canceled (Hurricane Irma)
Friday, 6 October 2017second midterm exam
Data, expressions, statements, recursion and S&W Chapter 2.
9-10 October 2017Fall Break (no classes)
Saturday, 28 October 2017make-up lecture
Monday, 6 November 2017third midterm exam
Object-oriented programming, S&W Chapter 3
Friday, 10 November 2017Veterans Day, no classes
Saturday, 11 November 2017ACM SER 2017 programming contest
Saturday, 18 November 2017make-up lecture
Tuesday, 5 December 2017Last lab
Wednesday, 6 December 2017Almost the last lecture
Thursday, 7 December 2017Last lecture
Monday, 11 December 2017Final exam from 8am to 10am in CRF 210

Syllabus