Course Syllabus
CS 211S: Advanced Java: Standard Edition
CRN 31996, Section 931
Spring 2021
The Syllabus contains nine sections. There is a lot of information, but it is important for you to read each section. To read each section, click the heading for that section to expand and read. In the future, click on the Syllabus Navigation Link on the top right to jump between sections or revisit relevant sections.
Course Description
Introduces advanced Java language features and packages that are essential for building Java Standard Edition applications. Topics include multithreading, collections, generics, Swing classes, lambdas, functional programming, and streams. Helps prepare students for industry certification in Java programming.
Prerequisites
Prerequisite: CS111B
Student Learning Outcomes
- Create multithreaded programs.
- Create programs using an event-driven graphical user interface (GUI)
- Implement programs with input/output (I/O) functionality that read from and write to files and use exception handling
- Create object-oriented programs that use arrays, data collection classes, and generic classes
- Use Java 8 features including lambda expressions, functional interfaces, and streams to implement a functional programming approach
Class Meetings
This is a fully online course. All course activities will occur online.
Course Web Site
Students will use the Canvas Learning Management system for all course activities, including accessing instructional materials, submitting assignments, and viewing grades. Your instructor is here to help with the course material and can sometimes help with some Canvas issues. But, if you need help uploading an assignment or with the mechanics of Canvas, Canvas help is the number to call.
For 24/7 help with Canvas call: 1-844-592-2198.
For technical help with your RAM ID or logging in, visit the CCSF Help Desk
Course Textbook and Technology
Required Textbook
-
Core Java Volume 1- Fundamentals (11th Edition)
Author: Cay S. Horstmann
ISBN-13: 978-0135166307
Copyright: 2010
Publisher: Pearson Education
- The 9th edition and 10th edition are also acceptable.
- There is a 9th edition book on reserve at the library. Note that the library is currently open for contactless pickup.
- A physical book, digital copy, rental copy, or any other format of book is acceptable.
Optional Textbooks
-
Effective Java (3rd Edition)
Author: Joshua Bloch
ISBN-13: 978-0134685991
Copyright: 2018
Publisher: Addison-Wesley
- The 2nd edition is also acceptable.
-
Java SE8 for the Really Impatient: A Short Course on the Basics
Author: Cay S. Horstmann
ISBN-13: 978-0321927767
Copyright: 2014
Publisher: Addison-Wesley
Canvas
Students will use the Canvas Learning Management system for all course activities. For 24/7 help with Canvas call: 1-844-592-2198. For help with your RAM ID or with logging into Canvas, visit the CCSF Help Desk (Links to an external site.).
Required Software
- Adobe Reader
- Update your browser if needed for Canvas
- Ability to watch YouTube videos: QuickTime Player or Flash Player
- You are required to have access to software to write, compile, and run Java programs for our course. Review the Java Software page for more details.
Course Logistics
The CCSF instructional calendar is available online. Below are some important dates for our class.
- Class begins: Monday, February 1, 2021
- Last day to drop for refund: February 10
- Holiday: February 12-15
- Last day to add: February 22
- Last day to drop without a W: February 22
- Spring Recess: March 27 - April 2
- Last day to drop with a W: April 29
- Final exam: May 25-26 (online)
- Class ends: May 26
- Grades available on myRAM: June 11
Dropping the Class
Students who do not participate in the academically related activity during the first week of class (including posting to the Check-In Discussion, submitting Homework 00: Course Procedures, and submitting M1 Homework Assignment: Class Design) will be considered “no shows” and will be dropped from the class.
If you decide to discontinue this course, it is your responsibility to officially drop it to avoid getting no refund (after 10% of course length), a W symbol (after 20%), or a grade (after 60%).
You must actively participate in the course to remain in the course and not be dropped by the instructor. You must sign into the course, participate in discussions, and submit assignments. Students who do not log into the course on Canvas for over one week will be dropped from class for non-participation. Students who have not engaged in academically related activity for a week will be dropped from the class. Logging in and just viewing the course materials, by itself, is NOT active engagement.
It is strongly advised that if you need to miss more than one homework deadline that you contact me to avoid being dropped from the class.
Pass‐NoPass (P/NP)
This class must be taken for a letter grade; it cannot be taken as Pass-NoPass.
Course Communication
Instructor: Jessica Masters
Email: jlmasters@ccsf.edu
I prefer to receive messages through email, rather than the Canvas Inbox. When sending email, please include "CS211S" in the message so I know what class you are referring to.
Communication Plan
- I will respond to your messages within 48 hours (although usually much sooner!) during the work week (Monday-Friday), excluding holidays, between the hours of 8:00am - 4:00pm.
- Note that assignments are due at 11:59pm, but I will not be online at this time. Be sure to start work early and ask questions early on so you can get an answer in time.
- I will participate in the discussion boards to answer student questions.
- I strive to review and grade homeworks within a week of the due date.
Instructor Announcements
The instructor will post announcements on the “Announcements” page in Canvas several times each week. Announcements contain critical information such as upcoming deadlines, common mistakes or feedback, or summaries of current topics. Canvas notifies students according to their preferred Notification Preferences as soon as the instructor creates an Announcement. Be sure you are receiving and reading the Announcements.
Discussion Boards
The discussion boards are our only method of group communication for the class. Post all course-related questions to the discussion boards. Posting questions, posting answers, and reading other students' posts is key to being successful in the course.
If you have a question about something, it's very likely that someone else has the same question. Posting the question allows everyone to benefit from the question, answer, and discussion. The discussion boards take the place of an in-class discussion, where you would hear (and perhaps respond to) other students' questions and answers.
Online discussion boards are widely used in the "real world" (e.g., stack overflow). Consider using them in our class to be good practice for using them out in the world!
Pronto
I will not be use Pronto to communicate. Students are welcome to use it to communicate with each other. I will not read or respond to Pronto posts.
Grading
Visit the “Grades” page in Canvas to keep track of your grades. I continually grade homework throughout the week and post grades and comments.
Methods of Evaluation
The course work is weighted as follows to determine your final grade:
Homework Assignments: 60%
Exams: 30%
Participation: 10%
Late Policy and Dropped Grades
Homework is accepted up to 4 days after the due date with a 5% late penalty each day. There are no further late submissions accepted unless you have arranged an extension with the instructor.
If you have concerns about completing an assignment on time or by the late deadline, contact me well in advance of the due date to ask about an extension.
Assignments are evaluated based syntax, logic, and style. Solutions should be syntactically correct (i.e., compile and use correct Java syntax), semantically correct (i.e., accomplish the task), and follow Java coding conventions.
I drop the lowest homework grade.
Homework Assignments
Assignments are programming projects.
You are allowed to work in a group on up to five homeworks over the semester. You can earn up to 50 extra credit homework points for each homework submitted as a group (10 points per group submission). Groups can be up to four students.
When working in a group, submit only one assignment to Canvas and put everyone’s names in the Canvas comment field. You will also describe how you worked as a group.
Assignments must compile. Submitted assignments that do not compile will receive a grade of zero.
Assignments are due at the end of the course week: Mondays at 11:59pm.
Participation
Participation is based on posts made to each module's graded practice discussion board. You are required to post one answer to this discussion board in each module. Note that posts in other discussion boards do not count towards your participation score.
Your posted answer is worth 10 points. Answers are not graded and you are not being scored based on the correctness of your answer, only on your participation.
There are 13 graded practice boards. You can only earn a max of 100 participation points and this part of the grade cannot go over 100%. This allows you to miss up to three practice posts and still get 100% for your participation score.
The purpose of the graded practice discussion boards is to get practice with and feedback on topics before you submit your homework. Participation posts are due before the homework, usually on Sunday at 11:59pm.
I review the graded discussion boards every day Monday - Friday. I do not leave feedback on correct posts, I only score them with the 10 points. It is best to post early in the week if possible to get feedback on topics early.
Exams
There is an online midterm and an online final exam. The exams are open-note, open-book, open-Internet.
The exam material comes from the textbook, class lectures, class videos, and supplemental materials. It is your responsibility to take the online exams by the due date. You must complete exams on your own and cannot communicate with anyone other than the instructor during the exam.
Letter Grades
Grades will be assigned as follows:
- A: 90% - 100%
- B: 80% - 89.9%
- C: 70%: - 79.9%
- D: 60% - 69.9%
- F or FW: < 60%
An “F” grade indicates that a student attended, participated and completed the course but failed to master the course curriculum.
An “FW” grade indicates the student stopped attending a course after the “last day to withdraw” deadline and subsequently did not submit any work or participate in any exams. Please check with your counselor and financial aid advisor for possible implications of the FW grade on residency and financial aid status.
Expectations
Student Expectations
This is a somewhat compressed course (16 weeks instead of 17.5). I expect students to spend approximately 12 hours per week completing course activities. Please make sure you have the time and dedication for this amount of work.
Here is what I expect of students each week:
- Watch the instructor-provided lecture videos while following along with the provided lecture notes and source code.
- Read the textbook.
- Complete the practice questions (and post one answer to the graded discussion board).
- The more you code, the more successful you will be!
- Practice, practice, practice!
- Complete the assigned homework and submit on time.
- Let the instructor know as soon as possible if you have any concerns about getting an assignment submitted by the deadline.
- Participate in the discussion boards.
- Post questions that you have.
- Answer other students' questions when you can.
- Read the questions, answers, and discussions posted by other students.
- Do your own work and your best work.
- One more time because it's so important: Practice, practice, practice!
Instructor Expectations
Here is what you can expect of your instructor:
- I will respond to your email or message within 48 hours during the week, unless I inform you otherwise.
- I will treat you and your ideas with respect.
- I attempt to grade homework assignments within a week of the deadline.
- I will post grades and feedback in the Canvas Gradebook.
- I will give feedback on any homework or coding question as to why points were deducted.
- I will work hard to make this a great class.
Standards of Conduct
Students who register in CCSF classes are required to abide by the CCSF Student Code of Conduct. Violation of the code is basis for referral to the Student Conduct Coordinator or dismissal from class or from the College. See the Office of Student Affairs.
Collaborating on or copying of tests or homework in whole or in part will be considered an act of academic dishonesty and result in a grade of 0 for that test or assignment. I encourage students to share information and ideas, but not their work. See these CCSF-provided links on Plagiarism:
Encourage Academic Integrity and Prevent Plagiarism
Plagiarism in Computer Science
Watch my video discussing Academic Honesty in Computer Science. You can also review the slides.
Plagiarism means representing someone else's work as your own. Plagiarism means using the ideas, text, or programming code of someone else without appropriate acknowledgement. Plagiarism also consists of allowing someone else to write or alter your own work and submit it as your work.
Some examples of plagiarism/cheating:
- Copying and pasting code from a website and submitting that code as your own
- Submitting answers or code written by another student (from this semester or a previous semester)
- Submitting answers from an online source
- Posting an online request asking someone else to write an answer or code
- Posting a homework question or exam question to an online study site and asking someone to complete it
- Communicating with other students or any other people other than the instructors during this exam; this includes e-mail, text, instant messaging, or any form of communication
All of the above activities will result in a 0 on the assignment or exam and potential disciplinary action.
If you are ever unsure about how to appropriately use online help sources or code that you see elsewhere, post to the discussion board to ask! Here are also some basic rules to follow to make sure you are acting ethically:
- Write your own code.
- This is the most important thing: write your own code.
- If you get ideas or help from a website or person, that is okay. But use those ideas to write the code yourself.
- I recommend reviewing the help and then putting the help away to write the answer. Close the browser, turn off the phone- whatever- just remove the resource from sight and then write the code yourself.
- This will not only ensure you are not plagiarizing but will also ensure that you actually understand the concept.
- Make sure you can explain any code you submit.
- Don't post homework or exams to online study sites.
Course Schedule
Our course weeks run from Tuesday morning through Monday night. The dates of each module are listed in the title of each module.
Carefully check the due date of each assignment to make sure you know when the assignment is due. The "Calendar" icon on the left can also help with this
The schedule is subject to change.
Week/ Module | Dates | Topic |
1 | Monday, February 1 - Monday, February 8 | Review: Class Design, Inheritance, and Polymorphism |
2 | Tuesday, February 9- Tuesday, February 16 | Class Design Continued: static, pass by value, interfaces, Comparable, enum |
3 | Wednesday, February 17 - Monday, February 22 | Factory Methods, Builder Pattern, Strategy Pattern (and Comparator) |
4 - 5 | Tuesday, February 23 - Monday, March 8 | GUIs with JavaFX Part One and Two |
6 | Tuesday, March 9 - Monday, March 15 | Input, Output, and Exception Handling |
7 | Tuesday, March 16 - Monday, March 22 | Collections |
8 | Tuesday, March 23 - Friday, March 26 | Midterm Exam |
Saturday, March 27 - Friday, April 2 | Spring Break | |
9 | Monday, April 5 - Monday, April 12 | Generics |
10 | Tuesday, April 13 - Monday, April 19 | Java 8 and Lambdas |
11 |
Tuesday, April 20 - Monday, May 3 (two weeks) |
Java 8 Streams |
12 |
Tuesday, May 4 - Monday, May 17 (two weeks) |
Concurrent Programming (Multithreading) |
13 | Tuesday, May 18 - Monday, May 24 | Miscellaneous: Reflection, JARs, Garbage Collection, Annotation, Assertions, Unit Testing |
14 |
Tuesday, May 25 - Wednesday, May 26 |
Final Exam |
Academic Accommodations for Students with Disabilities
If you need classroom or testing accommodations because of a disability, or have emergency medical information to share with us, please contact us as soon as possible.
Students seeking disability related accommodations are encouraged to also register with Disabled Students Programs and Services located in Room 323 of the Rosenberg Library (415) 452-5481. Please see the DSPS website for more information and alternate locations.
Anti-Discrimination Policy
The San Francisco Community College District is committed to the principles of equal opportunity, and the prevention of discrimination and harassment in any program or activity of the District on the basis of race, color, ancestry, national origin, ethnic group identification, religion, age, gender, gender identity, marital status, domestic partner status, sexual orientation, disability or AIDS/HIV status, medical conditions, or status as Vietnam-era veteran, or on the basis of these perceived characteristics, or based on association with a person or group with one or more of these actual or perceived characteristics.
If you believe you have been subject to discrimination, please contact Lal Jones-Bey, Title 5/EEO/ADA/Title IX Compliance Officer, at ljonesbey@ccsf.edu.