Guten Tag! This course is bilingual and is taught in Python and Java.
- The UNIX Command Line
The file unixRecut.pdf, which you can snag from Canvas, will be required
reading You will learn to use the command-line interface. You are
expected to read the entire chapter. I will do a quick coverage of it in
class but I expect you to show some resourcefulness and independence.
- Login and Passwords
- UNIX Commands: name, options, arguments
- Managing Directories
- Paths
- Making and listing regular files
- Copying, renaming, and removing files
- Editing Files
- File Permissions
- Variables, Expressions, and Scalar Types Here we
learn about the basic ecosystem of data types and how they interact
in Python and Java. Reading for Python is in
p0.pdf
andj0.pdf
andj1.pdf
, which you can download from froobles or Canvas. When you are done here, you will be able to manipulate the scalar types, and be able to read the docs to find solutions to problems. You will be able to write very simple programs that do calculations and manipulate strings.- The Interactive shells
- Python's scalar type ecosystem: scalar types and their operators
- Java's Eight Primitive Types
- Variables, expressions, assignment, and symbol tables
- Expressions, the order of operations, and the inside dope on assignment
- Strings, string methods, and the string docs
- Pooling
- Math
- Writing a Program
- Containers
- The container type ecosystem: data structures and compound
types
- Sequences
- Hashed Types: Sets and Dictionaries
- The
class
mechanism
- The container type ecosystem: data structures and compound
types
- Boss Statements: Modularization and Conditional
Logic When you are done here you will be able to write and call
functions that perform specific tasks. You will be able to use default
arguments(Python) and function name overloading(Java) to make functions
that are flexible and easy for you to call.
- The first boss statements: functions
- Conditional logic and its boss statements
- The dope on scope: local symbol tables
- The call stack
- What the heck is the heap?
- Functions as objects
- Modules, standard library modules, and user-defined modules
- Recursion
- Iteration and Iterators
- Iterables and definite loops
-
while
and indefinite looping - Function flexibility: default and keyword arguments in Python and method name overloading in Java
- FileIO and exceptions
- Python Generators and the
yield
keyword - Algorithms: A little number theory
- The Performance of Algorithms
- Iterative sorting techniques
- A recursive sort: Merge Sort
- Algorithms
- Searching
- Root Finding
- A little number theory
- Performance of algorithms and O.
- Iterative sorting
- Merge Sort
- Fancy Tools Add some zing to your programming experience
by opening and exploring this cool toolbox.
- Comprehensions and Streams: say what you want
- Custom sorting with keys
- Regexes: Characterclassese, Regexese, and the Java and Python dialogues
- Case study: writing a concordance
- Creating Custom Objects Here you learn to create object
factories that spit out custom objects tailored to the tasks you wish to
perform.
- Stick-building objects
- Classes as object blueprints
- Case study: playing cards
- Using Cards
- A Shoe object
- Case study: Fractions
- Rational approximations of roots using the Fraction class
- Project: Poker.py
- Final Project