CMSC 11 - Introduction to Computer Science
Course Description
This is a 3-unit course that will discuss about Computer Science using Python
Programming Language, one of the emerging programming language nowadays. The
student will engage in different logical problems that requires critical thinking. Also,
the student will learn different programming techniques in Python and solve real-
world problems and tasks with the use of the technology.
Course Learning Outcomes
After completion of the course, the student should be able to:
- Solve problems through algorithm development.
- Describe the basics of software development.
- Write, document, and debug programs for the implementation of algorithms.
- Implement algorithms in Python Programming Language.
- Implement basic computer logic and binary math.
Course Outline
UNIT 1. The way of the Program, variables, expressions, statements
- The Python Programming Language
- What is a program
- Running Python
- Arithmetic Operators
- Values and Types
- Assignment Statements
- Variables
- Expressions and statements
- Script Mode
- Operators and Operands
- Expressions
- Order of Operations: Rules of Precedence
- String Operations
- Comments
UNIT 2. Functions
- Definition of Functions
- Type Conversion Functions
- Math Functions
- Composition
- Adding New Functions
- Definitions and Uses
- Flow of Execution
- Parameters and Arguments
- Stack Diagrams
UNIT 3. Conditionals and Recursion
- Modulus Operator
- Boolean Expressions
- Logical Operators
- Conditional Execution
- Alternative Execution
- Chained Conditionals
- Nested Conditionals
- Recursion
- Infinite Recursion
- Keyboard Input
UNIT 4. Fruitful Functions
- Return Values
- Incremental Development
- Composition
- Boolean Functions
UNIT 5. Iteration/Repetition
- For Loop
- Ranges of Numbers
- Enumerate Function
- Nested Loops
- While Loop
- Infinite Loops
- User Input Loops
- Controlling Loops
UNIT 6. Strings
- Definition of Strings
- Length of a string
- String Traversal using Loop
- String slices
- Searching
- Looping and Counting
- String Methods
- The in operator
- String comparison
- Escape Characters
UNIT 7. Lists
- Definition of List
- Traversing a List
- List Operations
- List Slices
- List Methods
- Map, Filter, and Reduce
- Deleting Elements
- Lists and Strings
- Objects and Values
- Aliasing
- List Arguments
- Nested Lists
- Files as Lists
UNIT 8. Sets and Dictionaries
- Set Operations
- Set Storage
- Dictionary
- Updating and Membership of Dictionary
- Dictionary as a set of counters
- Looping and Dictionaries
- Reverse Lookup
- Dictionaries and Lists
- Global Variables
- Dictionary Methods
UNIT 9. Tuples
- Definition of Tuples
- Tuple Assignment
- Tuples as Return Values
- Variable-length Argument Tuples
- List and Tuples
- Dictionaries and Tuples
- Sequence of Sequences
- Data Structures
UNIT 10. Algorithms
- Definition of Algorithm
- Searching Algorithm
- Find, Remove, Find Algorithm
- Sort, Identify Minimums, Get Indices Algorithm
- Walk Through the List Algorithm
- Timing
UNIT 11. Searching and Sorting Algorithms
- Linear Search
- Linear Search Running Time
- Binary Search
- Binary Search Running Time
- Selection Sort
- Insertion Sort
- Merge Sort
UNIT 12. Modules
- Definition of Modules
- Importing Modules
- Defining User Modules
UNIT 13. Constructions
- Variable Parameter Lists
- Named Parameter
- Exceptions
- Testing
- Debugging
- Patterns
UNIT 14. Graphical User Interface
- The Tkinter Module
- Basic GUI Construction
- Models, Views, and Controllers
- More Widgets