Course Syllabus

CS 107, Computing, Mobile Apps, and the Web, provides a gentle introduction to computer science and creative software development. You'll learn to code by building mobile apps for phones and tablets with the visual language Thunkable. No prior programming experience is required, and the pace of the course is slower compared to the department's other first semester course, CS 110.

The course will provide you with terrific practical skills and knowledge-- it is one of the most effective USF core course in preparing students to get jobs. No matter what discipline you choose, software likely is a part of it, so understanding the fundamentals of coding is crucial. Perhaps most importantly, you will learn problem-solving skills-- applied logic-- that can help you in every walk of life.

Midterm 1: Thursday, March 11
Spring Break: March 15-19
Midterm 2: Thursday, May 6

Topics and Schedule  Student Portfolios QuickLinks

Core, CS Minor: The course fulfills USF’s Core Math requirement and also counts towards a Computer Science minor.

CS Major: The course does not cover a Computer Science Major requirement, but many CS students take this course in preparation for the first course in the major, CS 110.

Pre-Requisites: There are no pre-requisites and no prior coding experience is expected.

Place: On-Line

Time: Section 1: TR 9:55-11:40, Section 2: TR 2:40-4:25

Professor: David Wolber (wolberd@usfca.edu)  Office: Harney 414
Office Hours: Tuesday 1-2, Wednesday 2-3, Thursday 1-2 zoom OH link

TA: Section 1, Chhoden Sherpa (asherpa@dons.usfca.edu), Section 2: Sofia Esparza-Chavez (sesparzachavez@dons.usfca.edu)
TA Office Hours: 

Chhoden : M 11-12, T 5-6, R 5-6, F 11-12       

Sofia:  M 12-1 & 4-5, W 4-5, F 12-1

Phone/Tablet: You'll need a phone or tablet in every class session along with your computer. 

Textbook (required) Wolber, David and Cai, Rafiki, Drag and Drop Code: Create iPhone and Android Apps with Thunkable

Software (required) You'll need to purchase a "Pro" account at thunkable.com. More information to come.

Grading

Midterms (2): 35%
Quizzes: 12%   10%
Labs: 20%
Creative Projects: 25%
Community and Service 10%

Assignments and Creative Projects

Most class meetings will be devoted to hands-on in-class programming labs and assignments. These checklist assignments will primarily be completed during class time but may require out-of-class work to complete. 

Often your in-class work will be "checked-off" in class. You may not earn credit for the assignment if you are not in class, unless you contact the professor before class time and have a medical or sports event excuse. You may replace a single missed assignment or low score sometime during the semester with an assignment provided by your instructor. If you attend class but don't complete the assignment, you may complete it at TA office hours prior to the next class session.

Creative projects are larger and involve the design and development of a custom app. Students will work in groups and individually. For creative projects, you are responsible for documenting your work on your portfolio. Assignment due dates are strict: no credit is given for work turned in late.

Quizzes 

Quizzes will be given on Tuesdays at the start of class. The quizzes will cover concepts from the reading, in-class lessons, assignments, and creative projects.

Midterm Code Camp

After midterm 1, you can attend a code camp office hour to earn 1/3 of the points you missed back (or a minimum of 10). So if you receive a 40/100 on the midterm, you can earn 1/3 of 60, or 20 points, back. If you receive a 100/100, you can still earn 10 points.

Engagement, Community and Service

You are encouraged to engage with the class community, the broader USF community, and the city, country, and world. 

  • Attending office hours work on your projects/labs and ask questions
  • Engaging in class with questions/comments (top engagement will be rewarded by instructor, but feel free to ask how you can qualify)
  • Engaging on Piazza with questions/answers (instructor will award a point for consistent engagement (e.g., 15 good questions/answers for 1 point)
  • Attending talks by CS professionals and researchers
  • Participating in CS student group events, including Women in Tech and Diversineers.
  • Giving coding workshops on campus  
  • Giving coding workshops on Twitch or other social media sites.
  • Creating study guide apps for this class (or another)
  • Suggest something

When you attend an event/office hour/etc. send email to your TA describing it with a paragraph. Event attendance is typically 1 point. You should accrue an hour of office hour engagement to earn 1 point.

You are required to earn 10 points. You may not earn extra credit, i.e., more than 10/10 in this area, without prior consultation with your professor.

Midterms

There are two midterms. These are comprehensive tests based on all previous material for the semester. You may participate in code camp following midterm 1 to earn back 1/3 of the points you miss. There is no code camp for midterm 2 (which is near the end of the semester and similar to a final).

Attendance

Because of the hands-on nature of the course, attendance is mandatory. As specified above, there are no makeups for missed assignments and projects. If you miss more than three sessions, you will be asked to drop the course.

Academic Honesty

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 www.usfca.edu/fogcutter.

To learn in this class, you must do your own work. This means:

  • Completing assignments without copying code from another student or from an on-line source. All the code must be of your own creation.
  • Completing creative assignments with your own coding contribution. If specified on the assignment, you may use (remix) some code from an existing app, but you must cite your sources and clearly delineate your own contribution. As with an essay, plagiarism will not be tolerated!
  • Contributing significantly to team creative assignments. If you work in a team, you must understand all the code in your app, including that of your partner. 

Be prepared to explain any code in any of your assigned projects. 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

Core-B1 Learning Outcomes

In accordance with the Core-B1 learning outcomes, through in-class worksheets and coding assignments, along with assigned coding projects, and quizzes and midterms, CS 107 will teach you how to:

  1. Design a mathematical (algorithmic) solution:

--You will learn how to design algorithmic solutions, using storyboards and pseudo-code, for real-world problems.   

  1.   Implement the design or identify and correct problems with the design

--You will learn to implement (code) working apps for your designed solutions.

--You will be given sample designs for apps and will learn how to identify the pros and cons of each option.

  1.  Evaluate the validity of a solution and its relevance to the original problem using reasoned discourse as the norm for decision making

--You will learn to conduct usability and system tests of your apps to evaluate their validity, and to present/debate the efficacy of your solutions and decision making.

-- You will be asked to provide detailed methodology and steps taken towards the apps you submit, including assumptions and simplifications, thus evaluating the validity of your own proposed solutions.

Course Learning Outcomes

This course will give you with the tools to design algorithms and implement apps to solve real-world problems. After the completion of the course, you will be able to:

  • Design algorithms given a problem specification.
  • Implement apps that respond to user interactions and external events like sensors, incoming text messages, and incoming web data.
  • Implement apps that require non-trivial conditions and iteration.
  • Implement apps that work with non-trivial data.
  • Test apps in a systematic fashion
  • Conduct user-testing to evaluate how well an app solves a given problem.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Course Summary:

Date Details Due