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  syllabus navigation button 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.

Course Outline of Record

Prerequisites

Prerequisite: CS111B

Student Learning Outcomes

  1. Create multithreaded programs.
  2. Create programs using an event-driven graphical user interface (GUI)
  3. Implement programs with input/output (I/O) functionality that read from and write to files and use exception handling
  4. Create object-oriented programs that use arrays, data collection classes, and generic classes
  5. 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

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.).

  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

Citing Information Sources

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.