CS 131B Syllabus

CCSF Computer Science
Douglas Putnam

This course is not intended to be your first programming course. It is designed for students who have taken CS 110A Intro to Computer Programming or have equivalent skills. If you have never programmed before, this is not the course for you. Instead, take CS 110A, then take this course.

1 Course Information

This class will be taught via remote asynchronous instruction, which means we will not have any scheduled meetings. Each week you will read the online textbook and notes, watch videos, do programming exercises, discuss your classmates' exercise solutions, and submit programming assignments in Canvas.

Table 1:
Course Start End 100% Refund Drop w/o "W" Drop with "W" P/NP Grading
CS 131B, Sec 932/933 09/29/2022 12/20/2022 09/08/2022 09/16/2022 11/21/2022 TBA

2 Advisories and Prerequisites

Before you register for this course, give serious consideration to this advisory:

This course assumes that you have at least the programming knowledge equivalent to what you would learn in CCSF's CS 110A Intro to Programming. If you have never taken a programming language course, do not register for this course. Instead, take a introductory programming course such as CCSF's CS 110A Intro to Programming, then take this course.

Are online courses right for you?

If you've never taken an online course, read What to Expect in an Online Class to get an idea of what's expected of you in CCSF online courses.

Write a self-evaluation program to test your readiness for this course

If you're wondering if you're ready to enroll in a B-Level course such as this one, or CS110B or CS111B, try to complete the following task in any language.

Write a complete function/method that:

1. Expects a single integer parameter
2. If the number is positive, prints a “Hello world!”
  message that number of times
3. Otherwise, prints a message such as: “Error: number must be
   positive!”    

If you're unable to complete the function correctly, do not register for this course: take CS 110A Introduction to Programming. Visit the Computer Science home page for more information.

3 Catalog Description

CS 131B Python Programming (4)

Lec-70 Credit, Degree Applicable

P/NP Available

ADVISE: CS 110A or 111Ap or 113A or 130A or 160B.

Python is interpreted, interactive, and object-oriented. Recommended for general-purpose programming, system administration, or web programming. Write stand-alone programs that perform various tasks including manipulating numerical and textual information; accessing content in files; transferring information to and from web sites.

UC/CSU

4 Major Learning Outcomes (SLOs)

IV.

MAJOR LEARNING OUTCOMES

Upon successful completion of this course, the student will be able to:

  • Develop working and maintainable Python programs that make use of standard and exceptional control flow
  • Develop working and maintainable object-oriented Python programs using classes and objects
  • Use Python data structures to store, update, and retrieve data
  • Develop and use programmer-defined modules in a Python program
  • Use regular expressions to identify patterns in strings and to make substitutions
CS 131B Course Proposal of Record

5 Required Textbooks

Supplemental Resources

6 Disabled Student Programs & Services

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.

7 Tutoring

This semester the Tutor Squad can help you with CS 131B Python Programming and CS 160B Shell Scripting. You can make an appointment at https://sites.google.com/view/cs-tutor-squad.

8 Your RAM ID

Before you can log in to the CCSF learning management system and some other CCSF online services, you will have to claim your RAM ID. If you have problems with the claiming process, contact the CCSF Helpdesk at 415-239-3711 or call toll-free at 844-693-4357.

9 The CCSF LMS

The CCSF learning management system (LMS) is where you will find the course weekly readings, assignments, discussions, exams and grades. This system is often referred to as "Canvas". The CCSF Online Learning Team will send you an orientation email with login instructions before the first day of the semester. To log in to the LMS you need a valid CCSF RAM ID.

10 Course Methodology

The course is offered 100% online. There are no face-to-face meetings in this course. Most of your time will be spent reading, doing practice exercises, and writing programs to solve problems as part of assignments. The online readings (organized by weeks) provide a structured learning path. Sometimes you will get stuck. At that point you can receive help from me and your classmates by posting your questions to the class discussion forums.

