Course Procedures - Craig Persiko's CS 111B class
Is CS 111B the right class for you?
- CS 111B is meant for students who already know a little bit of programming, and want to learn the fundamentals of Java programming. If you have never programmed before, you should take CS 110A first.
- In CS 111B, we will cover a brief review of data types, if-statements, loops, and methods (functions), to learn how they work in Java. Then we will spend more time on object-oriented programming (OOP) and inheritance, exception handling, file i/o, and arrays.
- For prerequisite knowledge, before you take CS 111B, you should be able to do something like this in the programming language of your choice:
Write a complete function/method that takes in a single numeric parameter. If the number is positive, use a loop to print a "Hello world!" message that number of times. Otherwise, print a message such as: "Error: number must be positive!"
If you already can write a program like that, then CS 111B is the right place for you to learn Java. If you don't know how to do something like that, then you should take CS 110A first, to get an introduction to programming.
- If you want to transfer and get a Bachelors Degree,
assist.org has official information about which courses transfer (articulate) between schools. For example, you can see there that SFSU wants CS majors to know Java (as covered in our CS 111B and 111C courses).
- CS 111C Data Structures and Algorithms in Java is an important class for CS majors. Before you can take it, you must complete CS 111B (or show the department chair that you have learned Java already.)
Course Requirements
- This class will meet face-to-face on campus: Tuesdays and Thursdays 1:10 PM - 3:00 PM in Batmale Hall room 453 (Ocean Campus). This classroom has Apple MacOS computers for each student. It is CRN 34871 Section 002.
- You will need to use a computer so you can do homework for this class. Only a web browser is needed, so a simple computer or Chromebook is fine, but a phone is not enough - you need a full-size screen and keyboard. (A tablet with an external keyboard can work, but a Chromebook or simple computer is better.)
You may be able to borrow a chromebook and/or get wifi from CCSF. You should also be able to use a computer lab on campus.
- Learning to write computer programs is a time consuming and sometimes
frustrating endeavor of open-ended problem-solving. I expect an
average student to spend about 12 hours per week on this class:
reading, watching videos, attending class, studying, working on programming
assignments and other class work. If you don't have the time or
dedication for such work, this class may not be for you. Make sure to keep up with the course materials and do all the assignments before they are due.
Everything in this class builds cumulatively, so if you get behind, it is very difficult to pass the class. I am available to help via office hours and email, plus there are discussions and lots of opportunities to practice in this class.
- In the first 2 weeks of class, we will cover
Chapters 1-5 of the textbook as a quick review of topics from CS 110A (using Java). So if you are new to programming, I recommend you study those chapters before our class begins.
Major Student Learning Outcomes
Upon successful completion of this course a student will be able to:
- Create and test Java programs that use appropriate method design and control structures with a variety of I/O channels.
- Design, implement, and use classes and objects that adhere to best practices for object-oriented design in Java.
- Implement basic algorithms to manipulate arrays, including multidimensional arrays.
How to reach me:
Instructor Web Page: http://fog.ccsf.edu/~cpersiko
Email: cpersiko@ccsf.edu
Office: Batmale 468
(415) 239-3332
Office Hours (August 19 - December 12):
- Mondays from 2:00 – 3:00 pm in Batmale 453 classroom
- Thursdays from 10:00 – 11:00 am in Batmale 468 (my office)
(plus other times by appointment on Zoom or in person - email me to make an appointment)
Online System for Course Material, Discussions, and Assignment Submission (Canvas):
For more information and to access Canvas, see:
https://ccsf.instructure.com/
Getting Help
Sharing ideas with each other is one of the best ways for you to
learn, so when you have a question or problem, ask your classmates for help.
You can email me anytime: please send me your entire program by email, and specify exactly what error
messages or output your program is producing, along with your question. I'm also available during my office hours listed above.
There is free tutoring available by advanced CCSF Computer Science students, via the
CS Tutor Squad.
Textbook (Free, Online only):
HTML version of Think Java, Second Edition, by Allen Downey and Chris Mayfield
also available in PDF Format of the same book.
Attendance Policy
You are expected to participate in class every week and submit all assignments on time. I may drop you
from the class if you don't post or submit anything, nor come to class for over two weeks, without
explanation.
Course Prerequisite Advisories:
- Before you take CS 111B, you should be able to do something like this in the programming language of your choice:
Write a complete function/method that takes in a single numeric parameter. If the number is positive, use a loop to print a "Hello world!" message that number of times. Otherwise, print a message such as: "Error: number must be positive!"
If you already can write a program like that, then CS 111B is the right place for you to learn Java. If you don't know how to do something like that, then you should take CS 110A first, to get an introduction to programming.
Grading Policy:
Your final score will be made up of the following components:
- 30% - Programming Exercises and Discussions in classroom (or Canvas)
- 50% - Programming Assignments (homework)
- 8% - Midterm Test
- 12% - Final Examination
Midterm and final grades will be assigned on the following
percentage scale:
90% - 100% A
80% - 89% B
70% - 79% C
60% - 69% D
0 - 59% F
Students who do not take the final exam will be assigned a grade of "FW". An "FW" is an "F" grade that also indicates that the student did not complete the course.
Programming Assignments (Homework):
The best way to learn how to program is to do it! Assignments will be given once a week, but you should
try to complete each assignment early, so you can ask questions and get help. You will each
encounter problems that require more time than you anticipate to fix
-- that's the nature of programming. So think of the assignments as due in the morning instead of at night. Then you can ask
questions in office hours or via email on the due date if necessary.
All assignment submissions must include 2 major parts: the Java code
you wrote (the source file) and some sample input and output showing how your program works.
I will employ student workers to grade assignments for this
class. If you have any questions or
concerns about this arrangement or a particular grading decision a
grader makes, please don't hesitate to tell me. I will be happy to review
grading decisions on request.
Late Assignments:
Late submissions are accepted without penalties, but if you get behind in this course, it becomes very difficult
to understand what's going on. So it's important to submit assignments on-time.
You will get no credit for turning in my solution as your own. All
programs you turn in must be your own, even after we have gone through a solution in class.
- First day of classes: Monday, August 19
- Last day to drop a class without having to pay anything for it (SF Residents have to pay for the course if dropped after this date): August 30
- Labor Day Weekend - campus closed August 31 - September 2
- Last day to add a class, also last day to drop a class without it appearing on transcript: September 6
- Midterm Test: October 14 in class covering Chapters 1-7 and 9-10 (Java datatypes, control structures, methods, strings, references and objects)
- Flex Day (faculty professional development) - no classes: Tuesday, October 15
- Last day to drop a class: November 7
- Veterans Day - campus closed Monday November 11
- Thanksgiving Weekend - campus closed Thursday November 28 - Sunday December 1
- Last Regular Class: December 11
- Final Exam: Take in class sometime between December 16-20 (date to be announced). covering Chapters 11-16 plus supplemental reading
(class design, arrays of objects and arrays, extending and reusing classes, and file i/o plus exception handling), plus the earlier topics.
- Last day late assignments will be accepted: December 20
- Final grades available on myRAM Portal starting January 8, on Canvas starting January 2 or sooner.
Cheating
Cheating of any kind will not be tolerated. It will result in a grade of 0 on the assignment or test in
question and can be cause for disciplinary action, including suspension or expulsion.
Cheating on assignments means copying code or answers from another source - that includes copying code from a web site,
or submitting work written by someone else (including AI). Getting help from other sources is not cheating as long as
you're not copying their work or allowing them to copy yours. All code and work that you submit must be written by you. On the
exams, any collaboration or copying constitutes cheating.
Software and Computer Access
Use of CCSF computers, including remote access, is regulated by the
CCSF Computer Usage Policy.
Do not give passwords and other sensitive information to unauthorized persons.
This means you shouldn't tell anyone
your personal passwords and you shouldn't give class account passwords
to people who aren't in this class.
Drop Procedures
Generally it is your responsibility to drop or withdraw from a class
by the final deadlines given in your
course schedule. Do not ask me to drop you; use the myRAM system, or
contact the Office of Admissions and Records to be
withdrawn from a class. If you don't come to class, submit any assignments, or post in any discussions for 10 days without explanation, I may drop you
from the class. If your name is on the roll at the end of the
semester and you don't take the final exam, you will be assigned a final grade of FW. I will not give a
late or retroactive drop or withdrawal.
Disability Accomodations
Students with disabilities who need accommodations are encouraged to contact me. Disabled Students Programs and Services (DSPS) is available to facilitate the reasonable accommodation process.
The DSPS office is located in the Rosenberg Library, Room 323 and can be reached at (415)452-5481 or http://www.ccsf.edu/dsps
Equity, Diversity, Inclusion, and Anti-Discrimination
The CCSF CS Department is committed to promoting equity, diversity, and inclusion in the field of computer science. We strive to make computer science accessible and exciting to all, particularly those who are often excluded from or face frequent identity discrimination in the field. If you have a suggestion for how we can better support you and/or your classmates, please reach out to any CS instructor or to the Department Chair. We will make sure your voice is heard.
For more information and resources outside of our department, please visit
CCSF’s Office of Student Equity.
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 Mildred Otis, Title 5/EEO/ADA/Title IX Compliance Officer, at motis@ccsf.edu
Go to the CS 111B class homepage