COSC 146: Applied Programming 1

Fall 2013

Instructor: Dr. William Sverdlik
Office: 512D Pray-Harrold 
Office Hours: (tentative) Walk-In MW    10:00-10:30,  2:30-3:15 ,  5:00-5:30
                                        Other times by appointment
Phone: 734-487-7081

What I hope you get out of this course (some might call this "Objectives") :
This is an introductory programming class. We will cover the rudiments of computer programming including iteration, conditional statements, IO. Our emphasis will be on real-world applied type programs. For this class, we will employ the Perl scripting language, which is freely available to download.

Class :   MW 12:30-2:20  ,  521 PH
Textbook: The text is freely available online from the University library:

Learning Perl 5th edition

We will cover the first 9 chapters (and chapter 10 if time permits).

Exams, Quizzes and Final: There will be 6 30-60 minute quizzes throughout the semester and a final exam. NO MAKE UP QUIZZES WILL BE GIVEN. I will drop the lowest quiz score, and base the examination part of your grade on 5 numbers. A missed quiz will count as a zero. All quizzes will have a closed book/ closed note part that will last 30 minutes and there will be an optional open book/open note/computer accessible programming component that will last 30 minutes. The optional open book part is at the discretion of the instructor. You will be informed prior to the quiz if there is an open book part. All quiz are comprehensive and are weighted equally. Each quiz is worth 50 points.

Programming exercises: There will be 6 programming assignments; all are required. You must demonstrate your program to me as well as hand in a hard copy (paper) listing of your program. Each program is worth 25 points.

Final Exam: A 100 point comprehensive final exam will be given.

Grades: There will be a total of 500 points awarded. The approximate grading scale is as follows:

       450 - 500      A   (90% - 100%)
       400 - 450      B   (80% - 90%)
       325 - 400      C   (65% - 80%)
       250 - 325      D   (50% - 65%)

Please note that this scale is approximate. Pluses and minuses will be awarded in situations "on the edge" (e.g. 451 may be an A- or 397 may be a C+).

Topic sequence: We will cover chapters 1 through 9 (approximately).

Attendance: is not required, but you miss class at your own risk. It is your responsibility to find out the missed work; I suggest you get the phone number of a classmate. Make-up exams and quizzes will not be given. Please do not e-mail me asking what occurred during a missed class.

Late Hand-Ins: Programming assignments and homework are due at 12:30pm on the given date (usually a Wednesday). Late submissions are penalized 50% per class meeting late; i.e. if the assignment was due on a Wednesday, you may hand it in up to 12:30pm on Monday and receive a 50% penalty. Also note that handing in an assignment at 12:35 on Monday is considered two days late! Late submissions must be handed in to me directly or provided to the department secretary and time stamped. Attention! A program handed in at 12:31pm on the assigned day is one day late and will be penalized. Please consider parking, printing , etc when doing your assignments. PLEASE NOTE: I enforce this rule strictly. Please be aware that parking can be a problem at Eastern; I would allow extra time for parking on days assignments are due. Also, be aware that broken printers, damaged diskettes, or long lines waiting for printouts are not legitimate excuses for tardy submissions. In other words, don't leave your homework until the last minute!

Also be aware that you must demo your program to me. Failure to demo your program is the same as not handing it in.

e-mailed programs will not be accepted, nor will  e-mail programs be debugged.

Cheating: It violates University policy, you don't do it. Cheating is defined as representing all or part of someones elses work as your own. While you are certainly encouraged to seek the advice of others in this class on assignments, the work you hand in should represent your own efforts. Violation of this rule will be dealt  with according to University policy. If you are really stuck on a problem, come see the instructor !

September 4, 2013
September 9, 2013

September 11, 2013

September 16, 2013

September 30, 2013

Command Line grep

Intro Stuff:
Program 1 - sequential statement
Program 2 - conditional statement
Program 3 - iteration
The Good, the Bad, and the Ugly (actually....the Ugly, the Better, and the Betterer)
Program 4 - the UGLY
Program 5 - the Better
Program 6 - the Betterer

Practice Set 1
Program 7 - the while loop
Practice Set 2