11 How we maintain contact

Although there are no face-to-face meetings in this course and no on-campus office hours, I will maintain contact with you throughout the semester by means of discussion forums, by posting graded questions in the forums, email, and by occasional screen-casts. In addition, I'll be making weekly announcements about important academic dates and deadlines, course assignments and quizzes, and other timely matters.

When questions arise about the reading or about a coding assignment, I encourage everyone to post them to the class forums where the entire class can participate in the discussion. I will monitor the forums during the week and answer any unanswered questions.

If you have questions regarding your grades or other private matters, please email me at dputnam (at) ccsf (dot) edu. Monday through Friday I will respond within 24 hours. If you send me an email after 5pm Friday, I will respond first thing Monday when I return.

11.1 Office hours

There are no on-campus office hours for this online course. However, I am available on Canvas weekdays from 10 am to 4 pm. If you have questions after hours or on the weekend, you can post your questions to the course forums 24/7.

12 Weekly effort

This course requires the same commitment as a face-to-face class. In some ways an online course is more challenging because you will be working on your own. You will doing the reading, exercises, exams, and the coding assignments just as you would for a classroom course. Expect to spend about from one to three hours of study time for each unit. For example, a 3-unit course might require from 3 to 9 hours study each week.

Seven-week Summer courses and courses taught in eight weeks require proportionately more work per week than in 16-week course.

13 Accounts

As a registered student, you will have two CCSF accounts: one on https://ccsf.instructure.com, CCSF's Learning Management System (LMS), and one on hills.ccsf.edu (Hills), CCSF's Linux server.

Your CCSF LMS and Hills accounts will be automatically created and activated when you are officially registered for the class. The account creation process may take a day or two from the time you register. These two accounts are not related — you will have different user names and passwords for these accounts.

13.1 Hills

Your Hills account (hills.ccsf.edu) is a standard Linux shell account with access to the web server.

13.2 Your initial Hills password

Your RAM ID name and password do not work with your Hills Linux account. Calculate your initial Hills password by following this step-by-step process:

Combine:

  • The first three letters of your birth month, followed by
  • Two numbers for the day of your birth, followed by
  • Two numbers for the year of your birth, then followed by
  • A period (.) and your first and last name initials.

EXAMPLE: If you were born on 8/2/99 and your name is Sheryl Razkofsky, your initial password would be: aug0299.sr.

13.3 Hills Password Reset

If you need to reset your password, the CCSF Help Desk will help you: PASSWORD RESETS

14 CCSF's Attendance policy

You are expected to academically active in this course. Being academically engaged means that you turn in assignments on time, take scheduled quizzes and exams on time, and participate in graded discussions. You may be dropped without explanation if you are academically inactive for more than 2 weeks in a row.

If you must become temporarily inactive for a short period, contact me by email before your absence so that I do not drop you.

CCSF Attendance Policy

15 Class participation

Class participation in this course is implemented with discussion forums. Throughout the semester there will be graded participation assignments that require you to contribute to the class discussion. Class participation is worth 5% or your final grade.

16 Grading

Table 2: Final Grade weighting
Letter %
A 90-100
B 80-89
C 70-79
D 65-69
F < 65
Table 3: How grades are apportioned
Coursework %
Graded assignments 60
Final Exam 15
Ungraded Exercises 10
Quizzes 10
Class participation 5
TOTAL 100

17 Exams & quizzes

All exams and quizzes will take place on the CCSF LMS, including the midterm and final exams. Quizzes have hard deadlines. Once the deadline passes there are no make-up quizzes and no deadline extensions.

18 Assignments

This is a skill-building course with weekly ungraded coding exercises and/or graded assignments. Turning in work on time is a gradable component of the exercises and assignments. Definitive due dates for the coursework are always available on the class calendar.

  • You can develop your programs on any computer.
  • If you are in a programming course that uses Ruby, Python, Perl, or PHP, your code must run correctly on Hills.
  • If you are in a Rails or WordPress/Drupal course, your code will run on your own computer or on a cloud hosting services specified in the assignments.

