Computer Science II
MAT 1540
4 credits
Spring 2025
Meeting Times: Mondays and Thursdays, 12:30 - 2:30
Location: Natural Sciences 1013
Instructor: Professor Abdul-Quader (or just “Athar”)
Email: athar.abdulquader AT purchase DOT edu
Office Hours: Mondays and Thursdays, 9:00 - 10:00 NSB 3003
Learning Assistants:
- Sage Melton
- Jada Valle
- Office hours will be posted on BrightSpace
Course Description
Prerequisite: Computer Science I
This course provides a continuation of Computer Science I. The course emphasizes programming as a basis for the study of computers. While programming is the main focus, the course will afford us the opportunity to introduce other concepts central to the field including data representation, object-oriented design, algorithms, recursion, Boolean logic and some data structures. We will be studying the Java programming language.
Learning Outcomes
In parentheses below, you can see how the course learning outcomes map to the Mathematics / CS Program Learning Outcomes.
Upon completion of this course, students should be able to…
- Understand basic features Java syntax and object-oriented programming including: (PLO 1)
- variables
- conditionals
- loops
- Strings and arrays
- methods
- classes
- polymorphism
- inheritence
- encapsulation
- Design complex programs using some of the basic Java syntax to solve problems algorithmically (PLO 1, 2)
- Read code snippets and determine what problem they are solving, as well as how the code solves said problem (PLO 1, 3, 5)
- Use modular design and object-oriented concepts to create clean solutions to large problems (1, 2, 3)
- Design algorithmic solutions to problems and analyze their efficiency (PLO 1, 5)
Required Textbook
Think Java (2nd edition) by Allen Downey and Chris Mayfield.
- Free PDF
- Interactive version with a compiler (strongly recommended)
Java / IntelliJ / VSCode
All programming assignments will be completed in Java. You will need:
- Download and install the latests Java Development Kit.
- Download and install the Ultimate Edition of the Jetbrains IntelliJ IDE and apply for a free full license using your Purchase email address.
- Download and install Visual Studio Code.
- Install the “Extension Pack for Java” extension for VSCode.
For in-class exercises, we might use IntelliJ, the Terminal (on Mac), or VSCode. For projects that need to be submitted, most likely we will require the use of VSCode, as it works better with GitHub Classroom.
GitHub Classroom
We will be using GitHub Classroom to submit projects and possibly some classwork / homework assignments. More information will be found on BrightSpace.
PURCHASE COLLEGE ACADEMIC INTEGRITY POLICY
The Purchase College academic integrity policy explicitly forbids cheating, plagiarism, and other forms of academic dishonesty. Plagiarism is the appropriation or imitation of the language, ideas, and/or thoughts of another person and the representation of them as one’s own original work. Students are responsible for familiarizing themselves with the definition of plagiarism and the acceptable methods of attribution. Violation of any of the above may lead to formal disciplinary action.
Students who have any questions or doubts about whether any activity is academically permissible should check with the instructor.
ACCESSIBILITY STATEMENT
The Office of Disability Resources collaborates directly with students who identify documented disabilities to create accommodation plans, including testing accommodations, in order for students to access course content and validly demonstrate learning. For those students who may require accommodations, please contact the Office of Disability Resources as soon as possible, 914-251-6035, ODR@purchase.edu (Student Services Building, #316A), www.purchase.edu/odr.
MENTAL HEALTH AND WELL-BEING
University faculty and staff recognize that mental health and stress can impact college performance and interfere with daily life activities. At Purchase, Counseling & Behavioral Health Services can provide support if you’re struggling with feeling overwhelmed, anxious, depressed, lost, stuck or in a crisis. Please call (914)251-6390 or visit our website for more information. CBHS services are free and confidential.
We support all students experiencing emergencies. Services include therapy, support groups, stress reduction at the Harbor Center, and other activities. The Counseling Center in Humanities Lower Level is open M-F, from 9:00a.m.– 5:00p.m. for appointments and walk-up scheduling, or call (914) 251-6390. The Harbor Center Sanctuary in Fort Awesome is available for stress reduction, mindfulness and meditation training, free drop-in classes and support groups, and relaxation.
STUDENT CONDUCT
All students are expected to conduct themselves in accordance with Purchase College’s Student Code of Conduct. Any repetitive or disruptive behavior, including but not limited to outbursts, intoxication/drug use, personal or physical threats, damage to property, etc., may result in the professor requesting the student to leave class, contacting University Police, and/or notifying the Office of Community Standards.
LEARNING CENTER (TUTORING SUPPORT)
All students at Purchase College can take advantage of our tutoring services in the Learning Center and the Einstein Corner. These are free, 45-minute, peer-to-peer tutoring sessions in a variety of subjects and in writing across the disciplines. Sessions can happen in person or through the Online Writing Lab up to 3x/week. The OWL allows students to submit a paper draft and get written feedback by email within 48 business hours. We strongly recommend face-to-face meetings for first-year students and multilingual writers. I encourage you to take advantage of this service to help you excel in this class, as well as your other courses. Please visit the Learning Center and Einstein Corner websites for more information.
For this course, tutoring would be available from the Einstein Corner. Students can make appointments via the Starfish platform. More information here.
Attendance
My expectation is that students come to class whenever possible. Given the ongoing nature of the pandemic, I understand when this may be difficult or outright impossible. In particular, please do stay home if you feel sick at all. I will do my best to make sure notes, readings, and other materials are available online for those who need them.
That said, please do come to class as much as you can. This will allow me to see how well students understand material, and you to work through problems and questions with each other (and me).
Grading Policy
- 35%: projects / problem sets
- Projects 1-3 will be worth 10% each, Project 4 will be worth 5%.
- 5%: Participation / “exit tickets”
- 10%: Demos (short demos / explanations of Projects 1 and 3)
- 10%: Quizzes
- 20%: In-class Exams (Best 2 out of 3 exams, cumulative)
- 20%: Final Exam (TBA, will update when I see the schedule on the registrar)
Late Homework Policy
Programming projects may require a lot of time and I plan to give you plenty of time to complete them (at least 2 weeks). However, things do happen, and so I will make an allowance of up to 48 hours of grace time for you to use among all the projects. (That is, if your first project is 48 hours late, then the rest of your projects need to be handed in on time.)
Collaboration Policy
You are encouraged to discuss homework assignments and projects with other students. You must complete the assignment on your own, however. There is a clear difference between copying someone else’s work and discussing a problem with another person. The latter is encouraged. Plagiarising another student’s work can lead to academic sanctions as per Purchase College’s Academic Integrity Policy
Course Outline (Tentative)
Week | Topics | Readings / Projects |
---|---|---|
1 | Introduction, Data Types | Chapters 1-2 |
2 | Input / Output, Control Flow | Chapter 3, 5 - 6 |
3 | Arrays and Strings | Chapters 6 - 7 (Project 1 assigned) |
4 | Functions / Methods; Project 1 discussion | Chapters 4, 7 |
5 | Exam 1 | |
6 | Classes; Intro to Object Oriented Programming | Chapters 9 - 11 (Project 1 due / Project 2 assigned) |
7 | Object Oriented Programming, Debugging | Appendix D |
8 | Exception Handling; Intro to Polymorphism | Chapters 12-14 (Project 2 due) |
9 | Polymorphism and object-oriented design; Exam 2 | Chapters 12-14 (Project 3 assigned) |
10 | Spring break (no classes) | |
11 | Recursion; Project 3 Discussion | Chapter 8 |
12 | Algorithms and Pseudocode; Searching algorithms | (Project 3 due) Lecture notes (online) |
13 | Sorting Algorithms | (Project 4 assigned) |
14 | Intro to Data Structures; Exam 3 | Lecture notes |
15 | Review | Project 4 due |
This is very much subject to change. All exams, quizzes, and due dates will be announced in class and on BrightSpace.