Use of procedures, parameter passing, block structures, data types, arrays, abstract data structures, conditional control, iterative and recursive processes, and input/output in programming solutions to a variety of problems. Prerequisite: None.

Instructor: Alark Joshi


Office: HR 415

Office Hours: Thursdays 2-4pm and Fridays 1:30pm-2:30pm or by appointment

Teaching Assistants:

  • Daniel Barajas
    Office hours:Tuesdays 10am-12pm

  • Alejandro Garcia
    Office hours:Wednesdays 2-4pm

  • Chirag Jain
    Office hours:Wednesdays 9:45am-11:45am


  • An introduction to the field of computer science.
  • Learn the foundations of computer programming, computer algorithms, and data structures.
  • Practice computer programming using the Python Programming Language.
  • Learn some other languages, such as HTML (HyperText Markup Language) and JavaScript
  • Learn how to perform numerical computations, process and transform text, draw graphics and animations, and build dynamic, interactive web sites.


In addition to the handouts and relevant readings assigned for each week, we will refer to the following text for weekly readings.


The course will be graded on a A-F basis. The grade distribution will be as follows:

  • Labs: 25%
  • Projects: 30%
  • In-class programming: 5%
  • Weekly Quizzes: 30%
    • Individual quiz - 25%
    • Team quiz - 5%
  • Final exam - 10%
The evaluation will be based on successfully finishing every lab and project. Grades will be assigned as follows.


Labs and Projects

Labs and projects are due at 11:59pm on the due date. Submission is through Canvas. Email submissions will not be accepted. Late submissions will not be accepted.

Attendance Policy

Attendance is mandatory. Absences are only excused in cases of verified family or medical emergency. Topics that are discussed in class but are not available online will be part of quizzes, assignments and projects.

Students with Disabilities

If you are a student with a disability or disabling condition, or if you think you may have a disability, please contact USF Student Disability Services (SDS) at (415) 422-2613 within the first week of class, or immediately upon onset of disability, to speak with a disability specialist. If you are determined eligible for reasonable accommodations, please provide me with your SDS Verified Individualized Services and Accommodations (VISA) form, and we will discus your needs for this course. For more information, please visit: or call (415) 422-2613.

Academic Dishonesty

Students are required to follow the University's Honor Code: "As a Jesuit institution committed to cura personalis- the care and education of the whole person- USF has an obligation to embody and foster the values of honesty and integrity. USF upholds the standards of honesty and integrity from all members of the academic community. All students are expected to know and adhere to the University’s Honor Code. " You can find the full text of the code online at

This includes but is not limited to the following:

  • ALL assignments are to be completed individually unless specified, in writing, on the assignment. Academic dishonesty will NOT be tolerated. This is your warning! Students are encouraged to meet with me if they have questions regarding assignments or this policy. Students caught cheating will face severe penalty.
Students may:

  • receive help from the professor and the TA.
  • discuss the requirements of the assignments, the meaning of programs, or high-level algorithms with other students or outside sources. If you have any doubt with respect to what is acceptable to discuss, speak with the professor first.
Students may NOT:

  • look at another student's code.
  • look at another student's solutions to homework problems.
  • receive unapproved help from an outside source including a tutor or a family member.
  • submit code which has, in whole or in part, been copied from any other source (including another student, a web page, or another text).
  • submit solutions to problems which have, in whole or in part, been copied from any other source (including another student, a web page, or another text).

  • Any help from a source other than the professor, the lab assistant, or a TA must be acknowledged. Example sources that must be cited are a parent, a family friend, and an outside tutor.
  • If you wish to get a tutor in the course, speak with the professor.
  • Any code submitted by a student must be completely original. No portion of a student's code may be copied from any other source (including, but not limited to, another student, a web page, or another text).

  • Students caught violating the academic honesty policy will face severe penalty. A first offense will result in a zero on the assignment and a report to the Dean's office. A second offense will result in the student failing the course.