COURSE DESIGN AND APPROACH

Computer programming is about problem solving. It is about breaking down a problem into smaller pieces, developing solutions for those sub-problems, and connecting them together to address the overall challenge. As Steve Jobs, the visionary founder of Apple Computer said, "Everybody in this country should learn to program a computer... because it teaches you to think."

This class will provide an introduction to programming with a focus on the Python programming language. The course will teach you how to use Python, its syntax, and its features. However, the course will present material that is much more fundamental. You will learn a bit about how computers work. You will learn about data representations and structures. You will learn about flow control concepts including conditionals and iteration. You will learn design techniques, best practices, and debugging methods.

However, this course is not just about concepts. Throughout the semester, you'll be given opportunities for hands-on practice. This includes both in-class exercises and homework assignments. This follows a "learning by doing" philosophy which motivates much of this course's design. Given this design, you'll find that many class sessions include practice exercises for you to complete on your own laptop. You'll also find that the course schedule includes a large number of assignments, each designed to reinforce different course topics.

BEWARE: This class will require you to invest a significant amount of time to succeed. As a student in this course, you will be asked to complete readings in our text book, perform in-class exercises, and code up solutions to homework assignments. There will also be a final exam. Students who invest the required time in these activities will succeed. DO NOT WAIT until the last minute to complete your assignments. If you do, you may find that you simply don't have enough time to do the required work.

 

BOOKS AND READINGS

The organization for this course will adhere closely to the required textbook "Starting out with Python" by Tony Gaddis (published by Pearson). Copies of the textbook should be available in the Student Bookstore and online. Unfortunately, the publisher insists on releasing new editions regularly with only superficial changes. As a result, the book store typically can't carry used books. The good news is that any recent edition (3rd, 4th or 5th editions) should all be fine for this class. If you search online using Google or Amazon, you may find a very good deal for an 'old' version that is perfectly fine and up-to-date for this class!

Again, this book is currently in the 5th edition. However, previous versions of the book (e.g., the 3rd and 4th editions) have VERY similar content. Section numbers and page numbers may differ, but the content is fine.

I recognize that this book requires an investment on your part. This particular book has been selected because of the positive reviews from past INLS 560 students here at UNC. Those students strongly recommended this book, and it will be used extensively throughout the semester.

In addition to the required textbook, there many other resources available to students who are interested in learning more. Many of these resources are available online. Good places to look for more about programming and Python include:

  • Google (or Bing). The search engines you use every day are perhaps the best place to go to find examples, code snippets, documentation, and more. I myself use Google every day that I program to look things up. The web is the first place I go for help.
  • "Think Python" by Allen Downey. Available online and in print from O'Reilly.
  • "Learn Python", an online interactive tutorial.
  • "Learn Python the Hard Way" by Zed Shaw. Available online and in print from Addison-Wesley. Available online and in print from Addison-Wesley.

 

CLASS POLICIES

For a complete set of class policies, please see the course syllabus within Sakai. Certain key policies are also outlined here.

Class participation is a key element of this course. All students are expected to come to complete lectures in a timely fashion, comlpete indepdent exercises, and be active participants in the online discussion form for this class. See the syllabus on Sakai for details about the discussion forum. In particular:

  • If you don't understand something from class, ask questions via the discussion forum.
  • Help your fellow students by posting comments/answers to the discussion forum. If you are shy, you can even post anonymously.

Assignments are due at 9:30am (local Chapel Hill, NC time) on the date that they are due unless otherwise specified.

Assignments are to be submitted using Sakai.

Late assignments will be penalized 10% for each day late, up to a maximum of three days. A "day" here refers to a 24 hour period, or fraction thereof, after the due date. For example, a late assignment turned in 25 hours late will be penalized as two days late. No assignments will be accepted if more than 72 hours (3 days) late.

Start early and ask questions. Many assignments may turn out to be more time consuming than expected. It is strongly suggested that you start working on assignments as soon as they are assigned. In this way, you'll have time to ask questions and complete your assignment before the due date.

Exceptions due to special circumstances will be considered on a case-by-case basis. When deemed appropriate, limited extensions may be granted. However, be sure to inform the instructor AS SOON AS POSSIBLE should you require a special accommodation. If a problem is known about in advance, then the instructor should be told before it occurs. Exceptions are much less likely to be provided if requests for accommodation are not made in a timely fashion.

Those with questions about course material, having trouble with assignments, or seeking any other kind of assistance related to class are encouraged to meet with the instructor during office hours. See the main course page for hours and location.

Office hour meetings are also available by appointment. You can schedule meetings via private message to the instructor on Piazza. Scheduled office hour meetings will typically be held via Zoom.

Students are expected to adhere to the UNC Honor Code.

Moreover, all assignments and exams are expected to be completed individually. Moreover, you are NOT allowed to use solutions to problems that were authored by other people (even if those other people are not fellow students in your class). It is possible that some homework assignments will be posted to cheating or other websites. However, you may not use these solutions even if you didn't post the original question. You may not use solutions authored by others. Using any solution to the assignments that is not your own work--in full or in part--is against the Honor Code.

 

GRADING

Your grade for this course will be determined by a combination of three distinct elements: programming assignments, exams, and class participation. The approximate contributions of these three elements to your grade are as follows:

  • 60% - Assignments
  • 25% - Exams
  • 15% - Class Participation

Please note that class participation grades will be based on general participation in the discussion forums. This includes asking questions, providing answers, or any other participation in the online discussion as it evolves over the semester.

In addition, please note that assignments are not all weighted equally when determining your final grade.

Grades will follow the standard UNC grading system as outlined by the Office of the University Registrar. The grading scale will be curved, with the highest grades reserved (as outlined by the Registrar) for those with "the highest level of attainment that can be expected."

 

CAMPUS SERVICES

The University of North Carolina at Chapel Hill facilitates the implementation of reasonable accommodations, including resources and services, for students with disabilities, chronic medical conditions, a temporary disability or pregnancy complications resulting in barriers to fully accessing University courses, programs and activities. Accommodations are determined through the Office of Accessibility Resources and Service (ARS) for individuals with documented qualifying disabilities in accordance with applicable state and federal laws. See the ARS Website for contact information: https://ars.unc.edu or email ars@unc.edu.

CAPS is strongly committed to addressing the mental health needs of a diverse student body through timely access to consultation and connection to clinically appropriate services, whether for short or long-term needs. Go to their website: https://caps.unc.edu/ or visit their facilities on the third floor of the Campus Health Services building for a walk-in evaluation to learn more.

Any student who is impacted by discrimination, harassment, interpersonal (relationship) violence, sexual violence, sexual exploitation, or stalking is encouraged to seek resources on campus or in the community. Please contact the Director of Title IX Compliance (Adrienne Allison – Adrienne.allison@unc.edu), Report and Response Coordinators in the Equal Opportunity and Compliance Office (reportandresponse@unc.edu), Counseling and Psychological Services (confidential), or the Gender Violence Services Coordinators (gvsc@unc.edu; confidential) to discuss your specific needs. Additional resources are available at safe.unc.edu.

The content on this page has been developed by David Gotz at the University of North Carolina at Chapel Hill. Copyright © 2015, 2021. All Rights Reserved.