Instructor:
  Ameen Abdel Hai
Office:
  BL-217
Email:
  aabdelha AT sju DOT edu
CSC501: Computer Science I
CSC502: Computer Science II

Students will learn general principles of program design at first by using libraries of predefined program units, and later by constructing complete programs. Emphasis is on developing techniques for program design that lead to correct, readable and maintainable programs. A subset of Java will be used.
Programming language: Java


Textbook: Absolute Java , 5th Edition, by Walter Savitch, Addison-Wesley, 2012.
Click here to download PDF version of the book
Prerequisites: None (this course will cover all programming concepts from scratch).
Software: Java IDE - Eclipse or IntelliJ IDEA.
Course materials and syllabus: Dr. Susanna Wei:
http://people.sju.edu/~swei/

The academic year of 2018-2019 welcomes you!

Major Topics

  • Recursion
  • Inheritance
  • Polymorphism
  • Abstract Classes
  • Interfaces
  • Inner classes
  • Generics
  • Collections
  • LinkedList data structures
  • Design Patterns (Factory Method)
  • Java and Bitwise operators

Course Curriculum

Chapter Readings Source Code/Sample Programs
Chapter 1:
Getting started with Java
click here for slides/presentation Source Code
Assignment 1
Chapter 2:
Console Input and Output
Click here for slides/presentation Source Code
Chapter 3:
Flow of Control
Click here for slides/presentation Source Code
Examples
Revise
Chapter 4:
Defining Classes I
Click here for slides/presentation Source Code
Chapter 5:
Defining Classes II
Click here for Slides/Presentation Source Code
Chapter 6:
Arrays
Click here for slides/presentation Source Code
Chapter 7:
Inheritance
Click here for slides/presentation Source Code
Chapter 8:
Polymorphism and Abstract Classes
Click here for slides/presentation Source Code
Chapter 9:
Exception Handling
Click here for slides/presentation
Click here Exceptions
Source Code
Chapter 10:
Files I/O
Click here for slides/presentation
Additional Readings - Files I/O
Source Code
Chapter 11:
Recursion
Click here for slides/presentation Source Code
Chapter 13:
Interfaces and Inner Classes
Click here for slides/presentation Source Code
Chapter 14:
Generics and the ArrayList Class
Click here for slides/presentation Source Code
Chapter 15:
LinkedList and Data Structures
Click here for slides/presentation Source Code
Review Review

Course Evaluation and Grading Criteria

Course Evaluation:
All assignments are to be handed in by the start of the class on the assigned date. Programs and labs may be turned in up to one week late, with a 50% penalty. Programs and labs more than one week late will not be accepted. There will be NO MAKE–UP EXAMS. You will be receiving TWO official grades for this course at the end of the semester. The work for the first “course” will be finished during the first 8 weeks of the course but you will not receive your official grade until the end of the semester. The second “course” will be completed during the last 7 weeks of the semester. It will be possible to pass the first half of the course but not the second.


Grading:
Homework assignments: 20%, quizzes: 10%, midterm exam: 30%, final exam: 40%
Final gradings will be given according to the following scale:

Undergraduate students

A 96+
A- 90 - 95
B+ 85 - 89
B 80-84
B- 78-79
C+ 75-77
C 71-74
C- 65-70
D 61-64
F 0-60

Graduate students

A 96+
A- 90 - 95
B+ 85 - 89
B 75 - 84
C 65 - 74
F 0 - 64

Rules & Regulations

Accommodations for Disabilities: Reasonable academic accommodations may be provided to students who submit appropriate documentation of their disability. Students are encouraged to contact Dr. Christine Mecke in the Office of Student Disability Services, Bellarmine, B-10, at cmecke@sju.edu; or at 610.660.1774 for assistance with this issue. The university also provides an appeal/grievance procedure regarding requested or offered reasonable accommodations through Dr. Mecke's office. More information can be found at: www.sju.edu/sds.

Class room and meetings: Go back to the main page or click here for classrooms, meeting times, and office hours. If you have any further queries, please do not hesitate to contact me via email or pop in to my office during office hours. If you need to see me urgently and office hours are not suitable for you, please email me and we will organize a meeting.

Assignments/Lateness: Email your assignments to me and our TA on or before midnight on the day they are due. If the assignment is a coding assignment, please be sure to include your source code as well as the output of sample test runs. Work may be turned in up to one week late. Late work will be penalized by 50%. After one week late, work will not be accepted. In case of an emergency, please contact me and I will examine whether I can postpone your assignment.

Academic Honesty: This course will follow the University's standard policy on academic honesty. In particular, any cheating (including plagiarism) or assisting another student's cheating on any assignment, test, or the final exam will be penalized by either a zero on the test, or by failure of the course, at my discretion. Finally, if you cheat twice during this course, you will fail the course. Remember that the University may inflict further penalties other than those listed here under the provisions of the published Academic Honesty Policy. Clarification: Webster.com defines plagiarizing as, "to steal and pass off (the ideas or words of another) as one's own : use (another's production) without crediting the source." Therefore, if you cut-and-paste something from the web, you are plagiarizing. If you copy another student's work, you are plagiarizing. If you have someone else do your work for you, you are plagiarizing.
You may work as a partner with another student on an assignment to an extent. Two identical solutions are not considered. If I receive identical solutions from two students, both students will be lose credit for their homework or might not get any credit for it. Note, I consider copying solutions from online sources to be cheating. Please contact me whether you have any queries in regard to assignments due. If you have any questions or face any difficulties, ask me before the deadline

Mobile Devices (i.e., phones, laptops, and tablets): Mobile devices (cell phones) are not permitted, Laptops can be used for note taking or any other purposes related to class activated, such as writing code and solving technical problems. All other uses are not permitted in class.

Attendance: You are encouraged to attend every lecture. Attendance is not mandatory. However, if you do not attend lectures/classes, I will consider this as you are comfortable with the materials and able to write exams and pass the course. Note, if you do not attend regularly, I will not be able to go over the materials again during office hours. However, if you attend, make an effort, work hard, I will be delighted to explain and go over any topics or solve any difficulties faced during the course.

Important Reminder for csc501/csc502 students: If you receive a grade below B in this course, you will not be able to get admission to the Computer Science graduate program.