Home CS303E


CS303E Elements of Computers and Programming

Summer 2012

Basic Information

Welcome! CS303E is an introduction to computer science and programming for students who have little to no programming experience. The material presented in this course will assume no prior knowledge of programming.

Computing is an integral part of all natural sciences and engineering disciplines. This course will use the Python programming language to introduce you to how to use a computer to solve problems. It is designed to teach the fundamentals of computing and programming, including basic computer architecture and software components. In this course, most of your learning will take place when you are putting in to practice the concepts from the book and lectures to solve more and more complex problems using more and more sophisticated programming practices. You will learn through doing. No prior programming experience is required but familiarity with personal computers will help significantly.

At the end of this course, you will have learned about computer organization and the following programming constructs: input and output, functions, decision making, looping, string and lists, testing and debugging, and other topics as time permits.

Class Information:

Lecture Meeting Time and Location: Burdine Hall (BUR) 212 MWF 11:30a-1p
Turn off cell phones, laptops, and other digital devices during lecture.

Unique Numbers: 91025, 91030

Instructor: Alison N. Norman
Email: ans@cs.utexas.edu
Office Hours and Location: Monday 10:00a-11:00a in PAI 5.38
                                            and Wednesday 1p-2p also in PAI 5.38
                                           

Teaching Assistant: Quan Leng
Email: leng0010@gmail.com
Office Hours and Location: Tuesday and Thursday 1p-3p in PAI 5.38

Web page: http://www.cs.utexas.edu/~ans/courses/cs303e/index.html
This handout and all other information for the course will be available at this address.

Textbook (required): Python Programming: An Introduction to Computer Science, First Edition, John M. Zelle, Ph.D. ISBN: 1887902996
Note: The second edition of this book has been released, but it uses Python 3. In this class, we will be using Python 2. Python 3 is not compatible with Python 2. Please make sure you get the right book!

Discussion Section Information:

Section NumberMeeting TimeMeeting LocationTA
91025T 10a-11:30aBUR 220 Quan

Students must attend a discussion section taught by the teaching assistant in charge of the unique ID for which they are officially registered.

Clickers: An iClicker (a remote control device) is required for this course and must be brought to every lecture as participation on iClicker questions is part of your course grade. It may be purchased from the Co-op bookstore for approximately $40 new, $30 used. For this class, an iClicker is sufficient. However, an iClicker2 will also work.
Note: There may be several incompatible brands of remote control devices on sale. Be sure you get the ``iClicker'' brand. For a picture of one, see the iClicker web site. The Co-op will buy back the iClicker for about half the current price. I recommend that you put a piece of transparent tape across the serial number on the back of your iClicker to prevent it from being rubbed off with use. The serial number is important when you register the iClicker (see the next step) and you want it intact when/if you sell the iClicker back to the bookstore.

Register your iClicker at http://www.iclicker.com/registration/ by providing:

If you already have an iClicker and registered it to your EID in the past, you must re-register for this semester.

Computer Accounts: You must obtain an account to use the CS microlabs and to submit your programming assignments. Accounts take at least a business day to become active, but more likely 2-3 days. You must apply for an account no later than Tuesday, June 5th, since you will need it the second week of class. Please apply as soon as possible, though, to allow more time for your account to be set up.

To sign up, use your own computer or use two special computers in PAI 5.38. Follow the instructions at this link: https://apps.cs.utexas.edu/udb/newaccount/.

These accounts are only for the CS microlabs and not any other labs or networks at UT. This account is not the same as your UTEID or UT Direct account.

Communication:

Discussion The class discussion board is on Piazza. Sign up through this website: http://piazza.com/utexas/summer2012/cs303e.

I will post course-related announcements and information on the board. You must read the discussion board, and you should post course-related questions and responses there. I expect you to make good use of the discussion group and of TA and proctor support when you have technical or administrative questions or problems.

Email to you: In this course, email will be used as a means of communication with students. You will be responsible for checking your email regularly for class work and announcements. Please be certain the University has your correct email address on record.

Email to the Instructor or TAs: Emails to me, the proctors, and the TAs should begin with "CS303E:" in the subject line, followed by a brief description of the purpose of your email. We receive enormous amounts of email, and if you follow this rule we will be better able to address your questions in a timely manner.

