Syllabus
Course Design and Approach
This class has been specifically designed to be delivered live and in-person to beginners. We will meet in Manning 001 on Monday evenings from 5:45 p.m. to 8:30 p.m.
If you don't fit the target audience, or if you have any questions or concerns with this course design, reach out to me via email before the first class to discuss.
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.
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 classroom exercises 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.
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, 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. However, 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.
New Resource
I just discovered this resource about an hour before beginning to teach the class! I like it for the following reasons:
- You can download the full pdf for free (follow the link below)
- It's targeted to beginners
- It really focuses on the "need to know" concepts
- the pdf is easy to navigate
- if you decide to purchase a real book you can get a photocopy for $40 and a softcover book for $65
- The author has a doctorate and teaches Computer Science at the University of the West of England
- There is a GitHub site with more code samples from the book.
The downside is that it does seem to have numerous typos. (I am a big-picture-typo-prone person, so I am able to look past typos if the concepts are well defined. I think they are.)
Bottom line....The logic seems solid and the concepts are presented well, it is extensive, and IT IS FREE!
A Beginners Guide to Python3 by John Hunt is a free download from UNC Libraries.
Suggested Resources
Automate the Boring Stuff with Python
Automate the Boring Stuff with Python Open Source Free Book by Al Sweigart.
Other Course Materials by Al Sweigart
Python Crash Course
Python Crash Course Third Edition.
I really love this book! It is a great book for self-learning Python. I ordered the spiral-bound version and loaded it up with post-it notes tabs for quick reference. I used it along with The Gaddis Text last summer to prep for teaching this fall.
Starting Out with Python, 6th edition
Last semester this course started out very closely aligned with this book. However, as the course progressed, I began to develop my own materials. Therefore, it is not required to purchase this book. If you do wish to purchase a hard copy of the book, the 3rd edition is fine.
The digital textbook is only $43.96 for four months: Starting out with Python 6th Edition I have a copy of the 4th Edition, so I will not be subscribing to the online book this semester.
Other Resources on the Web
We only meet once a week...don't get behind!
The motto for this course is progress, not perfection.
Class Policies
Participation
Class participation is a key element of this course. All students are expected to come to class prepared to be engaged, to participate in all class exercises, and to contribute to group discussions.
In addition:
- Be on time for class.
- If you know in advance that you will be miss a class, arrive late to class, or leave early from class, please let me know ahead of time.
- If you miss class unexpectedly, please let me know why you were absent before the next class meeting.
- Repeated absences or late arrivals will negatively impact your class participation grade.
- If you don't understand something from class, ask questions! You can ask in class, you can stop by my office during office hours, or you can ask on the class discussion forum (see here for more information).
- "Quality is better than quantity." Class participation is part of your grade for this course. However, there are many ways to participate.
Assignments
Submission instructions will be included with each assignment description.
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.
Office Hours
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. Instructor does not have an office on campus but will be in Manning on Monday afternoons before class and Friday mornings.
Honor Code
All assignments and exams are expected to be completed individually. Students are expected to adhere to the UNC Honor Code. Always turn in work that you have really worked on and documented with comments.
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:
value | item |
---|---|
60% | Assignments (this will include some in-class work during the first module. If you miss class you must make up the in-class work doing a different assignment from what we did in class. I need to know that you know it!) |
25% | Exams |
15% | Class Participation |
If you are actively engaged in class, put in the work, learn how to code, and learn from your feedback, you will finish well.
Please note that class participation grades will be based on general participation during class discussions/activities and class attendance. In some cases, especially in the first section, assignments will be completed during the class session. This is to your advantage if you attend class and to your detriment if you do not attend class.
Campus Resources
Accessibility Resources
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.
Counseling and Psychological Services
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.
Title IX
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.