Syllabus

COSC 111: Introduction to Programming

Winter 2018
Section 5 ID 25107

MW 1:00-2:50pm 514 PH

Instructor: Dr. William Sverdlik
Office: 512D ?? Pray-Harrold
Office Hours: (tentative) MW 12:15-1:00, W 3:00am-5:30pm. Other times by appointment. I am good with email; if you need to see me, send me an email.
Phone: 734-487-7081
e-mail: wsverdlik@emich.edu

What I hope you get out of this course (some might call this "Objectives") :
This class is the beginning of a three semester sequence (111-211-311). Our goals are two-fold: first, to teach you how to think algorithmically, and second, to teach you the rudiments of the Java programming language.

Textbook: Savitch, Absolute Java, Addison Wesley (Sixth Edition). Find it here.

The Nitty-Gritty

(please note: this is a work in progress and things will most definitely change!)

Quizzes, programs and final: There will be six quizzes (approximately every 2 weeks) , many programming assignments and homeworks, a comprehensive final exam. Quizzes are worth 40% of your grade, programs and homework are worth 40% of your grade, and the final examination is worth 20% of your grade.

Grades will be assigned via the following algorithm:

If you receive less than 1/2 of the  programming points
Then grade=Fail
Else grade is determined via the table below:

Approximate Grading Scale:
       90 - 100 %     A
       80 - 90  %      B
       65 - 80 %       C
       50 - 65 %       D

Please note that this scale is approximate. Pluses and minuses will be awarded in situations "on the edge".

Topic sequence: The chapters of the textbook will be covered as shown in the schedule below. We will cover the first 6 chapters.

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; a missed quiz will count as a zero.

Late Hand-Ins: Programming assignments will be due at 1pm on Wednesday afternoons. The lab leader or myself will be at the door to the lab to accept your programs; late submissions are penalized 25% per late class period. This means that if you hand in the program at 1:05pm on the due date, it will lose 25% of total credit. If you do not hand in your program on time, you will have until 12:59pm the following Monday to hand it in and receive at most 75% credit. No programs will be accepted after the following Monday PLEASE NOTE: I enforce this rule strictly; this means you will not be able to print off your assignment on the due date. In other words, don't leave your homework until the last minute!

Cheating: It violates University policy, you know....so 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!


Updated on Jan. 6 (new directions for installing software)
Software Installation (SDK and BlueJ): Click here

    You must (in this order) make two software installations:

    0) Video explaining the software install  
    1) The Java SDK (Software Development Kit) here
    2) BlueJ IDE (Integrated Deveopment Environment) here

Thinking Algorithmically

1) Looking outside- what to wear
2) Peanut Butter and Jelly
3) Find Joe Smith in Detroit Phone Book
4) Angry Birds!!

Homework 1- find the average.
    I have a finite collection of cards. Each card contains a single integer on it (what's an integer??). Provide the flow chart to find the average of all the numbers. Specifically define the input and output of this "program".
There are no assumptions about how many cards there are. Let's make this a little more challenging: if there are no cards, the output should be "No Input Provided", otherwise, the ouput should be the numerical average of the numbers.

Due: January 10. All submissions must clearly indicate your name, the homework number and be legible. You must specify input, output and employ standard flow-chart symbols.

Homework 2 -  find the smallest  number
     Just like Homework 1, I have a collection of cards with one integer on each card. Provide the flow chart that will output the smallest integer contained in the "deck". If there are no cards, output "No Input Provided".
       Assumption 2a) Assume all the integers are positive
       Assumption 2b) Make no assumptions about the integers

Due: January 17 (2 submissions). All submissions must clearly indicate your name, the homework number and be legible. You must specify input, output and employ standard flow-chart symbols.


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.


Some Notes:
Programming Style 1
Chapter 1 - discussion
Formatting Numbers with printf
Sample Program using Scanner Class and Formatted output
Quiz 2 - what to know
A Nice Java Reference and where we are in the book
A Java Date Class

The assignments (this will definitely change):

Assignment #1 - Due Wednesday January 24, 2018
Assignment #2 - Due Wednesday February 7, 2018
Assignment #3 - Due Wednesday February 28, 2018
Assignment #4 - Part 1 Due Monday March 5, 2018, Part2 Due Monday March 12, 2018
Assignment #5 - Due Wednesday March 21, 2018
Assignment #6 - Due Wednesday April 11, 2018 Part a) Due Monday March 26,  Part b) Due Monday April 2,  Part c) Due April 11

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

Date Read Notes
         1/3
1/8 -  1/10
1/15- 1/17
1/22- 1/24
Chap 1
Chap 2
Homework 1 - January 10
In Class Exercise January 10
Quiz 1 - Wednesday 1/17
Homework 2 - January 17
In Class Exercise January 22
1/29-1/31     
2/5-2/7
2/12-2/14
Chap 3 Programming Assignment 1 - Wednesday 1/24
Quiz 2 - Monday 1/29
Random Numbers in Java
Programming Assignment 2 - Wednesday 2/7
2/26 - 2/28
3/5 - 3/7
3/12 - 3/14
Chap 4 Quiz 3 - Monday 2/12
Programming Assignment 3- Wednesday February 28
Quiz 4 - Monday 3/5
Programming Assignment 4 - Part 1 Monday March 5 (changed!!)
Chapter 4 Date Class (our version)
3/19 - 3/21
3/26 - 3/28
 4/2-
Chap 5 Quiz 5 - Monday March 19
Programming Assignment 5 - Wednesday March 21
Example: An Array of Objects
        -4/4
4/9 - 4/11
4/16-4/18

Chap 6 Quiz 6 April 2

Programming Assignment 6 - Wednesday 4/11
4/23

Final Exam 1:00-2: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.