1 Course Information
2 Catalog Description
CS 131A Python Programming (4)
Lec-70 Credit, Degree Applicable
ADVISE: CS 110A or 111A 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.
3 Major Learning Outcomes (SLOs)
MAJOR LEARNING OUTCOMES
Upon successful completion of this course, the student will be able to:
— CS 131A Course Proposal
- Describe the main features of Python
- Write object-oriented Python programs using classes and objects
- Describe the Python operators for manipulating lists, dictionaries, tuples and files
- Create useful stand-alone and CGI applications in Python
- Manipulate strings using regular expressions
4 Advisories and Prerequisites
There are no formal rerequisites for the course. However, there are advisories to consider. It is to your benefit to have the skills equivalent to those you could learn in a beginning programming course such as CCSF’s CS 110A, 111A, 113A, 130A, or 160B.
5 Required Textbooks
- The Quick Python Book, 2nd edition, Darly K. Harms, Kenneth McDonald, and Naomi Ceder. Manning Publications, ISBN 9781935182207. You can buy this book used for a fraction of the retail price — just make sure to get the 2nd edition.
- Think Python 2e, Allen Downey. This book was formerly title “How to Think Like a Computer Scientist”.
6 Disabled Student Programs & Services
Any student who, because of a disability, may require special arrangements in order to meet the course requirements should contact the instructor as soon as possible to make any necessary arrangements. Students should present appropriate verification from Student Disability Services. Please note instructors are not allowed to provide classroom accommodations to a student until appropriate verification from Student Disability Services has been provided. For additional information, you may contact the Student Disability Services office by voice at 415-452-5481, by TDD at 415-452-5481.
For more information about CCSF’s DSPS services, please visit the DSPS Web Site.
7 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.
8 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.
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.
10 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 three hours of study time for each unit. Keeping up with lectures and assignments and turning in your work on time is crucial to your success.
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. Over time all CCSF accounts will be managed with a single set of credentials.
Your Hills account (hills.ccsf.edu) is a standard Linux shell account with access to the web server.
11.2 Your initial Hills password
Your RAM ID name and password do not work with your Hills Linux account. Calculate your initial’s Hills password by following this algorith:
- 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:
12 Attendance policy
There’s no roll call taken in this course. However, CCSF requires that students be academically engaged. If you become inactive at any point in the semester, you will be considered “academically inactive”, which simply means not doing the coursework, not taking quizzes, and not turning in assignments in a timely manner. If you become inactive in the course for an extended period at any time during the semester, I will contact you to discuss your options before dropping you from the course.
If you must become temporarily inactive, contact me by email before your abscence so that I do not drop you.
13 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.
15 Exams & quizzes
All exams and quizzes will take place on the CCSF LMS, including the midterm and final exams.
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 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 Ruby, Python, Perl, or PHP course, 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 rather than on Hills.
16.1 Make-up assignments and do-overs
There are no make-up exams or assignments in this course.
16.2 Extra credit
There are no scheduled extra credit assignments in this course. However, to earn extra credit, catch up on all of the exercises and assignments and propose an interesting project that you want to pursue.
16.3 Assignment schedule
- Assignments will be released Monday night at midnight and will be due midnight of the following week.
- Solutions to exercises and assignments will be given Wednesdays.
- If you have questions about the assignments, ask them before the due date.
- Turn in your work before the due date to receive full credit.
- Scores for exercises and assignments are reduced by 5 points for each day late.
- Assignments turned in after the solutions are made public will receive a maximum score of 50%.
- If you use the public solutions in your work you’ll receive a score of zero.
If you have a verifiable documented reason for turning in an assignment late, contact me by email before the assignment is due.
18 Tutoring for Computer Science courses
CCSF 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.
19 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. You can work with others collaboratively on the following activities:
- 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 firstname.lastname@example.org.
- 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
20 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.
20.1 Forum Etiquette
- Do the assigned reading before posting a question. The answers to many of your questions are in the reading assignments.
- Search Google and Stack-Overflow for answers to your questions before posting them.
- Take the time to re-read your questions/answers for errors before actually posting them.
- If you post a question, then figure out the answer yourself, don’t leave your question hanging — post your answer to your own question.
- 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.
- 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.
- 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.
- Breaches of CCSF Computer Policy are never acceptable.
21 Dropping the course
If you decide to withdraw from the course, it is your responsibility to submit the drop order yourself. I will not drop you from the course unless you become academically inactive. You can log into your CCSF Web4 account to submit the drop order.
22 The Important Dates Calendar
During the semester there are important dates that you should be aware of, including the deadlines for dropping with a full or partial refund, changing grading from letter to P/NP, and the last day to drop with or without receiving a grade. Consult the CCSF Academic Calendar for an authoritative calendar of these important academic dates and deadlines.
|Jan 17||Instruction Begins - Day & Evening Courses|
|Jan 30||Last day to officially, drop or reduce full-term coursework units in order to qualify for a 100% tuition, capital outlay and enrollment fee refund.|
|Feb 3||Last day to add full-term course|
|Feb 9||Last day to drop full-term coursework units without a “W”; last day to drop in order to received a 50% fee refund|
|Feb 16||Last day to request P/NP (pass/no-pass) grading|
|Apr 13||Last day for student/instructor initiated withdrawals (W)|
|May 17-24||Final examinations for day, and evening classes.|
|June 4||Finals grades available on Web4|
23 CCSF student code of conduct
Student conduct must conform to College rules and regulations as outlined in CCSF Student Code of Conduct.
24 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.
Got Questions? If you have any questions about this syllabus, please send them in an email to email@example.com.
26 CS 131A Python weekly schedule
This is a tentative schedule for the coursework we will cover during the summer session.
The 18-week Fall schedule will be available soon.
There are no dates in this schedule. However, each assignment and quiz has an explicit due data assigned to it in Insight, the course home base. You should log in to the class regularly to always be aware of the course due dates. Due dates of all assignments and quizzes are available in the Upcoming Events calendar on the course Insight home page. It is your responsibility to be aware of assignment due dates.
All readings listed here are in The Quick Python Book, 2nd edition.
|1||History of Python; Install Python3; Editor and Terminal Overview||Ch 1: Starting out; Ch 2: Installing Python; Ch 3: Quick Overview; Ch 4: The Absolute Basics||Lab 1, quiz|
|2||Data types, variables, operators, precedence, & scope||Ch 5: Lists, Tuples, Sets; Ch 6: Strings||Lab 2, quiz|
|3||Flow control, functions||Ch 7: Dictionaries; Ch 8: Control Flow, Ch 9: Functions||Lab 3, quiz|
|4||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|
|5||File system||Ch 12: Using the File system; Ch 13: Reading and writing files||Lab 5, quiz|
|6||Object-oriented programming, testing code||Ch 14: Exceptions; Ch 15: Object-Oriented Programming; Ch 17: Regular Expressions; Ch 21: Testing Code||Lab 6, quiz|
|7||Regular expressions, relational databases, Python 2, Google AppEngine, web.py||Ch 18: Packages; Ch 24: Network, web, and database programming||Lab 7, Final Exam|
This document may be updated without prior notice. Please use the Bugs & Typos forum to report any errors. I appreciate all feedback.