This course is intended for students who would like to learn about fundamental programming tools and their application to the development of real-world applications, specifically web, mobile, and social apps.
You should be comfortable with Java and the Unix shell. At a minimum, you should have written programs in which your contribution is at least 100s of lines long. We will use Python for server-side development - Python will be introduced as part of the class. You should also have knowledge of basic data structures and algorithms.
Programming is difficult - some of the problem developers face include
Using the right tools can solve these problems. Examples include tools for version control, Python, design patterns, program construction, and automatic testing.
Our approach will be to introduce a specific problem, show how a tool can solve the problem, and then develop the technical principles underlying the tool. We will have written homework problems as well as coding exercises for each concept.
The class will have a very substantial design project that will begin at the start of the term. Use of the tools will be a required part of the project. To prepare you for the design project, we will build a photo sharing app. Specifically, we will learn how to build services on Google AppEngine in Python; these will be used as the backend to an interactive website and an Android app.
The course will be largely based on my class notes, linked below. The sources for these notes are cited in the slides. The contents of this page will change over time; e.g., I may change lecture topics and homework/lab problems. Some material, such as announcements, will be at Blackboard.
Adnan Aziz, email@example.com (Please put APT in the subject line.)
Google Voice: 530-7ADNAN7.
Office Hours: MW 1030-1130, ACES 6.120 and by appointment.
Nima Dini, firstname.lastname@example.org (Please put APT in the subject line.)
Office Hours: Tuesday 1:00-2:30, ACA 145 | Friday 1:00-2:30, POB cubicle 5NEo1A and by appointment.
Yanfeng Zhao (Kevin), email@example.com (Please put APT in the subject line.)
Office Hours: Thursday 12:00-2:00PM, ACA 110
Please use the Piazza forum as much as possible!
Due dates (11:59 pm on the due date):
You should create a Google Doc for your response to each HW and LAB.
All of these should be done by 11:59pm on due date or your submission will be deemed late
The School of Engineering's Add/Drop policy is spelled out here. Unless there's an exceptional circumstance (such as an ongoing cheating investigation), I will not stop you from dropping.
The University of Texas, Austin provides upon request appropriate academic accommodations for qualified students with disabilities. Please contact the Office of Dean of Students at (512) 471-6259, firstname.lastname@example.org or bit.ly/utssd, or the College of Engineering Director of Students with Disabilities at (512) 471-4321, for more information.
You are encouraged to interact with your peers when solving labs and homeworks. However, solutions should be written up separately, and you should note the people that you discussed the material with. Cheating will be dealt with in accordance with university policy, as described in bit.ly/academicdishonesty.