Computer Programming
Instructors: Mr. Michael Sheleme
Contact:
[email protected]Course Summary
“The value of a college education is not the learning of many facts but the training of the mind to think.” Albert Einstein
The first course for software engineering majors and anyone seeking a rigorous introduction. Develops computational thinking
and problem-solving skills by programming, and exposes students to variety of other topics from computer science and its
applications.
Prerequisites: High school mathematics and Excitement
Course Topics
Chapter 1: Introduction
● What is computation?
● History of computing and programming
● Formal and Natural languages
● Introduction to Programming
Chapter 2: Flowchart and Algorithm Basics
• Problems Involving Selection
• Problems Involving Looping
• Problems Involving Arrays
Chapter 3: Variables, Expressions and Statements
● Primitive data types and values
● Variables
● Data Types & Casting
● Booleans and Expressions
Chapter 4: Functions
● What are functions?
● Built-in Functions
● Function calls
● Parameters and Arguments
● Flow of execution
● Function composition
Chapter 5: Conditionals
● Boolean Expression and Logical Operators
● Conditional Execution
● Chained and Nested Conditions
● Keyboard input and Defensive Programming
Chapter 6: Functions (Not a typo … functions again)
● User-Defined Functions
● Fruitful and void functions
● Return vs Print
● Function Scope
● Decomposition and Abstractions
Chapter 7: Iteration
● Looping Basics
● The while loop
● Break and Continue
● For Loops, Nested Loops
Chapter 8: Strings
● String as a sequence
● Indexing
● Mutability and Immutability
● Searching
● String Comparison
Chapter 9: Data Structures
● What are Data Structures
● Lists
● Numerical Indexing
● Dictionaries
● Tuples and Sets
Chapter 10: Persistence
● File
● Reading and Writing
● Common file formats
● Pickling
Chapter 11: Object Oriented Programming
● Class and Object
● Object Modelling
Assessment
Mid Exam: 25%
Quiz and assignment: 25%
Final Exam: 30%
Text Book:
Allen Downey. How to Think Like a Computer Scientist (2nd edition).
A. B. Chaudhuri. Flowchart and Algorithm Basics: The Art of Programming
Reference:
Liang. Introduction to Python Programming
Online Course
Python For Everybody Specialization (Course 1 and 2). URL
(https://www.coursera.org/specializations/python#courses)