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:
- Review
- (Unix, Vi, Java Development Environment)
- Classes and Objects
- Recursion
- Collections
- Graphic User Interfaces (GUI)
- Threads
- Network Programming
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:
- exercises: fragments of code, rather than full apps. These are meant to be short and to-the-point sequences of code focusing on a specific construct or idea. They will, in general, not require class or method
boilerplate, or opening up of scanners, and such, instead focusing on an algorithm or usage of a specific language element.
- Think of these as 'homework' problems, or the questions at the back of a section in a textbook.
- labs: there will usually be full apps (or classes) that will be more along the lines of applying material learned in class (and practiced in the exercises).
- Think of these as 'projects' or programs/apps, i.e., along the lines pf programming assignments at the end of a chapter in a textbook.
You can find more about CodeLab here
CodeLab Information
To Register:
- Go to turingscraft.com
- Click "Register" and follow the instructions
- When you fill out the forms, use your Best Email Address and Actual Name
- When asked for a Section Access Code, use the one you will receive from me in an email a few days before classes begin.
- To Login: Same URL, click "Login" and use your username (email) and password
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:
- you should make sure you do the assignments (and by 'you', I mean you)
- reviewing the assignments is a great way to study for the exams
- when calculating the time it will take you to complete the exam, those questions coming from the assignments
will be assumed to require less time to answer since they should be familiar to you.
Grading:
- Assignments: 15%
- Two exams: 25% each
- Final: 35%
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):
- If you are absent from the first exam, the grade on the second exam will be used in its place.
- If you are absent from the second exam, the grade on the final will be used in its place.
- If you are absent from both exams, you cannot pass the course.
- If you are absent from the final, see the section below titled Incompletes
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:
- The student is absent from the final, but is passing the course in all other respects
- Evidence must be presented documenting the reason for the absence
- The INC may then be changed once a final is taken
- The student is passing the course and has completed most, but not all of the requirements.
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.
|