Submit your work in plain text files only. Assignments submitted as .docx, .pdf, .rtf, screenshots, or any format other than plain text will receive a score of zero.

18.1 Assignment schedule

  • Assignments will be given weekly by 6 PM Mondays and will be due before midnight the following Monday. In other words, assignments are due 7 days after they are given.
  • Solutions to exercises and assignments will be given Wednesdays.
  • If you have questions about the assignments, ask them before the due date.

18.2 Timeliness

  • To receive full credit, turn in your work on time.
  • Assignments turned in late will receive partial credit, with scores reduced by 5 points for each day late, up to one week late.
  • Assignments turned in more than 1 week late will receive a maximum score of 50%.
  • If you have a verifiable documented reason for turning in an assignment late, contact me by email before the assignment is due.

19 No make-up assignments, do-overs, or extra credit assignments

There are no make-up exams or assignments, and no extra-credit assignments in this course. If you fail to turn in work, you cannot do "extra" work to make up for not doing the assigned work. Once you turn in your work and it's graded, the grade is final. Once your quiz is graded, your score is final.

20 Technical problems

If there are technical problems with the CCSF LMS or Hills that prevent you from taking an exam or submitting your assignment, I will extend the deadlines for effected quizzes and assignments. Deadlines will not be extended for technical problems with your personal hardware or network. Problems such as a your hard drive failing, a flaky wi-fi connection at the coffee shop, your computer catching a virus, etc. do not qualify for extensions.

21 Academic honesty and plagiarism

Student conduct must conform to College rules and regulations, including CCSF's policy towards academic honesty, the violation of which subjects a student to disciplinary action:

Academic or intellectual dishonesty, such as cheating or plagiarism subjects student of disciplinary action. Cheating is defined as taking an examination or performing an assigned, evaluated task in a dishonest way such as having improper or unapproved access to answers or exams. Plagiarism is defined as the unauthorized use of the written language and thought of another author without proper quoting or citing and representing him/her as one’s own.

CCSF Student Code of Conduct.

22 Collaboration policy

Unless instructed otherwise, collaboration is encouraged on specific components of the coursework. When you collaborate on a graded assignment, you must explicitly credit work done by others.

Not all academic coursework can be collaborative: there are activities that you alone are responsible for. The lists below clarify what coursework can be done in collaboration and what cannot.

Work you can do with others

  • Exercises, homework, and labs.
  • Discussions with others about general concepts and materials in each course.
  • Presenting ideas and written work to classmates or others for comment or criticism.
  • All participants in a collaboration must be listed when you turn in your work.
  • The class forums cannot be used for collaboration.

Work you have to do on your own

  • Exams. Exams must be your own work. You cannot submit the work of any other person.
  • You cannot allow anyone else use your user name and/or password to access course material.
  • You cannot engage in any activity that would dishonestly improve your results, or improve or hurt the results of others.
  • You cannot post answers to discussion forums for problems that are being used to assess student performance. You can post your lab solutions on the class forums after the due date has passed.
  • You cannot discuss any currently open exams. If you have questions or comments about the exams, send me an email at dputnam@ccsf.edu.
  • You can discuss exams on the forums once their due date has passed.
  • Do not post solutions for open assignments.
  • Do not use the forums to ask for help with exercises or graded assignments

23 Class discussion forums

Since there are no face-to-face meetings in this course, all class discussion is through the LMS discussion forums. When you have questions about the reading or about a coding assignment, post your questions to the class discussion forums where your classmates can join in the discussion. I will monitor the forum discussions during the weeks and respond when necessary.

If you have a personal question regarding your grade or other matters, please send it to dputnam (at) ccsf (dot) edu.

23.1 Forum Etiquette

