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.
#nd-cse
on FreenodeUnit | Date | Topics | Assignments |
---|---|---|---|
Introduction | 08/25 | Introduction, Syllabus, Slides | Reading 00 |
08/27 | Programming, Python, Anaconda, Slides | ||
Basic Syntax & Types | 09/01 | Arithmetic, Values, Types, Slides | Reading 01 |
09/03 | Variables, Expressions, Statements | Notebook 00 | |
Conditional Execution | 09/08 | Conditional and Alternative Execution, Slides | Reading 02 |
09/10 | Chained and Nested Conditionals, Quiz 1 | Notebook 01 | |
Iteration | 09/15 | Loops, Slides | Reading 03 |
09/17 | Patterns | Notebook 02 | |
Functions | 09/22 | Functions, Slides | Reading 04 |
09/24 | Arguments, Docstrings | Notebook 03 | |
Lists, Strings | 09/29 | Lists, Slides, Exercises | Reading 05 |
10/01 | Strings, Quiz 2 | Notebook 04 | |
Dictionaries, Sets | 10/06 | Dictionaries, Slides, Exercises | Reading 06 |
10/08 | Sets | Notebook 05 | |
Midterm | 10/13 | Review, Study Guide | |
10/15 | Midterm | ||
Fall Break | |||
File I/O | 10/27 | Reading, Slides | Reading 07 |
10/29 | Writing | Notebook 06 | |
Data Manipulation | 11/03 | CSV, JSON, Slides | Reading 08 |
11/05 | Requests, Quiz 3 | Notebook 07 | |
Web Programming | 11/10 | HTTP, HTML, Tornado, Files | Reading 09 |
11/12 | Forms, Slides, Files | Notebook 08 | |
Security | 11/17 | Passwords, Cryptography | |
Image Processing | 11/19 | Representation, Manipulation, Slides | Reading 10 |
11/24 | Convolution, Filters | Notebook 09 | |
11/26 | Thanksgiving | ||
Artificial Intelligence | 12/01 | Connect-Four, Recursion, Quiz 4 | |
12/03 | Mini-max | Notebook 10 | |
12/08 | Sprint | ||
12/10 | Contest | Project | |
Final Exam | 12/18 | Final | Study Guide |
Component | Points |
---|---|
Readings Weekly reading assignments and corresponding writing prompts. | 10 × 3 |
Notebooks Weekly programming assignments using Jupyter Notebooks. | 10 × 12 |
Project Final programming project and presentation. | 1 × 15 |
Quizzes Periodic quizzes. | 4 × 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 Bitbucket 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](http://disabilityservices.nd.edu/).
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.