jagomart
digital resources
picture1_Programming Challenges Pdf 189490 | Ccsc Handout


 131x       Filetype PDF       File size 0.38 MB       Source: mcsp.wartburg.edu


File: Programming Challenges Pdf 189490 | Ccsc Handout
background teaching since 1986 simple not simplistic cs1 languages pascal c java also cs0 basic squeezing the most from cs1 favorite class but python increasingly frustrating students stopped getting it ...

icon picture PDF Filetype PDF | Posted on 03 Feb 2023 | 3 years ago
Partial capture of text on file.
                                                                                                                                             Background
                                                                                                                                             
                                                                                                                                             
                                                                                                                                                   Teaching since 1986
                                                                                                                                             
                                           Simple, not Simplistic                                                                                  CS1 languages: Pascal, C++, Java (also CS0 BASIC)
                               Squeezing the most from CS1                                                                                   
                                                                                                                                                   Favorite class but...
                                                          Python!                                                                                    increasingly frustrating
                                                                                                                                             
                                                                                                                                                   Students stopped "getting it"
                                                                                                                                                     Student confusion, apathy, dropout
                                                     John M. Zelle, Ph.D.                                                                            Inability to complete simple programs
                                                        Wartburg College                                                                             Declining student evaluations
                                                                                                                                             
                                                                                                                                                   Is it me?
                                                                                                                                             
            Outline                                                                                                                          Rethinking CS1
                                                                                                                                             
                                                                                                                                             
                 Motivation                                                                                                                        Learning Challenges
               
                 Introduction to Python                                                                                                              More material (software development, OOP, GUIs)
                                                                                                                                                     Complex Languages (systems languages Ada, C++, Java)
                                                                                                                                                     Complex Environments
                                                                                                                                                     Too much "magic" 
                 Approaches to CS1                                                                                                           
            
                 Python Resources                                                                                                                  Teaching Challenges
                                                                                                                                                     Recruiting Majors
                                                                                                                                                     Serving Nonmajors
                 Conclusions                                                                                                                 
                                                                                                                                                   Einstein: Make everything as simple as possible, but not 
                 Questions?                                                                                                                        simpler.
            
                                                                                                                                                
            The March of Progress (Cay Horstmann)                                                                                            Why Use Python?
                                                                                                                                             
                                                                                                                                             
                 C | Pascal                                                                                                                        Traditional languages (C++, Java) evolved for large-scale 
               printf("%10.2f", x); | write(x:10:2)
                                                                                                                                                   programming
                 C++                                                                                                                                 Emphasis on structure and discipline
                                                                                                                                                     Simple problems != simple programs
               cout << setw(10) << setprecision(2)                                                                                           
                    << showpoint << x;
                                                                                                                                                   Scripting languages (Perl, Python, TCL) designed for 
                 Java                                                                                                                              simplicity and flexibility.
               java.text.NumberFormat formatter                                                                                                      Simple problems = simple, elegant solutions
                  = java.text.NumberFormat.getNumberInstance();                                                                                      More amenable to experimentation and incremental development
               formatter.setMinimumFractionDigits(2);                                                                                        
               formatter.setMaximumFractionDigits(2);                                                                                              Python: Near ideal first language, useful throughout 
               String s = formatter.format(x);
               for (int i = s.length(); i < 10; i++)                                                                                               curriculum
                  System.out.print(’ ’);
               System.out.print(s);
                                                                                                                                                   We’ve used it in CS1 since 1998
                                                                                                                                             
                                                                                                                                                
            Enter Python                                                                                                                     First Program (Java Version)
                                                                                                                                             
                                                                                                                                             
                 Python: A free, portable, dynamically-typed,                                                                                      Assignment: Print "Hello CCSC" on screen
                 object-oriented scripting language                                                                                          
                                                                                                                                                public class Hello{
                 Combines software engineering features of traditional                                                                              public static void main(String [] args){
                                                                                                                                                        System.out.println("Hello CCSC");
                 systems languages with power and flexibility of scripting                                                                          }
                                                                                                                                                }
                 languages                                                                                                                      
                                                                                                                                                   Note: Must be in "Hello.java"
                 Real world language                                                                                                            
            
                 Batteries included
            
                 Note: Named after Monty Python’s Flying Circus
            
                                                                                                                                             
            First Program (Python Version)                                                                                                   Example in IDLE
                                                                                                                                             
            
                 Assignment: Print "Hello CCSC" on screen
            
               print "Hello CCSC"
               
               
                 Or...
               
               def main():
                   print "Hello CCSC"
                                                                                                                                             
               main()
                                                                                                                                             
            "Real" Program: Chaos.py                                                                                                         Basic Statements
                                                                                                                                             
                                                                                                                                             
                                                                                                                                                   Output
            #File: chaos.py                                                                                                                     print , , ..., 
            # A simple program illustrating chaotic behavior.                                                                                        Note: all Python types have printable representations
                                                                                                                                                
            def main():                                                                                                                            Simple Assignment
               print "This program illustrates a chaotic function"                                                                               = 
               x = input("Enter a number between 0 and 1: ")                                                                                    myVar = oldValue * foo + skip
               for i in range(10):                                                                                                              
                   x = 3.9 * x * (1 - x)
                   print x
                                                                                                                                                   Simultaneous Assignment
                                                                                                                                                , , ... = , , ...
            main()                                                                                                                           
                                                                                                                                                a,b = b,a
                                                                                                                                                                                                           
                                                                                                                                                   Assigning Input
                                                                                                                                                input()
                                                                                                                                                myVar = input("Enter a number: ")
                                                                                                                                                x,y = input("Enter the coordinates (x,y): ")
                                                                                                                                                
                                                                                                                                                
            Example Program: Fibonacci                                                                                                       Teaching Tip: Indentation as Syntax
                                                                                                                                             
                                                                                                                                             
                                                                                                                                                   Pluses
               # fibonacci.py                                                                                                                        less code clutter (; and {})
               # This program computes the nth Fibonacci number                                                                                      eliminates most common syntax errors
              
                                                                                                                                                     promotes and teaches proper code layout
               n = input("Enter value of n ")                                                                                                
               
               cur,prev = 1,1                                                                                                                      Minuses
               for i in range(n-2):                                                                                                                  occasional subtle error from inconsistent spacing
                   cur,prev = prev+cur,cur                                                                                                           will want an indentation-aware editor
                                                                                                                                             
               print "The nth Fibonacci number is", cur                                                                                            Bottom-line: Good Python editors abound. 
               
                                                                                                                                                   This is my favorite feature.
                                                                                                                                             
                                                                                                                                                
            Teaching Tip: Dynamic Typing                                                                                                     Numeric Types
                                                                                                                                             
                                                                                                                                             
                 Pluses                                                                                                                            int: Standard 32 bit integer
                    less code                                                                                                                   32 -3432 0
                    less upfront explanation                                                                                                    
                    eliminates accidental redeclaration errors
                                                                                                                                                   long int: Indefinitely long integers
                 Minuses                                                                                                                        32L 9999999999999999
                    typo on LHS of = creates new variable                                                                                       
                    allows variables to change type                                                                                                floating-point: Standard double-precision float
            
                                                                                                                                                3.14  2.57e-10  5E210  -3.64e+210
                 Bottom-line: I prefer dynamic types                                                                                            
                    Many (most?) type errors are declaration errors                                                                                complex: Double precision real and imaginary components
                    Actual type errors are still detected                                                                                       2+3j   4.7J  -3.5 + 4.3e-4j
                    Finding type errors goes hand-in-hand with testing                                                                          
                    Less student frustration
            
                                                                                                                                                   User-defined types (operator overloading)
                                                                                                                                                
The words contained in this file might help you see if this file matches what you are looking for:

...Background teaching since simple not simplistic cs languages pascal c java also basic squeezing the most from favorite class but python increasingly frustrating students stopped getting it student confusion apathy dropout john m zelle ph d inability to complete programs wartburg college declining evaluations is me outline rethinking motivation learning challenges introduction more material software development oop guis complex systems ada environments too much magic approaches resources recruiting majors serving nonmajors conclusions einstein make everything as possible questions simpler march of progress cay horstmann why use traditional evolved for large scale printf f x write programming emphasis on structure and discipline problems cout...

no reviews yet
Please Login to review.