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.pdfandj0.pdfandj1.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 classmechanism
 
-  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
-  whileand indefinite looping
- Function flexibility: default and keyword arguments in Python and method name overloading in Java
- FileIO and exceptions
-  Python Generators and the yieldkeyword
- 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