The tldr; is simply:

  • Be kind and respectful to others.
  • Use full sentences.
  • Avoid jargon and acronyms.
  • Use language that supports others.
  • Check your spelling.
  • Stay on topic: discuss the course, the reading, the assignments, Python, programming.

The TMI is:

  1. Do the assigned reading before posting a question. The answers to many of your questions are in the reading assignments.
  2. Read through forums to see if your question has already been asked.
  3. Search Google and Stack Overflow for answers to your questions before posting them to the class forums.
  4. Take the time to re-read your questions/answers for errors before actually posting them.
  5. If you post a question, then figure out the answer yourself, don't leave your question hanging — post your answer to your own question.
  6. Be patient. Posting a question to the forum doesn't mean that you will get an instantaneous answer. Don't re-post your question if it's not answered immediately.
  7. When answering questions, refrain from giving your solutions to the assignments. Rather, be a mentor. Give guidance, such as page numbers in the reading or links to relevant resources. You can even show clarifying examples.
  8. No code sharing of open assignments is allowed on the forums. Don't post your lab code on the forums until after the assignment has been closed for two days. The forums are not intended for collaboration — you can collaborate outside of the forums.
  9. Breaches of CCSF Computer Policy are never acceptable.

24 Responsibility for dropping the course

If you have stopped participating in the course, it is your responsibility to drop the course yourself; do not assume that I will drop you. When you decided to drop the course, you log into your CCSF Web4 account and submit the drop order. Once the drop order is completed, you will no longer have access to the course material. Under certain conditions you can be re-instated to the course. If you wish to be re-instated, contact me and I may be able to reinstate you.

25 How to drop the course if you are enrolled as a Free City student

Students enrolled under San Francisco's Free City program should be aware of the Free City program's rules about dropping courses. The Free City FAQ covers this question in detail:

What if I drop my course?


  1. What happens if I drop my courses and Free City is paying my enrollment fees?
    • If you drop courses before the date to receive a full refund, you owe nothing. Refund deadlines are next to each course listing on the college website at www.ccsf.edu/Schedule.
    • If you drop after the deadline to receive a full refund, then you are liable for all applicable fees, including enrollment fees/tuition for each course dropped, and the money will be returned to the Free City Program.
  2. What happens if I drop my course and I am receiving a Free City stipend?
    • If you drop all courses, before the refund deadline, you are liable for the stipend.
    • If you drop from full time (12 credits or more) to part time (6-11 credits) after the refund deadline, you are liable to return a portion of the stipend.
    • If you drop below 6 credits, you may be liable to return the stipend.

More information about the Free CCSF program: Free City Frequently Asked Questions. employment and training specialist Steve Nelson <snelson@ccsf.edu>.

26 Tutoring for Computer Science courses

The Computer Science Tutor Squad

The Computer Science Tutor Squad at CCSF provides help for CCSF computer science courses. Student tutors can help you with your coursework in most CS courses, including CS 131B and CS 160B. You can book an appointment with a tutor on the Tutor Squad Home page.

If you don't have an appointment, you are still welcome to join the Zoom session on a drop-in basis. If the tutor on duty is busy, they will let you know and will give you the option to remain in the waiting room.

Nettutor Online Tutoring
CCSF also provides tutoring for students enrolled in Computer Science courses. Follow the instructions on the Learning Assistance Center's Online Tutoring page to create your account. CCSF students get up to 20 hours assistance free per semester.

27 CCSF Internship and Job Board

The CCSF Internship and Job Board is a free service where registered students and alumni can post resumes and search for internships and jobs and take work experience classes. Students can register for these classes and earn college credit for what they learn while working at paid jobs or internships. For more information contact CCSF&rsquo;s employment and training specialist Steve Nelson <snelson@ccsf.edu>.

28

29 CCSF 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 Mildred Otis, Title 5/EEO/ADA/Title IX Compliance Officer, at motis@ccsf.edu.