Questions about account activation or nitty gritty questions about logging in to an elements lab machine, and using or installing software are best directed to either the discussion group or to the proctors and TAs during lab office hours. Please do not email us questions to which you can easily find an answer on the course website or syllabus.

Expectations

Course Structure: Lectures will introduce programming language constructs through extensive examples, by developing Python programs, and by testing them in class. A key component of this course is the active participation of students. While I will lead you through the main concepts and provide you with details relevant for understanding and applying those concepts, you have to provide the "active learning" component. By active learning, I mean you must do things, think about things, ask questions---basically whatever it takes for you to be engaged. The format is informal; questions are welcome all the time.

Discussion sections: Discussion sections will start with a short 5 to 10 minute quiz on concepts introduced in lecture. In the remaining 65-70 minutes, your TA will go over the previous quiz, upcoming assignments, and any other topics of interest. Discussion section attendance is mandatory.

Assignment/Lecture Schedule: A schedule of lecture topics, reading assignments, and assignment distribution and due dates is available online, via the class web page. The schedule page contains links to slides for the lectures, assignments, and readings. Readings are to be completed before class.

The schedule is subject to change.

Required Effort: The workload for this course will be fairly heavy. There will be readings, ten programming assignments, ten quizzes, and three exams. An estimate of the required amount of effort to pass this class is as follows:

For you to maximize your learning, it is essential that you read the text and attempt the exercises and problems assigned prior to each class meeting. I do not expect you to have "mastered" the materials or developed the "correct" solutions to the exercises and problems. However, the ideas you will be exposed to require thinking and getting used to, which is possible only with multiple exposures to the material. Also, the readings can be difficult---so be patient. Finally, the concepts build on each other, so you must stay current. Please make up any missed classes on your own or through a combination of help from your colleagues and myself.

Professionalism: Professional conduct is built upon the idea of mutual respect. Such conduct entails (but is not necessarily limited to):

Evaluation

Exams: Exams will cover material from lecture, discussion sections, assignments, and assigned readings. Exams will be cumulative, but they will be more heavily weighted towards material which has not yet been tested. The exams will be held in-class on 6/29, 7/20, and 8/10. All three dates are Fridays.

Quizzes: Quizzes will be given in each discussion section. No makeup quizzes will be given. You are expected to attend every discussion section.

Quizzes will be graded on a 10 point scale.

iClicker Participation: iClicker participation is measured in your answers to iClicker questions, so bring your iClicker with you to lecture. In order to receive iClicker credit for a given day you MUST:

You are required to attend class, and you are responsible for knowing or learning any material presented in class. If you must miss class, you are not required to inform the instructor, but you are responsible for learning any material you missed. The instructor posts detailed notes for each class on the course web site, but classes are interactive, so the actual discussion may depart from the notes. The best way to know what actually happened in a class is to be there and participate; if you must miss a class, you should study the notes carefully and perhaps talk to your colleagues about the technical topics discussed and what points were particularly emphasized.

Use of laptops, phones, or other digital devices during lecture results in the forfeiture of iClicker participation points.

Assignments: Assignments will usually be given every week. The due date for each assignment will be clearly stated. Respect Murphy's rule and plan for your bus to run late, your personal computer to crash the afternoon of the due date, etc.

When you turn in your assignment, the file must include the required header, available on the assignments page. Additionally, all turned in programs must be named the name specified in the assignment. Assignment files that are incorrectly named will not be graded. Programs that do not load properly will receive 0 points. Programs that experience a runtime error will lose all points for correctness.

For your assignments, you may use the PCs in PAI 5.38 and in ENS rooms 1 and 2. You are also free to work on your own computer. Programs must compile and run in PAI 5.38.

All assignments must be submitted using the web based turnin program. We will not accept assignments e-mailed to us.

Assignments submitted via the turnin program are placed in your directory on the turnin server. Graded assignments will be returned by placing a copy of the graded assignment in the same directory. The copy will contain comments and your grade and will have a file name similar to the name of the file turned in. These files can be viewed with any text editor (such as Notepad). Once you have submitted an assignment for a grade, do not delete the submitted file or the returned file from the server. These files are part of your record for the course and must be saved by you in case of a lost file or grade dispute.

