Design and development of significantly sized software using top-down design and bottom-up implementation. Dynamically allocated data, object-oriented programming, architecture of memory, basics of language translation, and basics of algorithm analysis. Development of simple graphical user interfaces. Prerequisite: CS 110 (grade of C or better).

Instructor: Alark Joshi


Office: HR 526

Office Hours: Wednesdays 11:30am-1:30pm, Fridays 1-3pm or by appointment

Teaching Assistant: Rubin Trailor


Office: CS Labs

Office Hours: Wednesdays 3:30-5:00pm


  • Learn to write intermediate-level programs in Java.
  • Learn to apply object-oriented design concepts.
  • Learn to utilize intermediate-level programming concepts including recursion and linked lists.

List of topics

  • Java Syntax
  • Inheritance
  • Interfaces
  • Advanced Java Concepts
  • Recursion
  • Linked Lists
  • Advanced data structures, such as stacks/queues/trees


In addition to the handouts and relevant readings assigned for each week, we will refer to the following text for weekly readings. This book is available at the bookstore.


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

  • Labs: 20%
  • Projects: 35%
  • In-class programming: 5%
  • Weekly Quizzes: 40%
    • Individual quiz - 35%
    • Team quiz - 5%
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 SVN. Email submissions will not be accepted. For any late submissions, 20% of your received points will be deducted per day.

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.