30 Equity, Diversity, Inclusion

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.

31 Questions?

Got Questions? If you have any questions about this syllabus, please send them in an email to dputnam@ccsf.edu.

32 How to address me

Just call me Doug.

33 Class Schedule

The course is 16 weeks long, with 15 modules of coursework. The Spring and Fall semesters each have recess in which no coursework is assigned.

Week Topics Reading Assignment
1 - 2 History of Python; Install Python3; Editor and Terminal Overview Ch 1: Starting out – About Python; Ch 2: Getting started – Installing Python; Ch 3: Quick Overview;Ch 4: The Absolute Basics Lab 1, quiz
3 - 4 Data types, variables, operators, precedence, & scope Ch 5: Lists, Tuples, Sets;Ch 6: Strings  
5 - 6 Flow control, functions Ch 7: Dictionaries; Ch 8: Control Flow; Ch 9: Functions Lab 2, quiz
7 - 8 Modules and scoping, Python programs, packages, using Python libraries Ch 10: Modules and Scoping; Ch 11: Python programs; Ch 18: Packages; Ch 21: Using Python Libraries Lab 4, quiz
9 - 10 File system Ch 12: Using the File system; Ch 13: Reading and writing files Lab 5, quiz
11 - 12 Object-oriented programming, Ch 14: Exceptions; Ch 15: Object-Oriented Programming; Ch 16: Regular Expressions; Lab 6, quiz
13 -14 Using with third-party modules; graphing Part 4: Working with data – Chapters 20, 21, 22  
15 Relational Databases Part 4: Working with data –Chapters 23, 24  

Got Questions? If you have any questions about this syllabus, please post them on the class discussion forums.

34 CS 160A equivalent skills

CS 160A Intro to Unix/Linux exit skills

This list shows the exit skills for CCSF's Intro to Linux/Unix (CS 160A) course. To get the most benefit from courses that require you to use the CCSF Linux server, you should feel comfortable with most of these skills. If many of these terms sound strange to you, consider taking CS 160A before taking this class.

  • Comfortable working at the linux/unix command line (i.e., typing in commands is not a problem)
  • Structure of unix — kernel, shell, commands, utilities
  • Know that there can be differences in command names, arguments & pathnames between versions of linux & unix.
  • Unix file structure — absolute and relative pathnames, the difference between starting a command with "" and ".".
  • Basic file and directory permissions – read, write, execute for file owner, group, other. symbolic & numeric formats.
  • Basic file & directory-related commands, like: pwd, cd, mkdir, rmdir, ls, ll, df, du, mv, rm, cat, <, >
  • Basic Unix commands and utilities, like: grep, head, tail, cut, sort, find, who, ps, whereis, which, whoami, id
  • Basic regular expressions (asterisk (*), period (.), caret (^), dollar sign ($), square brackets ([]), question mark (?)
  • How to use pipes
  • How to redirect standard output
  • Quotes: the difference between single, double, and backquote
  • Variables — how to set, use, and export, at a minimum HOME, PATH, and TERM
  • Parts of a unix account as stored in /etc/passwdusername, password, uid, gid, real name, home directory, startup shell
  • What is superuser, root, su –
  • Processes: ps (great if you also know what ps -ef does)
  • How to view a text file a page at a time with more (or less) and search through it with: /<pattern>
  • How to edit a text file with a text editor, like pico, nano, vim, or emacs, all of which are available on the Hills GNU/Linux server.
Title: CS 131B Syllabus
Author: D Putnam
Creator: Emacs 27.2 (Org mode 9.4.4)
Modified: 2022-06-10 Fri 10:40
License: This work is licensed under a Creative Commons Attribution - NonCommercial - NoDerivatives 4.0 International License.
All dates in this document are tentative. Consult the CCSF Academic calendar for official CCSF dates and deadlines.
© Copyright 2010-2022 Douglas Putnam, all rights reserved.