CSIS-120 Intro to Programming
Course Description
Overview
An introduction to the object-oriented programming in Java with an emphasis on problem solving.
Requirements
To be successful in this course student are required to...
- complete reading assignments that include online quizzes and activities to prepare for lecture and labs.
- meet for lecture twice per week to complete activities and learn about concepts and examples with the help of the instructor.
- meet for lab one per week to learn skills and complete activities based on the concepts covered in lecture.
- complete 5 major homework assignments based on the concepts and skills learned in the course.
- complete a two in-class exams and a comprehensive final exam to demonstrate expert subject knowledge.
Instructor
Eric Breimer
...has been teaching programming, data structures, theory of computation web application development, and management information systems courses at Siena since 2002.
Schedule
Jan 18
Monday - 
No Class
Jan 19
Tuesday - 
Welcome
1.1-1.2
Syllabus, BlueJ, first program
Jan 21
Thursday - 
Intro
1.3-1.7
Basic syntax, input/output, error messages
Jan 25
Monday - 
Lab 1
Intro
BlueJ, using objects, getting input with Scanner
Jan 26
Tuesday - 
Objects
2.1-2.6
Variables, assignment, arithmetic expressions, int vs. double
Jan 28
Thursday - 
Objects
2.7-2.13
Using method: constructors, mutators, accessors
Activity 1 Due
Feb 1
Monday - 
Lab 2
Using Objects
Strings, concatenation, Tokenizer
Feb 2
Tuesday - 
Classes & Methods
3.1-3.6
Classes, method parameters, return, this
HW1 DUE Midnight
Feb 8
Monday - 
Lab 3
Implementing Classes
Instance variables, constructor, mutator, accessor, toString
Feb 9
Tuesday - 
Classes & Methods
3.7-3.14
Debugging, unit testing, API, commenting, JavaDoc
Feb 11
Thursday - 
Data Types
4.1-4.6
Constants, math, type conversion, characters, Strings
Activity 3: zyBook Challenge 4.1 - 4.6
Feb 15
Monday - 
Lab 4
Practical Exam #1
Implement a class and testing the methods
Feb 18
Thursday - 
EXAM #1
Feb 22
Monday - 
No Lab
Winter Break
Feb 23
Tuesday - 
No Class
Winter Break
Feb 25
Thursday - 
No Class
Winter Break
Feb 29
Monday - 
Lab 5
Math Expressions
Computing Easter and triangle perimeter
Mar 1
Tuesday - 
Numeric Data Types & Branches
4.7-4.12 and 5.1-5.3
Random numbers, if-else statements, relational operators
Mar 3
Thursday - 
Branches
5.4-5.7
Logical operators, if-else branches, using Boolean data types
Mar 7
Monday - 
Lab 6
Branches
Implementing a slot machine
Mar 8
Tuesday - 
Branches
5.8-5.11
Branches using string operations and floating-point comparison
Mar 10
Thursday - 
Loops
5.8-5.11
Nested branching
Mar 14
Monday - 
Lab 7
If Statement & Boolean Logic
CodingBat Problems
Mar 22
Tuesday - 
Loops
6.6-6.10
Loops with user input and nested loops
Mar 24
Thursday - 
No Class
Easter break
Mar 28
Monday - 
No Lab
Easter break
Mar 29
Tuesday - 
Arrays
7.1-7.4
Array basics and iteration
Mar 31
Thursday - 
Arrays
7.5-7.6
Swapping elements in an array
Apr 4
Monday - 
No Lab
Cancelled
Due to snow
Apr 5
Tuesday - 
Exam Review
Chapters 5-7
If statements, loops and arrays
Apr 7
Thursday - 
EXAM #2
Apr 11
Monday - 
Lab 9
Arrays
Car parking
HW4 DUE Midnight
Apr 12
Tuesday - 
Arrays
7.7-7.8
Copying, comparing and reversing arrays
Apr 18
Monday - 
Lab 10
Arrays & File I/O
Starting HW5
Apr 19
Tuesday - 
Arrays
8.1-8.4
File input/output and exceptions
Apr 21
Thursday - 
Files
9.1-9.5
Exception handling
Apr 25
Monday - 
Lab 11
Practical Exam #2
Data types, branches, loops and arrays
Apr 26
Tuesday - 
Files
Chapter 8 & 9 continued...
More practice with files and arrays
May 2
Monday - 
No Lab
HW5 DUE Midnight
May 3
Tuesday - 
Reading Day
May 4-7
Thursday - 
Final Exams
Reading
Description
Syllabus
CSIS-120: Intro to Programming
Lecture: Tuesday & Thursday, 8:15-9:40am, RB 328
Lab 01M CRN 42894, Monday, 8:10 - 10:10am, RB 306
Lab 05M CRN 43589, Monday, 10:30 - 12:30am, RB 306
Prerequisite
CSIS-110: Introduction to Computer Science
Required Text
Java Early Objects, Interactive zyBook
Required Software (free)
- Java: http://www.bluej.org/index.html Select BlueJ Installer with Java 8 JDK
Official Online Documentation
- Java Documentation: http://docs.oracle.com/javase/7/docs/api/
Course Learning Goals
- To enhance the student's problem-solving abilities.
- To develop the student's ability to develop programming solutions.
- To enable the student to translate algorithmic solutions to a Java implementation.
- To help the student acquire knowledge about computing systems in general.
- To continue the student's introduction to the academic discipline of Computer Science.
Topics
For a complete list of topic covered see the Course Schedule
Grading
Final grades will be based on the following weights:
10% | zyBook Activities |
10% | In-class Activities & Participation |
10% | Homework (Programming Projects) |
10% | 10 Lab Activities |
10% | 2 Lab Practical Exams |
15% | Exam 1 |
15% | Exam 2 |
20% | Cumulative Final Exam |
Letter grades will be assigned based on your numeric final average:
A | >= 93.0 | A- | >= 90.0 | B+ | >= 87.0 |
B | >= 83.0 | B- | >= 80.0 | C+ | >= 77.0 |
C | >= 73.0 | C- | >= 70.0 | D+ | >= 67.0 |
D | >= 63.0 | D- | >= 60.0 | F | < 60.0 |
Course Format
Reading
Each week, students must complete the assigned reading in the zyBook, which includes activities and quiz questions that must be completed.
zyBook Activity:
Before each lecture, students must complete all the participation and challenge activities from the assigned reading.
In-class Activity & Participation:
During lecture (typically Thursday) students will break into small groups and complete activities or solve problems based on the assigned reading. After completing the activity or solving the problems, students submit a deliverable (via email or Blackboard). Students can leave a lecture activity as soon as they are finished and the deliverable is submitted. To facilitate this activity, students are required to bring a laptop computer to class. If a student does not have a laptop, they must contact the instructor prior to lecture and the instructor will either provide one or arrange for the student to work with a partner who does have a computer.
Traditional Lecture:
For one lecture per week (typically Tuesday), the instructor will cover important concepts and details that will help students with lab, programming projects and exam preparation. Thus, it is important that you take notes that you can study from. These lectures will not be provided online. If you miss lecture, you must make arrangements with another student to get the notes. Be warned that many exam questions will come directly from these traditional lectures.
Lab Activities:
There will be 9 regular lab sessions where students will complete more structured activities than the ones in lecture. Students will work in pairs. Each pair of students must submit the lab handout with all questions answered and must submit required code via Blackboard. Students do not always finish the activity in the allotted 2-hour lab session, so the lab handout and code is due at the beginning of the next lab session.
Lab Practical Exams:
Two lab sessions will be used for practical exams. The practical exams test students' ability to code independently. Thus, students cannot seek help from the instructor or TAs. Unlike regular labs, students must complete the practical exam in the 2-hour lab session. Students are required to bring a laptop computer to lab practical exams.
Exam 1 and 2:
Two exams will be held during lecture. See the scheduled for announced dates. The exams test students' knowledge of course and programming topics. Written exams include a mix of multiple-choice, fill-in and explanation-type questions. Students will also have to write and explain Java code. Students will not be allowed to use a computer for the written exams.
Cumulative Final Exam:
During final exam week, students will take a 2-hour cumulative final exam. It will include material covered in the first two written exams as well as the new material covered after the second written exam.
Lecture Attendance
A student is expected to attend every lecture. It is the student's responsibility to be aware of this policy. Students can receive up to a 10% penalty toward their final average for excessive absence, lateness, or disruption during lecture. Students will be given a warning if they are more than 2 minutes late to lecture. After a warning, subsequent lateness will be recorded. Students who are more than 10 minutes late will be marked absent and penalties will be incurred. Students can have two unexcused absence and two lateness warnings without any penalty. But after two, students will receive a 1% penalty for each unexcused absence and a 0.5% penalty for each unexcused lateness (maximum of 10% total penalty).
Lab Attendance
Students are required to attend all lab sessions. There is a 10% penalty toward the individual lab for arriving late. Students will be given a warning if they are more than 2 minutes late. After a warning, the penalty will be enforced for any subsequent lateness. Students who are more than 10 minutes late will be marked absent. In addition, there is a 10% penalty for leaving early, i.e., leaving before the 2 hour lab period is over unless a student has completed the lab and submitted the deliverable.
Students who miss lab entirely receive a 30% penalty for the lab and must submit the lab deliverable before the next lab period, otherwise they will get a zero. In addition, students who miss two or more labs (unexcused), will receive additional penalties describe below:
2 unexcused lab absences | 3% penalty on final average |
3 unexcused lab absences | 7% penalty on final average |
4 unexcused lab absences | 15% penalty on final average |
5 unexcused lab absences | Automatic failure from the course (no exceptions) |
Excused Absences
Lecture:
Students can be excused (and not penalized) from lecture for illnesses, job interviews, and serious commitments such as athletic or academic trips/competitions. However, students must inform the instructor as soon as possible, provide proof/documentation, and take responsibility to acquire notes and information from other students.
Lab:
Students can be excused (not penalized) from lab and allowed to submit late deliverables but the following rules will be strictly enforced:
- Job interviews will NOT be considered a valid excused for missing lab. Do not schedule job interviews during your lab time unless you are willing to accept the penalties.
- Practices (athletics), regularly scheduled extra curricular activities, and weekly obligations in other courses will NOT be considered a valid excuses for missing lab. Students should not register for this class if such activities conflict with the lab session.
- Traveling to athletic games that are documented by the Athletic Department are a valid excuse. However, if you are going to miss more than three labs due to games, it is recommended that you drop the course and take it in the off season.
- For illness or medical emergencies, students WILL have to show documentation (a doctor's note, release form, receipt or equivalent) that verifies the excuse. If an illness is not serious enough to go to a doctor then it is not serious enough to be accepted by the instructor.
- For family emergencies, funerals, or other serious commitments, students should contact the office of Student Affair or Academic Affairs. If the emergency is serious, ask an authorized school official to contact all your instructors regarding your absence. If an excuse is not serious enough to contact an authorized school official then the excuse is not serious enough to be accepted by the instructor.
The instructor makes the final decision to excuse or not to excuse an absence. If you are concerned that an absence will not be excused, you should contact the instructor as soon as possible.
Pandemic/Emergency Preparedness
- Students are instructed to bring all texts and a copy of the syllabus/course schedule home with you in the event of a College Closure. The Academic Calendar will be adjusted upon Reopening; so be prepared for the possibility of a short mini-semester; rescheduled class/exam period; and /or rescheduling of the semester, depending on the length of the Closure.
- If your situation permits, you should continue with readings and assignments to the best of your ability, per the course schedule.
- You will be given instructions regarding how to deal with paper assignments requiring library or other required research by me, as needed.
- Online office hours will be used by me in order to maintain contact with my students. You will be able to “check-in” with questions that you have. If you do not have internet access available, I will also provide my home phone number and home address, as needed. Remember, internet, mail delivery, and telephone services may also be impacted by a Pandemic or other emergency event.
- Finally, stay connected with information regarding the status of the College’s status and Reopening schedule by monitoring the Siena web site, www.siena.edu.
College Policies
- Academic integrity policy
- Accommodations policy
- Emergency preparedness
- Attendance policy
- Cell phone use
Academic Integrity
Exams:
Students caught cheating on an exam, will receive a zero on the exam, will be penalized a full letter-grade in the course, and a letter describing the student's actions will be sent to Siena's Vice President of Academic Affairs. During an exam period, students cannot share information, look at each other's tests, or use unauthorized materials. Unless specific clarification is given, exams are closed-book, closed-notes, there are no cheat sheets allowed, and electronic device usage is prohibited.
Plagiarism on Code:
It is very easy to copy code from other sources and claim it as your own. This is academically dishonest and considered plagiarism. Students who present other authors' code, documents, or programs as their own will receive a grade of zero on the entire project or lab. Students who commit plagiarism a second time will again receive a zero, but will also be penalized a full letter-grade in the course and a letter describing the student's violation will be sent to Siena's Vice President of Academic Affairs. Use the following guidelines to avoid code plagiarism:
Do NOT copy code:
You should never use copied code (from Internet, peers or other sources). Instead, put the copied code away and try to write the code on your own. If you cannot explain your own code and if it happens to match code from other sources, you will be accused of plagiarism.
Do NOT share your code:
While it is natural for students to help each other outside of lab, students retain more knowledge if they attempt to write and debug code on their own. It is acceptable for students to help each other understand general concepts, but students are prohibited from sharing their code or writing code for another student. The only exception is when you are working with a designated partner for a lecture activity, lab activity or group project, and in these cases, the only collaboration and sharing permitted is between designated lab pairs or group members.
Ask for appropriate help:
It is appropriate to ask for or provide help solving a coding problem as long as it is done in a general or abstract way. Appropriate examples include: helping a peer understand an error message, sharing debugging strategies, or explaining a concept related to a specific problem. But, it is inappropriate to have any other students (including tutors) solve your problems directly. Seeking excessive help is a form of cheating. Inappropriate help includes: Asking a peer or tutor to write code for you, looking at another student's working solution, or receiving excessive (step-by-step) help in directly completing a project.
Strive to be independent:
An important goal in this course is for students to learn strategies for becoming more independent with respect to problem solving, coding, and debugging. In the beginning, it is OK to need help. But, towards end of the course, students should not need excessive help writing code. Requiring excessive help indicates that you have not put forth independent effort in lab and on projects. The best way to become an independent programmer is to program often. Experiment with a few lines of code (compile, test and debug constantly). The design of this course will naturally require you to do the programming activities needed to be successful. But, if someone else completes these activities for you, it will show on lab practicals and exams.