Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due
COSI 12B – Advanced Programming
Course Description
Overview:
The course will introduce you to object oriented programming using Java. It will begin with an overview of Java syntax basics, then focus on features such as design of classes, interfaces, packages, and APIs. It will also cover the basic principles of software design, testing and collaborative programming.
Upon completion of this class, you will be able to understand the concept of object-oriented programming (OOP) as well as the purpose and usage of inheritance, polymorphism, encapsulation and method overloading. You will be able to create Java application programs using sound OOP practices (e.g., interfaces and APIs) and proper program structuring. Finally, you will be able to develop programs using the Java Collection API as well as the Java standard class library.
Learning Objectives:
-
Overview of Java syntax
-
Cover issues related to the definition, creation and usage of classes, objects and methods.
-
Discuss the principles of inheritance and polymorphism and demonstrate through problem analysis assignments how they relate to the design of methods, abstract classes and interfaces.• Provide the foundation of good programming skills by discussing keys issues in the design of object-oriented software, including programming design patterns and programming testing.
-
Cover the basics of creating APIs as well as allow students to explore the Java Abstract Programming Interface (API) and Java Collection Framework through programming assignments.
Prerequisites
COSI 10a or permission of instructor (based on your past programming background and placement test results).
Credit Hours:
COSI 12b is a 4 credit hours course which requires about 180 hours of study time. Given that we have just about 5 weeks to accomplish our goals, success in this course is based on the expectation that students will spend a minimum of 16-20 hours of study time per week in preparation for class (readings, papers, discussion sections, preparation for exams, etc.).
Course Requirements
Academic Integrity
Every member of the University community is expected to maintain the highest standards of academic integrity. A student shall not submit work that is falsified or is not the result of the student's own effort. Infringement of academic honesty by a student subjects that student to serious penalties, which may include failure on the assignment, failure in the course, suspension from the University or other sanctions (see section 20 of R&R). Please consult Brandeis University Rights and Responsibilities for all policies and procedures related to academic integrity. Students may be required to submit work to TurnItIn.com software to verify originality. A student who is in doubt regarding standards of academic honesty as they apply to a specific course or assignment should consult the faculty member responsible for that course or assignment before submitting the work. Allegations of alleged academic dishonesty will be forwarded to the Department of Student Rights and Community Standards. Citation and research assistance can be found at Brandeis Library Guides - Citing Sources (https://guides.library.brandeis.edu/c.php?g=301723).”
As a student of this course you are agreeing to the following rules:
-
You may not work as a partner with another student on an assignment (unless otherwise instructed by Michael Golitsyn).
-
You may not get code from online sources including Chat GPT.
-
You may not show another student your solution to an assignment, nor look at their solution, for any reason.
-
You may not have another person "walk you through" an assignment, describe in detail how to solve it, or sit with you as you write it. You also may not provide such help to another student. This includes current or former students, tutors, friends, TAs, web site forums, or anyone else.
-
You may not post your homework solution code online or ask others for online help. This includes public message boards, forums, file sharing sites and services, or any other online system.
Under our policy, a student who gives inappropriate help is equally guilty with one who receives it. Instead of providing such help to someone who does not understand an assignment, point him or her to other class resources such as lecture examples, the textbook, or emailing a TA or instructor. You must not share your solution and ideas with others. You must also ensure that your work is not copied by others, such as making sure to log out of shared computers, not leaving printouts of your code in public places, and not emailing your code to other students or posting it on the web. We enforce this policy by running similarity detection software over all submitted student programs.
Assignments
-
Homework will consist of 8 programming assignments. Programs will be graded:
-
“external correctness” - behavior corresponding to assignment specifications
-
“internal correctness” - style and design
-
Because this is a high-pace class and homework builds up on skills gained in previous assignments, it is critical to submit your work on time. Please plan accordingly!
-
Note: homework submitted up to 24 hours late will receive 75% of the credit. Homework submitted beyond 24 hours past due will receive 0% credit.
-
Each student begins the semester with 5 free “late days” (or ten ½ days)
-
A late day allows you to submit your homework up to 24 hours late without penalty. For example, you could use 1 day and submit a homework due Monday at 11:55pm on Tuesday before 11:55pm with no penalty (or before 11:55am on Tuesday using ½ day credit)
-
Regardless of the “late day” credits, homework submitted more than 24 hours past due will receive 0% credit.
-
You cannot use days late for the last homework
-
Late credits are applied automatically. You do not need to ask permission.
-
Assignments will generally be given on Mondays (due on Friday at 11:55pm) and Fridays (due back on Monday at 11:55pm). Please plan accordingly.
Exams/Quizzes
-
Two exams: midterm (Friday of Week 3) and final (last day of classes). Exams are scheduled during the course time.
-
Make-up exams will not be given except in the case of a serious emergency.
Participation
This will be a synchronous online learning experience. We will have class lectures via zoom intermittent with in-class individual and team problem solving.
Evaluation
The final grades for the course will be determined using the following weights:
-
Homework: 35%
-
Exams: 60%
-
Participation: 5%
Essential Resources
Accommodations
Brandeis seeks to welcome and include all students. If you are a student who needs accommodations as outlined in an accommodations letter, I want to support you. In order to provide test accommodations, I need the letter more than 48 hours in advance. I want to provide your accommodations, but cannot do so retroactively. If you have questions about documenting a disability of requesting accommodations, please contact Student Accessibility Support (SAS https://www.brandeis.edu/accessibility/) at 781.736.3470 or
Course Materials
The primary source of information will be the lecture presentations. You are also welcome to purchase the optional textbook (below) as it will make a useful supplement to the lecture presentations. If you are having difficulty purchasing course materials, please make an appointment with your Student Financial Services or Academic Services advisor to discuss possible funding options and/or textbook alternatives.
Optional Readings
Building Java Programs - A Back to Basics Approach (3rd Edition) by Stuart Reges and Marty Stepp, Addison Wesley.
✓ The textbook is optional; 3rd Edition or greater.
Apps or Tools/Equipment
The following is the lists of tools students will be using during the course.
LATTE
LATTE is the Brandeis learning management system: http://latte.brandeis.edu. Login using your UNET ID and password.
Java SDK
The required software for the course is the Java Development Kit (JDK) 8 and the Visual Studio Code editor is the required Software Development Kit (SDK).
GIT Hub
GitHub version control software.
Mastery Learning App
https://mastery.cs.brandeis.edu/
Privacy
This class requires the use of tools that may disclose your coursework and identity to parties outside the class. To protect your privacy, you may choose to use a pseudonym/alias rather than your name in submitting such work. You must share the pseudonym/ alias with me and any teaching assistants as needed. Alternatively, with prior consultation, you may submit such work directly to me.
Student Support
Brandeis University is committed to supporting all our students so they can thrive. The following resources are available to help with the many academic and non-academic factors that contribute to student success (finances, health, food supply, housing, mental health counseling, academic advising, physical and social activities, etc.). Please explore the many links on this Support at Brandeis page (https://www.brandeis.edu/support/undergraduate students/browse.html) to find out more about the resources that Brandeis provides to help you and your classmates to achieve success.
Change Policy
I reserve the right to make changes to this syllabus and the associated curriculum web site if I deems it necessary. Any changes will either be announced in class or through e mail and listed in LATTE. All students are responsible for finding out about such changes. Students must use their common sense and not look for loopholes in the syllabus because, ultimately, the instructor has the final say in all matters. If you are confused on any assignment, ask the instructor for clarification.
By deciding to stay in this course, you are agreeing to all parts of this syllabus. In fairness to everyone, the syllabus must apply equally to all students without exception.