Prep Questions for Quiz 1
Formatting Output with printf
Credit Card Payments
Practice Set 3 (getting ready for quiz 2)

Array/List Operators (push,pop, shift, unshift)
Introduction to Subroutines
Solution to Quiz 2 Programming Assignment
Practice Set 4 (get ready for quiz 3)

Linear Search Version 1
Linear Search Version 2
Subroutine to find the minimum value

Simple File I/O
Using Command Line Arguments
A file copy utility (demontrates -f flag) See chpater 8 of your text for other flags

Practice Set 5 (get ready for quiz 4)
Selection Sort
String Operations
Associative Arrays (aka Hashes)
In Class Assignment

Team Project
Practice Set 6 (get ready for quiz 5)

A user defined perl module
Using a user defined perl module

Simple Socket Programming
Creating/Using perl dbm files

Lab Assignments

Submitting assignments:

In general, unless a particular lab assignment gives different instructions, whenever a lab asks you to write or modify a program, you should hand in a hardcopy of that code.

When you hand in your hardcopy, make sure the individual elements appear in the same order as in the assignment. Each programming assignment should consist of the hardcopy of its code. I will recompile your program and verify it's output. All programs should be clearly documented, with your name, file names, and program descriptions.


All code MUST begin with a heading (comment) that includes your first name, last name, student ID, and assignment number) as in

  #      First Name : Bill
  #      Last Name: Jones
  #      ID: 76111
  #      Assignment #1
  #      Description: this program finds the area of a circle. The user will input the radius.

Failure to  make this the first thing I see when grading your homework will result in a 10% penalty. Programs should employ descriptive variable names, all methods should be commented; specifically every program must include a program description after the heading specified above. Failure to include a description will result in a 10% penalty.

I do not accept assignments electronically, nor do I debug programs e-mailed to me.

Programming Assignment #1 - due Wednesday September 18, 2013

Programming Assignment #2 - due Wednesday October 2, 2013

Programming Assignment #3 - due Wednesday October 16, 2013

Programming Assignment #4 - due Wednesday October 30, 2013

Programming assignment #5 - due Wednesday November 13,2013

Programming Assignment #6 - due Wednesday December 4, 2013

Schedule: (this is likely to change, so check often)

Date Text Topics
Chapter 1

9/9 - 9/11
Chapter 2

9/16 - 9/18
Chapter 3

  • Program 1 Wednesday
9/23 - 9/25
Chapter 4

  • Quiz 1 Wednesday
9/30 - 10/2
Chapter 4
  • Program 2 Wednesday
10/7 - 10/9 Chapter 5
  • Quiz 2 Wednesday
10/14 - 10/16
Chapter 5

  • Program 3 Wednesday
10/21 - 10/23
Chap 5
Quiz 3 Wednesday
10/28 - 10/30
Chapter 6

  • Program 4 Wednesday
11/4 - 11/6
Chapter 6

  • Quiz 4 Wednesday
11/11 - 11/13
Chapter 7
Chapter 7

  • Program 5 Wednesday
Chapter 8

Chapter 8
Chapter 9

  • Quiz  5  Wednesday
12/2 - 12/4
Chapter 9
Chapter 10

  • Program  6 Wednesday
12/9 - 12/11
Chapter 9
Chapter 10

  • Quiz 6 Wednesday
12/16 (Monday)

  • Final Exam 11:00-12:30

A contract:

I will:

-treat you with respect. This includes honoring your time.
-arrive to class on time
-not use a cell phone during class
-not engage in any social networking while in class
-will return exams, quizzes and assignments in a timely manner. Typically, this will be within one week.

I expect the following from each of you:

- that you treat me with the same respect you would like me to show you
- you will arrive to class on time
- you will put your cell phones on "Silence" and not engage in any texting at all during class. In fact, you should not even look at your cell phone during class.
- you will use your computer for class purposes only. You will not Facebook, Twitter, or engage in any other non-class related activities
- you will approach me with any questions concerning the class at the earliest possible time. Coming to my office 3 months into the semester and telling me "I don't understand" is unacceptable.