CS-108-A (Introduction to Computing) at Calvin University
Units
7. Classes
Activities
Card game
Syllabus
Lab Instructions
Success Tips and Resources
Feedback on some questions
Class demonstrations
Multi-Aspectual Analysis of Software Applications
Final Project
Final Project Showcasing
Classes
Week 01
01-17-24 (Wednesday)
01-18-24 (Thursday - Lab)
01-19-24 (Friday)
Week 02
01-22-24 (Monday)
01-24-24 (Wednesday)
01-26-24 (Friday)
Week 03
01-29-24 (Monday)
01-31-24 (Wednesday)
02-02-24 (Friday)
Week 04
01-05-24 (Monday)
01-07-24 (Wednesday)
01-09-24 (Friday)
Week 05
02-12-24 (Monday)
02-14-24 (Wednesday)
02-16-24 (Friday)
Week 06
02-19-24 (Monday)
02-21-24 (Wednesday)
02-23-24 (Friday)
Week 07
02-26-24 (Monday)
02-28-24 (Wednesday)
03-01-24 (Friday)
Week 08
03-11-24 (Monday)
03-13-24 (Wednesday)
03-15-24 (Friday)
Week 09
03-18-24 (Monday)
03-22-24 (Friday)
Week 10
03-25-24 (Monday)
03-27-24 (Wednesday)
Week 11
04-03-24 (Wednesday)
02-19-24 (Friday)
Week 12
04-08-24 (Monday)
04-10-24 (Wednesday)
04-12-24 (Friday)
Week 13
04-15-24 (Monday)
04-17-24 (Wednesday)
04-19-24 (Friday)
Week 14
02-19-24 (Monday)
04-24-24 (Wednesday)
04-26-24 (Friday)
Units
1. Introduction
Concepts
1.1 Program
1.2 Computation
1.3 Code
1.4 Objects and Variables
1.5 Assignments
1.6 Input/Output
1.7 Running Python
Activities
Presentations
Pictionary Example
2. Expressions
Concepts
2.1 Operators
2.2 Overflow
2.3 Constants
2.4 Math module
2.5 Random numbers
2.6 Comments
2.7 Programming style
Activities
Computers are stupid?
Hospitable-code
3. Data types
Concepts
3.1 Built-in Types
3.2 Object Methods
3.3 Tuples
3.4 Strings
3.5 Lists
3.6 Dictionaries
Activities
Encoding Information
The world of 0’s and 1’s
4. Branching
Concepts
4.1 If statement
4.2 If-else
4.3 Multi-way selection
4.4 Nested ifs
4.5 Comparison Operators
4.6 Boolean Operators
4.7 Membership Operators
4.8 Discrimination
4.7 Algorithmic Intelligence
Activities
Exercises 1
Exercises 2
5. Repetition
Concepts
5.1 Repetition Statements
5.2 While Loops
5.3 Break and continue
5.4 Nested loops
5.5 For loops
5.6 Ranges
5.7 List Comprehensions
5.8 The Halting Problem
5.9 List Comprehensions
Activities
Tile Drawing
Accumulators
Flags
6. Functions
Concepts
6.1 Abstraction
6.2 Functions
6.3 Parameters
6.4 Return
6.5 Variable scope
6.6 Docstrings
6.7 Functions as mediators
Activities
Common errors
7. Classes
Concepts
7.1 Object-Oriented Programming
7.2 The constructor method
7.3 The self argument
7.4 Class methods and variables
7.5 The
str
method
7.6 Operator overloading
7.7 Inheritance
7.8 The Internet of Things
7.9 Network power
Activities
Card game
Shapes and areas
8. Techniques and patterns
Concepts
8.1 Dictionaries
8.2 Sets
8.3 Event Handling
8.4 Lists
8.5 Open Software
9. Modules
Concepts
9.1 Concurrent Version Control Systems
10. Graphical User Interfaces
Concepts
10.1 GUIs
10.2 GUIZero
10.3 UI Elements
10.4 Interaction Design
10.5 Technological Mediation
11. Files and filesystems
Concepts
11.1 Operating Systems
11.2 Text Files
11.3 Binary Files
11.4 Serialization
11.5 Context Managers
11.6 Dataframes
11.7 Data journeys
12. Testing and exception handling
Concepts
12.1 Raising exceptions
12.2 Catching exceptions
12.3 Incremental Development
12.4 Unit Testing
12.5 Risk and responsibility in software
13. Basics of Scientific Computing
Concepts
13.1 Scientific Computing
13.2 NumPy Basics
13.3 SciPy Basics
13.4 Visualizations
13.5 Computer Simulations
13.6 Reproducible Science with Jupyter
On this page
Exercise: a card game
Exercise: a card game
Try to write the class definitions for the following class diagram, representing a game of bridge:
7.9 Network power
Shapes and areas