CISC 3115: Introduction to Modern Programming Techniques
Spring 2019
130 IA ("New" Ingersoll)
W 6:30–10:00pm
Scott Dexter
0113 Old Ingersoll (basement)
W 5:00–6:00pm
and by appointment
Pronouns: he/him
Calendar
Grading Policy
Resources

Bulletin Description

A second course in programming. Programming techniques emphasizing reliability, maintainability, and reusability. Multi-file programs. Abstract data types. Objects, classes, and object-oriented design. Test suites, test drivers, and testing strategies; debugging, assertions, and an introduction to formal techniques. Recursion, event-driven programming and threads, GUI programming, and simple network programming.

Prerequisites and Corequisites

I expect you to have successfully completed CISC 1115 and thus be comfortable with the fundamentals of programming in Java. If you have taken an introductory course using a different language (like C++), you may still be able to succeed in this course, but you will have to do some extra work at the beginning to adapt your programming knowledge to Java.

Course Objectives

If you successfully complete this course, you will be able to

The most important of these is object-oriented programming and design; this will be the primary focus of the course.

In support of these objectives, your grade in the class will depend on how well you

In addition, I expect you to In return, you can expect me to:

Schedule and Course Material

The one required textbook for this course is Head First Java, 2nd edition, published by O'Reilly. You should be able to find a used version cheaply; feel free to get print or digital, whichever works best for you. This book assumes you don't know any Java—which of course isn't true—and it also assumes that you have some experience programming—which is true. It has a unique style, which is sometimes a little annoying but is usually good at supporting learning.

Feel free to consult other introductions to Java, including the one you used in the prerequisite to this course. The free online textbook Introduction to Programming Using Java, Seventh Edition is also a solid choice. You might also get something out of Oracle's Java Tutorials. And you will certainly need to become comfortable navigating the Java API documentation.

A few course topics are not covered in the primary textbook, so will occasionally be posting additional required readings, videos, etc, on the course calendar, which tells you about the topics we'll be discussing, and the reading you need to do in advance of, each day. I'll also post links to the required readings, as well as supplemental texts, on the Resources page.

Grading Policies

The grading policies determined by each section on the first day of the course are posted on the grading page, which includes more details on how grades will be calculated.

Because this is a fast-paced, demanding course, I will generally not allow late submission of assignments. If you have a medical/family emergency that causes you to miss class, talk to me about it ASAP. If you find that events in your life are making it difficult for you to complete work for this class in timely fashion, please talk to me as soon as possible so that we can discuss how to get you through the class. Attendance is not an explicit element of your course grade, but excessive absences will almost certainly affect your team grade (and we will have a lot of "test" days that you won't want to miss).

I will determine your final grade with a rough "curve." Almost always, I set the lowest "B-" grade to be the mean score in the class. So if you are above the average, you will earn a B or A; if you are below the average you will earn a C or lower. You can use this is a rough guide to translate your scores on exams and assignments into letter grades. Note that anyone who earns less than 50% of the available points (weighted according to the class policy) for individual work (see the grading policies page; this includes midterm, final, and programming assignments) will get an F in the class regardless of their overall score.

I will use the webapp Gradesly to provide you a fairly current report on your grades and your standing in the course. Please be aware that your final standing in the course may differ from what is reported in Gradesly, because the final curve is applied only to students who take the final. In particular, your final grade could be somewhat lower than you expect.

Communication

Coming to my office hours is the best way to get my undivided attention. I strongly encourage you to visit me in office hours at least once; in fact, I will give you 1% of your course grade extra credit if you come to my office hours before the midterm with a question related to the course or the CIS majors. When you can't make it to office hours to ask a question, then email is far more effective than the telephone. If you call my office during office hours, I will answer if I'm not with another student; at other times, I may not answer. The college's voicemail system is clunky and time-consuming; if you leave me a voicemail, I will probably never listen to it. Email me instead. Make sure the subject of your email begins with CISC 3115 to make sure I give it quick attention. If you email me after 9pm or over the weekend, I may not respond until 9am the next weekday morning.

I will often email the entire class with hints, updates, or supplemental material. I will most often use the email address you have registered with the BC Portal (portal.brooklyn.cuny.edu), so please double-check that is up-to-date. Occasionally, I will need to communicate with you via CUNYfirst, so please ensure that also has a current email address for you (in the Self Service->Personal Information menu).

Values, Ethics, and Accountability

Academic Integrity

The faculty and administration of Brooklyn College and the City University of New York support an environment free from cheating and plagiarism. Each student is responsible for being aware of what constitutes cheating and plagiarism and for avoiding both. The complete text of the CUNY Academic Integrity Policy and the Brooklyn College procedure for implementing that policy can be found here:

http://www.cuny.edu/about/administration/offices/la/Academic_Integrity_Policy.pdf.

According to this policy, "A faculty member who suspects that a student has committed a violation of the CUNY Academic Integrity Policy shall review with the student the facts and circumstances of the suspected violation whenever feasible. Thereafter, a faculty member who concludes there has been an incident of academic dishonesty sufficient to affect the student's final course grade shall report such incidents...."

I take this policy very seriously. Among the actions which may constitute a policy violation in this course:

You are responsible for understanding the entirety of CUNY's policy; if you have questions, don't hesitate to ask me.

In particular, if I determine that part or all of one coding assignment has been copied from another, all students involved will get a zero on the assignment. You are responsible for safeguarding your work.

In general, I will encourage collaboration during class, but I also expect you to be able to work effectively on your own. You are responsible for understanding the entirety of CUNY's policy; if you have questions, don't hesitate to ask me.

Diversity, Inclusion, and Accessibility

I believe that the diversity of Brooklyn College classrooms is one of the most important characteristics of a Brooklyn College education. I am committed to creating an inclusive classroom that respects a wide range of experiences, viewpoints, and abilities.

If you have a documented disability, or suspect you may have a disability, I encourage you to set up an appointment with the Director of the Center for Student Disability Services, Ms. Valerie Stewart-Lovell, at 718.951.5538. If you have already registered with the Center for Student Disability Services, please provide me with the course accommodation form and discuss your specific accommodation with me. I will be more than happy to help.

Career Services

Most computer science courses, certainly including this one, are about enhancing your abilities and providing skills you will need to be a successful professional. In addition to your coursework, I strongly recommend you engage with the College's excellent career center. It's never too early to start preparing for your career; if you're interested in preparing a resume, finding a job or internship, connecting your college experience with a career or developing professional skills, visit the Magner Career Center at: 1303 James Hall, call 718-951-5696 or sign up for workshops and jobs and internship notifications on the WebCentral Portal ( http://portal.brooklyn.cuny.edu).