CISC 3115
Introduction to Modern Programming Techniques
Syllabus


Text

There is no official text for the course, you are responsible for the lectures, lecture notes, and all assignments. In the past I have used the following text:

Introduction to Java Programming — Brief Version (11th edition) / Liang (Pearson). You can find more information about the text here

Topic List

Here is an overview of the topics we will be covering:

Class Calendar

The Class Calendar is the main resource for all material related to the course: lecture notes, exams, lab, and administrative dates, etc. It is the 'official' repository of all such information for the course.

Lectures

You are expected to attend all lectures; simply reading the lecture notes will probably not provide sufficient information for you to perform well on the exams, or complete the assignments. As with everything else, the lecture notes can be found on the Class Calendar

Assignments: Exercises and Labs

This is a second-semester course in Java programming, covering intermediate-to-advanced topics. The majority of topics we wil be covering are 'bread-and-butter' in that they are techiques and language constructs you will be envountering on a daily basis as a programmer. The only way to acquire these skills and techniques is through practice, and there is therefore a substantial amount of programming work in this course.

While you should develop much of your code (your apps) in your choice of IDE, you will be submitting your working results to CodeLab — an online, interactive programming exercise system — that will also test your code, and provide (hopefully) informative feedback as to any problems or issues. There may also be non-app exercises, i.e., code fragments that you may be asked to write (you can see examples of this in the 1115 topic review section). I will often provide driver code, so you can develop it in your IDE as well (or in that case, you can usually simply submit it to CodeLab directly).

In general, there will be two types of coding assignments:

You can find more about CodeLab here

CodeLab Information

To Register:

Submitting Assignments

When you submit an assignment to CodeLab, it checks that your code is correct, by running it against various test cases. If your code fails, CodeLab will often provide feedback or hints to help you correct your mistake.

For several of the assignments, I may mark the exercise as 'For Approval', which means that I will be performing a final review and check of your code after CodeLab has determined that it passes the test cases. This 'instructor check' looks for style, format, and documentation of your code — i.e., things that the checking engine does not verify. I will then approve or deny your submission; in the latter case that means you must fix your code based on my comments, and resubmit. Once approved, you are done with the assignment.

The labs are assigned suggested deadlines which are posted within CodeLab as well as on the Class Calendar. We will talk more about deadlines in class.

You can find out more about CodeLab's feedback, and Approval Exercises on the Labs Home page here.

Doing Your Own Work — 'Cheating' on Assignments

There is no notion of cheating or plagiarism on an assignment. You are free to copy, download or otherwise obtain the solution to an assignment in any manner you wish, and from any source, student, website, AI, whatever. Just realize that there will be a couple of hundred exercises as well as upwards of 25 labs, and 50% of the exams will be directly from the assignments (see below). If you are willing and able to review and study all that material that was created by someone (or something) else, and reproduce it successfully on the exam, you will have accomplished and learned something.

The Exams

The exams will be on paper, closed book, no cheat sheets. Please make sure to come on time, and place all books, paper, phones, watches in your bag. You should go to the bathroom prior to the exam. If you have an accommodation from Disability Services, please inform me of that in advance of the exam.

The format of the exam will be questions that involve writing and/or analyzing code, and answering conceptual questions about the material covered. There may also be exercises in which you display your knowledge of an algorithm by applying it to presented data (a simple example of this would be to carry out a linear or binary search on a provided array and value).

I will be providing some sample questions before the exam.

The Exams and Assignments

A substantial portion of each exam will be taken directly from the assignments (lab and/or exercise). This means several things:

Grading:

Your work on the assignments is probably the best assessment of how well you have mastered the topics of this course. While the exams assess your knowledge — in particular conceptual information — writing working Java code is crucial to your being able to show that you have become proficient in the material. Unfortunately, it is all too easy to acquire these assignments in a manner other than doing the work yourself. My grading policy is therefore designed to attempt to incorporate your work on the assignments into your grade, while at the same time maximizing the probability that that work is indeed your work.

As stated above, a substantial portion of each exam will contain material straight out of the assignments (not inspired by, not somewhat like, but exact specs from the assignments).

Missing an Exam Other than the Final

There are no makeup exams. If you miss an exam, you must provide some form of written reason (simply deciding not to take the exam is not an acceptable reason):

Incompletes (INC)

For the most part, I do not give a grade of Incomplete.

Paraphrasing from the Bulletin (page 57), a grade of incomplete (INC) may be assigned at the discretion of the instructor under one of two conditions:

Only one of the above two conditions (not both) may apply in order to receive an INC. Please do not ask me to give you an INC so that you can submit a semester's worth of assignments.

If an INC is not resolved, a grade of FIN is eventually assigned.

The faculty and administration of Brooklyn College 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 at this site: http://www.brooklyn.cuny.edu/bc/policies. If a faculty member suspects a violation of academic integrity and, upon investigation, confirms that violation, or if the student admits the violation, the faculty member MUST report the violation.


In order to receive disability-related academic accommodations students must first be registered with the Center for Student Disability Services. Students who have a documented disability or suspect they may have a disability are invited 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 your professor with the course accommodation form and discuss your specific accommodation with him/her.