CSE 10101/CDT 30010 is the first course in the core programming sequence in the Computing & Digital Technologies Minor. Utilizing the Python programming language, you will explore and practice foundational programming concepts such as syntax, variables, conditional execution, iteration, functions, and data structures such as strings, lists, and dictionaries. To develop a greater understanding of the different tracks in the CDT minor, you will apply your programming skills to solving problems related to User Interface and Experience, Cyber Safety and Security, Digital Humanities, Digital Arts, Cognitive Science, and Technology Development and Management.
Upon successful completion of this course, students will be able to:
Define common computing and programming terms and concepts.
Employ common programming patterns and abstractions to solve problems.
Choose appropriate data structures to develop efficient applications.
Discuss the trade-offs of different programming strategies and techniques.
Trace the execution of programming code, recognize errors, and correct bugs.
Construct Python code to solve problems and automate processes in different domains and disciplines.
Unit | Date | Topics | Assignment |
---|---|---|---|
Introduction | 08/23 | Introduction, Syllabus Slides | Reading 00 |
08/25 | Programming, Python, Anaconda Slides | Notebook 00 | |
Basic Syntax & Types | 08/30 | Arithmetic, Values, Types Slides Notes | Reading 01 |
09/01 | Variables, Expressions, Statements Notes | Notebook 01 | |
Conditional Execution | 09/06 | Conditional and Alternative Execution Slides Notes | Reading 02 |
09/08 | Chained and Nested Conditionals Checklist 01 Notes Quiz 01 | Notebook 02 | |
Iteration | 09/13 | Loops Slides Notes | Reading 03 |
09/15 | Patterns Notes | Notebook 03 | |
Functions | 09/20 | Functions Slides Notes | Reading 04 |
09/22 | Arguments, Docstrings Notes | Notebook 04 | |
Lists, Strings | 09/27 | Lists Slides Notes | Reading 05 |
09/29 | Strings Checklist 02 Notes Quiz 02 | Notebook 05 | |
Dictionaries, Sets | 10/04 | Dictionaries Slides Notes | Reading 06 |
10/06 | Sets Notes | Notebook 06 | |
Midterm | 10/11 | Review Checklist Notes | |
10/13 | Exam 1 | ||
Fall Break | |||
File I/O | 10/25 | Reading Slides Notes | Reading 07 |
10/27 | Writing Notes | Notebook 07 | |
Data Manipulation | 11/01 | CSV Notes | Reading 08 |
11/03 | JSON, Requests Notes | Notebook 08 | |
Image Processing | 11/08 | Representation, Manipulation Slides Notes | Reading 09 |
11/10 | Processing Checklist 03 Notes Quiz 3 | Notebook 09 | |
Artificial Intelligence | 11/15 | Twitter Bot | Reading 10 |
11/17 | Connect 4 Notes | Notebook 10 | |
11/22 | Battle Royale | Project 01 | |
11/24 | Thanksgiving | ||
Web Programming | 11/29 | HTML, Tornado Slides Notes | Reading 11 |
12/01 | Forms Notes | ||
12/06 | Sprint | ||
12/08 | Presentations | Project 02 | |
Final | 12/12 | CheckList Exam 2 |
Component | Points |
---|---|
Readings Weekly reading assignments and corresponding writing prompts. | 10 × 3 |
Notebooks Weekly individual programming assignments using Jupyter Notebooks. | 10 × 12 |
Projects Collaborative group programming projects. | 2 × 15 |
Quizzes Periodic quizzes. | 3 × 15 |
Exams A midterm and a comprehensive final exam. | 30 + 45 |
Total | 300 |
Grade | Points | Grade | Points | Grade | Points |
---|---|---|---|---|---|
A | 280-300 | A- | 270-279 | ||
B+ | 260-269 | B | 250-259 | B- | 240-249 |
C+ | 230-239 | C | 220-229 | C- | 210-219 |
D | 180-209 | F | 0-179 |
All your Readings and Notebooks are to be submitted to your own private GitLab repository.
Students are expected to attend and contribute regularly in class. This means answering questions in class, participating in discussions, and helping other students.
Foreseeable absences should be discussed with the instructor ahead of time.
In the case of a serious illness or other excused absence, as defined by university policies, coursework submissions will be accepted late by the same number of days as the excused absence.
Otherwise, there is a penalty of 25% per day late (except where noted). You may submit some parts of an assignment on time and some parts late. Each submission must clearly state which parts it contains; no part can be submitted more than once.
All work that you submit must be your own. Collaboration is encouraged but must be disclosed by all parties. Print or online resources are allowed, but must be disclosed. However, you may not look at solutions from other current or past students, or any other source.
Any student who has a documented disability and is registered with Disability Services should speak with the professor as soon as possible regarding accommodations. Students who are not registered should contact the Office of Disability Services.
All of the course textbooks are freely available online.
Automate the Boring Stuff with Python
A book dedicated to teaching beginnings how to program in Python. The website includes a variety of extra resources including videos.
Python for Informatics: Exploring Information
A set of course materials for introducing Python to informaticians. The website includes a variety of resources including multiple versions of the book, slides, videos, audio, and more. The book is based on Think Python: How to Think Like a Computer Scientist.
A free book on programming using the Python language.
Python Scientific Lecture Notes
A collection of lecture notes used to train scientists interesting in utilizing Python in their workflows. The notes are available in PDF and HTML format.
The Art and Craft of Programming
A book that provides an overview of the basics of programming in Python.