COP 3502C

COP 3502C

Programming Fundamentals I

This course is taught using the Python language. While the syntax is taught so that students can use it as an effective tool, the course focuses on computational thinking, concepts, theory, and practice.

Foundations of Computing

Computation Basics (Notional Machine)
Computational Thinking
Console IO
Problem Solving
Algorithms
Variables
Arithmetic Operations
Selection
Indeterminant Loops (while / do-while)
Determinant Loops (for)
Data Types (Lists, Strings, Tuples, Ranges, Sets, Dictionaries, Arrays)
String Manipulation
Command Line Interface (CLI)

Abstractions

Recursion
Iteration
Functions
Paradigms
Object Oriented Programming
Comprehensions (including lists and generators)
Value vs. Reference (and function in scripting languages)
Heap vs Stack

Computational Theory

Complexity Introduction
Sets Theory
Propositional Logic Introduction
De Morgan’s Laws

Software Engineering

Conventions
Specifications
Flow Charts / Pseudocode
Errors
Assertions & Unit Tests
Version Control
APIs / Documentation
Debugging
Common Frameworks

Computing in Society

Impact of Computing
Data Collection
Ethics / Privacy