Unless otherwise noted, all assignments must be done alone.

Late Policy: You will have 4 slip days in 1 day units (that is, 1 minute to 24 hours late = 1 slip day, etc.) to use throughout the semester to extend assignment deadlines. You may divide your slip days across the assignments in any way you wish, subject to the 4 day total. Slip days are to account for life circumstances and emergencies. Do not use your slip days frivolously. If you use all your slip days and then cannot turn in your assignment on time for any reason then you will receive a 0 for that assignment.

Grading: Grades are essential to insuring that your degree has the value that it deserves. As a result, we have a grading system that has two essential properties:

These class components are used to determine your final average in the following manner:

Component Type Number Points Total Points Description
Assignments 7 20 140 Medium-scale programming projects per the assignments page.
iClicker participation 25 3 each lecture 75 Determined by responses to questions with the iClicker.
Quizzes 10 10 each 100 A quiz will be given at the start of each discussion section. The quiz will consist of writing code and is designed to be preparation for the exams.
In class exams 3 210, 210, 285 675 Exams are in class on 6/29, 7/20, and 8/10. All are cumulative.

Programming assignments, iClicker participation , and quizzes can count no more than 285 points towards your final average. Programming assignments, iClicker participation , and quizzes add up to 315 points. There are 30 points of "slack" in these non-exam grading components. This slack (and slip days explained below) is to account for any problems that may occur during the semester that cause you to miss one of these non-exam components. (Such as illness, family emergencies, hardware problems, etc.) Quizzes and iClicker participation cannot be made up for any reason. For assignments there is some leeway. See the explanation of slip days below.

The final letter grades will be assigned based on your total points. The maximum possible for points is 1000. The grade cutoffs are: <600 = F, 600 - 699 = D, 700 - 799 = C, 800 - 899 = B, >= 900 = A. Pluses and minuses (+ and -) will be assigned to scores within 25 points of the cut offs. So for example total points 875 to 899 earn a B+ and total points 900 to 924 earn an A-.

Note: Points are not added to your final total. The "slack points" are handled by basing your final average on 1000 points instead of 1030 points. There are 1030 points available in the course. non-exam component points are capped at a maximum of 285. In other words, earning more than 285 points on the non-exam components will NOT result in points being added to your exam score.

Depending on the results of an exam, exam scores may be curved. If so, exam scores may stay the same or improve. Exam score will never get worse due to a curve. No other class component (assignments, iClicker participation, or quizzes) is curved.

Your grades are recorded in the gradebook on Blackboard.

If you have questions or concerns about an assignment grade, contact your grader. If you have question or concerns about any other grade, contact your TA.

Grade Changes: If you believe your work was graded incorrectly, you must present a written or email complaint to your TA (the TA who teaches your discussion section). The complaint must be submitted within one week of the date on which we first attempted to return the graded work to you. Your complaint must contain supporting evidence and arguments which explain why your work was graded incorrectly. (For example, it is not sufficient to submit a note that says "regrade question 3".) Grade change requests that do not meet these requirements will not be considered. Note that assigned grades are not the starting point of a negotiation. This isn't a weekend bazaar. Unless we have made a mistake in grading your work (i.e., you have a correct answer that was marked wrong, or your score was added incorrectly), your grade is final.

Note that none of the following grade discussions is appropriate:

Pair Programming: On some specified assignments you may work with one other person---on these pair programming assignments, you must follow the pair programming guidelines below and on the course web page. For the pair assignments, you will turn in the assignment to only one of your lab accounts, but be sure to include both of your names in the header and note that this is a pair assignment. Both students will receive the same grade for the assignment. We use pair programming because it is a more effective and time efficient way to learn the material. Researchers have shown that students perform better in the class in which they use pair programming than without, and also they perform better in subsequent classes with or without it. These results indicate that you learn more and better with pair programming. Please read:

You must follow the pair programming guidelines: the pair must sit, design, and program together at least 80% of the time, and split keyboard time evenly. Each student can work independently for at most 10% of the effort/time. The person at the keyboard is the driver, and the person sitting next to him/her is the navigator. We recommend you alternate driving and navigating every 30 minutes.

