Introduction
Welcome to Intro to Programming! This will be a short, fast-paced introduction to programming in Python with a slight focus on numerical applications. The topics covered will be similar to that of a standard introductory course: conditionals, loops, lists, object-oriented programming, recursion, and overviews of Python's other library types.
Class Information
Class Times: MWF 10:30-12:00
Class Location: GDC 2.410 Instructor Email: kcsong@utexas.edu
Communication
This course will use Piazza as a class discussion and Canvas as an assignment submission/grading portal.
Academic Honesty
In spite of the technological advances of the last 10,000 years, sometimes the best way to learn something is to sit down with a friend and talk about ideas. I strongly encourage you to participate in this tradition. However, in keeping with a more recent development, you must also make sure that all the work you submit is your own. Submitting someone else's work as your own, or assisting someone else in doing so, is academic dishonesty.
As a general rule, you should abide by the following guidelines:
- You should either be reading code or writing code, not both at the same time. You should also take a short break (at least 5 minutes) when you switch between the two.
- You should not help other students write their code directly: that is, if you are
- If you take short code snippets from somewhere else, clearly label the following:
- Where the code came from (e.g. by a link to a website)
- Why you are allowed to use the code
- How far the snippet extends (e.g. "next two lines" or "this loop")
This list is not all-inclusive. As a general rule, if someone else is solving your problem for you, you are committing academic dishonesty.
If you are uncertain about whether something is allowed, ask me. You will not get in trouble if you ask something! If you can't reach me, clearly label what you took from where, and why you didn't write it yourself. You might not get full points on the assignment, but I will not count it as cheating if you clearly state exactly what material you took, and from where.
Resources
This course does not require any external materials--all assignments will be provided by the instructor. However, I find that having multiple views of the same material can often be helpful for learning. There are a few online books that you might find helpful:
This course is templated off of Starting Out with Python. However, I don't recommend actually buying this book unless you want a paper reference, both because it is a little expensive and because you (hopefully) will not need it.
Course Format and Grading
During regular class, we'll usually do some lectures which cover course material. Some of these lectures will involve live coding: we'll use some of the ideas that we covered that day to write our own program. The programs we write in class will be made available after lecture.
Depending on the class, we may finish slightly earlier than usual than intended. We'll use the remainder of the class period to talk about homework and answer any questions you may have.
Finally, there are two "Work Days" at the end of the course: these are intended to be used mainly for you to work on your final project. However, we will also have some mini-lectures (20-30 minutes long) on subjects that you will vote on.
Homework (45%)
Most of your grade will come from homework assignments. These homework assignments come out after a lecture, and are due after two lecture days. There are usually two homeworks per week, labeled "a" and "b". Homework "a" will usually go out after lecture Monday, and be due at the end of day on Friday. Homework "b" will usually go out on Wednesday and be due end of day on Monday.
This schedule is a bit weird, but it is the price to pay for making sure that there are two classes available to you to ask questions between when a homework goes out and when it is due. Personally, I recommend trying to finish the homework in the two days after it comes out---that way, you can do Homework a in the first half of the week, Homework b in the second half, and then have the weekend free to enjoy!
Exams (15% each)
We will have a midterm exam on July 1, and a final exam around July 29th. These exams will be 15% of your grade each. They will be a mixture of answering questions about existing programs, questions about the programming language, and writing code to solve problems. They will be on paper, and more details will be released as the deadline approaches.
Final Project (20%)
You will have a final project in this class. You will be able to work alone or in pairs, and you will have two weeks to work on the project. I will ask you to start thinking of project ideas in mid-July, and you must have your idea approved by me (mostly to make sure it won't be too easy or too hard).
You will also give a short presentation on your project.
Participation (5%)
Participation is worth 5% of your grade. This will mostly be determined by your in-class participation.
Other Stuff
Bill Young maintains an excellent guide on how to succeed for the version of this course that's taught in the computer science department. I strongly suggest reading it--all of it is applicable to this course as well.
Administrative Stuff
As a general rule, I try to operate under the principle of being as reasonable as possible. That being said, if something is going to affect your ability to participate in this course, please let me know as soon as you can! I'll try my best to work around problems, but if I don't know about them, I can't help.
Students with Disabilities
Any student with a documented disability (physical or cognitive) who requires academic accommodations should contact the Services for Students with Disabilities area of the Office of the Dean of Students at 471-6259 (voice) or 471-4641 (TTY for users who are deaf or hard of hearing) as soon as possible to request an official letter outlining authorized accommodations. Students requesting accommodations for disabilities must notify the instructor by the 12th class day.
Religious Holy Days
A student who is absent from an examination or cannot meet an assignment deadline due to the observance of a religious holy day may take the exam on an alternate day or submit the assignment up to 24 hours late without penalty, if proper notice of the planned absence has been given. Notice must be given at least 14 days prior to the classes which will be missed. For religious holy days that fall within the first 2 weeks of the semester, notice should be given on the first day of the semester. Notice must be personally delivered to the instructor and signed and dated by the instructor, or sent certified mail. Email notification will be accepted if received, but a student submitting email notification must receive email confirmation from the instructor.
Cheating
The minimum penalty for any student caught cheating is a zero on the assignment. Repeat or flagrant violations may result in failure of the course.
Acknowledgements
This course was templated off of the standard CS 303E courses at UT Austin by Bill Young and Mike Scott. Some assignments were taken from materials made available by Alison Norman.