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 App Inventor. No prior programming experience is required, and the pace of the course is more manageable 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.
Topics and Schedule Student Portfolios
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 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: Kudlick Multimedia classroom, Harney Science Center, RM, 148 (formerly 235)
Time: TR 2:40-4:25
Professor: David Wolber (wolberd@usfca.edu) Office: Harney 414
Office Hours: Mondays, Wednesdays, and Thursdays 10:30-11:30, and by appointment.
TA: Summer Marsh, smarsh2@dons.usfca.edu
TA Office Hours: Monday 4:15-6:15 pm, HR 411 & Thursday 4:30-5:30 pm, HR 148
There are TAs from the other 107 sections that can also be helpful. Their office hours are held in HR 411. Here is the availability (including Summer):
Mondays: Summer 4:15-6:15
Tuesdays: Talia 4:30-6:30
Wednesdays: Michael 4:30-6:30
Thursdays: Michael 2:30-4:30, Summer 4:30-5:30
Fridays: Talia 11:30-12:30
Android Phone/Tablet: You must bring an Android phone or tablet to every class session. If you use an Android as your regular phone, you are encouraged to use it. If not, you may check a device out from the USF library and return it at the end of the semester. As with any library check-out, you will be responsible for lost items. In this case, the charge is over $400, so be careful!
Textbook. Wolber, D. Abelson, H. Spertus, E. and Looney, L., App Inventor 2: Create your own Android apps, 2014. This book is available in paperback at the bookstore or at Amazon. You may also use the free pdf version.
Website: Professor Wolber's site, appinventor.org, has videos and other tutorials and lessons for learning App Inventor and programming.
Grading
Tests (2): 40%
Quizzes (6-8): 20%
In-Class Participation (Checklists): 10%
Creative Projects: 30%
Assignments and Creative Projects
The course meets in the Kudlick Classroom (HR 148). A portion of most class meetings will be devoted to hands-on in-class programming assignments. These tasks will primarily be completed during class time but may require out-of-class work to complete.
The assignments are a significant part of the grade for the course. Generally your 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 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.
The Kudlick lab (HR 148) is available in the evenings, and there are two labs on Harney 5th floor generally available. You can also work on your laptops and home computers.
Quizzes and Code Camp
Quizzes will be given on Thursdays at the start of class about once every two weeks. The quizzes will cover concepts from the reading, in-class lessons, assignments, and creative projects.
Each week, you may attend Code Camp to make up to 1/3 of the points you miss on the quiz, or 10 points, whichever is more. So if you get a 40/100 on the quiz, you can make up 60/3 = 20 points to receive a total of 60. If you get a 100, you can still earn 10 points, for a total of 110. Code camp is in Professor Wolber's office. You'll work with another student on a whiteboard for about 20 minutes, working on questions related to the corresponding quiz. To receive points, you must attend Code Camp within one week of the quiz. Code camp is available during the Wolber's office hours. If you can't make those hours, make an appointment.
You may not make up a quiz due to unexcused absence. If you miss a quiz due to illness, you must notify the instructor before the quiz and bring a doctor's note to verify. If you need to miss because of sports absence, you must notify the instructor beforehand to reschedule. If you do miss a quiz unexcused, you can attend code camp and receive up to 50% of the points.
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).
Midterm 1: October 12, 2017
Midterm 2: TBA
Attendance
Because of the hands-on nature of the course, attendance is mandatory. As specified above, there are no makeups for missed assignments and quizzes. 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:
- Design a mathematical (algorithmic) solution:
- You will learn how to design algorithmic solutions, using storyboards and pseudo-code, for real-world problems.
- 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.
- 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 |
|---|---|---|