CSCI 110:  Introduction to Applications Programming



Registration Information


Course Description

Catalog description: This course introduces students to programming using an integrated graphical development environment. Event-driven, visual, and object-oriented programming concepts are presented. Course emphasis is on the total program development process --- problem analysis, design, coding, testing, debugging, and maintenance. Projects include common business problems that require data entry, display of calculated results, report requests, conditional testing, arithmetic operations, array processing, data validation, searching, sorting, reading and writing to files, and database applications. 2.0 hours discussion, 2.0 hours activity.


Required Text(s)

Click for textbook website ... Python Programming: An Introduction to Computer Science
John Zelle, 2004.
Franklin, Beedle & Associates, Inc., Wilsonville, OR.
ISBN 1-887902-99-6

    * Also available: Source code from the textbook ...


Additional Requirements

We will be using the Python programming language, which is available for all major operating systems: Windows, Linux/Unix, Mac, among others. It is available on the lab computers at OCNL 133. Your computer might already have it, or else you can download it from http://www.python.org/. Python is used successfully in thousands of real-world business applications around the world, including many large and mission critical systems. Success stories include YouTube.com, Google, Honeywell, Philips, AstraZeneca and George Lucas's Industrial Light and Magic. Additional information is available at http://www.python.org/about/success ...

Be sure to check out Dr. J's Python Resource Page for additional information ...



Objectives

Anyone can succeed at learning to program! This is a first course in computer programming, and there are no formal prerequisites. The only expectation of students' computer skills before taking this class is to be comfortable with using email, web browsing, and copying and pasting text. Familiarity with high school-level algebra is assumed.

In addition, you will need time, and this is more important than you can imagine. Many people believe that computer programming is extremely difficult, and that the code is written in some arcane syntax understandable only by experts. Although some parts of the process are indeed complex, most of the source code required for homework assignments can be easily understood.

So, what makes programming so hard? It is not the difficulty: It is the time required to achieve any decent results. The homework assignments will take time, so make sure you have plenty of it.


Grade Evaluation

This course is designed to give students an equal opportunity of exposure to both Theory and Practice. Students are expected to demonstrate proficiency on both the theoretical and practical aspects of this course.


  Theoretical Component  (50%)  
 
   20%    At least six (in-class or online) quizzes   
   20%    Midterm Exam 1   
   20%    Midterm Exam 2   
   40%    Final Exam   

  Practical Component  (50%)  
 
   100%    Programming Assignments   
 

Students are required to earn a C- (70%) or better in both the Theoretical and the Practical components; otherwise, the minimum of the scores of the two components will be used to calculate the student's final grade.


Final Grades

Final grades shall be expressed as a percentage of the maximum possible score of all evaluated materials. Letter grades will be given according to the following scheme:


  Real Interval  
 

  Letter Grade  
 

  University Definition  
 
[96,100] A    Superior Work
[90, 96) A-
[87, 90) B+   Very Good Work
[83, 87) B 
[80, 83) B-
[77, 80) C+   Adequate Work
[73, 77) C 
[70, 73) C-
[66, 70) D+   Minimally Acceptable Work  
[60, 66) D 
[ 0, 60) F    Unacceptable Work
     


Note:  It is Dr. J's policy not to assign a final grade of D or D+ to graduate students. Hence,
graduate students with a class standing less than C- (70%) earn a final grade of F.



Topical Coverage

Topics (subject to change without notice):

  1. computers and programming
  2. language features
  3. data: numeric, characters, strings
  4. decision making
  5. repetition (loops)
  6. files and text manipulation
  7. functions
  8. classes and objects
  9. data collections: lists, dictionaries
  10. graphics and graphical user interfaces
  11. applications (may include databases, web, robotics, etc.)