Find a partner in your lecture. You may change partners between assignments. However, once you begin an assignment with a partner, you cannot re-pair for that assignment. In an emergency (your pair gets sick, flips out, etc.), you may independently do that one, and only one, assignment. You must first send an email to the instructor and TA. With their approval, you may turn in your assignment. In the comments of your class file(s), you must include (1) your initial partner, (2) a copy of the email correspondence with the TA and/or instructor.

Collaboration and Cheating

You are encouraged to study for exams together, to discuss methods for solving the assignments, to help each other in using the software, and to discuss methods for debugging code. Such activities qualify under approved collaboration practices and you are welcome to take advantage of them. You may not look at any course project material relating to any project similar to this course's class projects. For example, you may not look at the work done by a student in past years' courses, and you may not look at similar course projects at other universities. If you are unsure about whether a particular source of external information is permitted, contact the instructor before looking at it.

Note that cooperation is not the same thing as cheating. Materials from the web should only be used for educational purposes. For example, you can read about loops and look at examples of loop code, but you must not copy any code from the web or be looking at any of this code from the web when writing anything you turn in. If you discuss an assignment with another student or look at examples from the web, you should employ the following technique: after a discussion with another student or looking at example code you should do something that has nothing to do with computer science or programming for at least half an hour.

Students who violate University rules on scholastic dishonesty are subject to disciplinary penalties, including the possibility of failure in the course and/or dismissal from the University. Because such dishonesty harms the individual, all students, and the integrity of the University, policies on scholastic dishonesty will be strictly enforced. The penalty for cheating on an exam, quiz, or assignment in this course is an F in the course and a referral to the Dean of Students office.

It is generally okay to verbally discuss the concepts needed to do projects assignments. Three guidelines will help you keep on the right side of the line.

  1. First, other than the TA and instructor, it is never okay to look at the written work of another person or show another person your written work until after all grading on an assignment is completed. This includes looking at paper print-outs, sketching solutions on a white board or napkin, or looking at a screen to help debugging. The moment you start looking at another student's (or pair's) source code you have crossed the line into cheating. It should go without saying that copying other people's code or solution sets is strictly prohibited.
  2. Second, while you are discussing an assignment with another student, you must not have a writing implement, keyboard, or recording device in hand. Similarly, you should not read from your own work. After discussing a problem with another student (or the TA!), go watch American Idol for a half hour before going back to work on the assignment. If you can't remember what the person said after a half hour, you didn't really understand it.
  3. Third, everyone in the class is expected to take appropriate measures for protecting one's work. For example, you should protect your files and printouts from unauthorized access.

Note that these guidelines are necessarily generalizations and cannot account for all circumstances. Intellectual dishonesty can end your career, and it is your responsibility to stay on the right side of the line.

Examples of cheating include: looking at someone else's program, writing your program while talking to someone else about it, talking another student through the solution code, allowing others to look at your solution code, and looking on the internet for code to solve your programming assignments. If you have any doubts about what is allowed, ask the instructor.

Plagiarism detection software will be used on various assignments to find students who have copied code from one another. Any program that you submit must be yours, and yours alone.

If you are participating in a pair programming assignment and your partner cheats, you are also culpable. Either you were following the rules of pair programming and you knew your partner was cheating, or you were not following the rules of pair programming.

Other Stuff

Important Dates for Changing Academic Status and Dropping the Course : Refer to the Registrar's academic calendar for the deadlines for changes in academic status. Highlights are:

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.

Students with Disabilities: The University of Texas at Austin provides upon request appropriate academic accommodations for qualified students with disabilities. For more information, contact the Division of Diversity and Community Engagement, Services for Students with Disabilities at 471-6259, 471-4641 TTY.

Final Note

This syllabus is a plan of action for the semester. It is NOT a contract and is subject to change. As the instructor, I reserve the right to make additions, deletions and modifications to the syllabus and the course requirements with reasonable notification to the students enrolled in the course. You are responsible for any changes announced in class or on the course website.

Acknowledgments

In the preparation of this course, I used materials from Mary Eberlein, Mike Scott, Kathryn McKinley, Shyamal Mitra, Calvin Lin, Charlie Garrod, and Jennifer Brown.