1 COSC 111 Course Syllabus

Syllabus for

Introduction to Programming

COSC 111

(MW 11:00-2:30PM, Zoom)

Instructor: Matt Evett ; Dept. Computer Science; Pray-Harold 512
Tel: 734-487-1227
e-mail: mevett@emich.edu;
Course web site: https://canvas.emich.edu/

Office Hours: MW 3:30 - 4:30 via Zoom (see Canvas announcement for link)

Purpose: An introduction to computers, programming, algorithm development and a high-level language such as Java. In particular, strategies for problem solving, problem analysis, algorithm representation and algorithm verification are balanced with actual program development using good design and documentation techniques. This course is an introduction to computing in general and to computer programming in particular. It is the first course in the computer science majors and minor.

Textbook: Liang, Revel for Liang Java, Pearson, 2016. This is a interactive version of the textbook, Introduction to Java Programming, 11th edition. It is not the e-textbook version of that text. You will need a Revel access code, which can be obtained in the bookstore (as a physical card with an imprinted access code) or via the web site https://www.pearsonhighered.com/revel/students/registration/register.html

You will need this link to complete the registration process: https://console.pearson.com/enrollment/bok0xh. This will allow you to "join" the Revel course we are running this semester. If you need help, check out these Revel student resources: https://www.pearsonhighered.com/revel/students/support/

Quizzes and exams: There will be a series of short quizzes (about one every week), two midterms, and a comprehensive final exam. If, for any reason, a student needs to reschedule an exam, they should submit a written request to me. Exams will be presented via Lockdown Browser. This tool requires that you have a camera that can view you as you take the exams online. Before you start an exam you will have to swivel your camera slightly to show your local environment. It will then record your image as you take the exam.

Programming exercises: A series of Java programming exercises will be assigned, and the lab periods will be devoted to them. There will also be larger programming assignments, to be completed by students outside of class.

Course shell: The Canvas course shell is the official mechanism for promulgating information about this course, including assignment due dates and requirements. Students are required to attend to the course shell. If I change a due date, I will try to email the entire class, but the final say is what is set in Canvas.

Grades: The final grade will be a weighted average of all grades received during the course: 5% of average quiz grade, 15% of each midterm grade, 25% of the final exam grade, and 40% of programming exercises and labs.

Tardiness Policy: Programming and other homework assignments will be due at the beginning of class. After that, assignments will be accepted through the start of the next scheduled class, but will suffer a full grade penalty. E.g., if a late programming assignment is worthy of an 'A', I will mark it a 'B'. Assignments more than one class late will not be accepted, and will receive a grade of 'F'.

Attendance Policy: Online attendance is mandatory. There will be quizzes and lab assignments that must be completed during our Zoom meetings. Missed assignments and exams shall only be excused by a doctor's written note, verifying that the student was medically indisposed to attend class that day. Keep in mind, too, that study after study has demonstrated that regular class attendance dramatically improves student grades. All that said, we live in weird times, and real life happens. Please get in touch with me as soon as possible if something prevents you from attending a Zoom session.

Doing one's own work: Students are required to attend to the policy on academic irregularity outlined in the EMU student handbook. In addition, collaboration among students in solving programming and homework assignments is forbidden unless I explicitly allow it. If I receive programs or homework assignments that are substantially equivalent, or which are not the original work of the student submitting the material, I will not hesitate to punish all involved parties to the fullest extent, up to and including assignment of a failing grade for the course, and referral to the Office of Judicial Student Services for possible punitive action at the University level, which may include expulsion from the University. In addition, the University and the Computer Science Department maintain policies regarding proper behavior on its computer systems. Failure to adhere to these policies can result in loss of computer privileges, and possible legal action. If you are having problems with programming assignments, please seek help from the professor or department tutors.

Information Promulgation: Students are required to attend to the emuonline course shell. The shell will serve as the official site for all information pertaining to changes to programming assignments, deadlines, etc. Feel free to use the shell to post questions to me and to your fellow students.

Course Objectives:

Students will design and implement the following:

Course Calendar:

The calendar below is tentative. All due dates are stated in Canvas. Exam dates are in bold. A warning: the programming assignments come fast and furious througout the course. You must keep up!!! Falling behind will almost certainly mean the you will want to drop the course sometime around the midterm. Start the assigments as soon as they are given!!! This is especially true for this section of the course because it is taught during a compressed summer semester!!
 
Date Text Topics
Class 1: 5/4  Ch 1
  • Basic Computer Processing
  • Programming, Languages
  • Java and Java Virtual Machine, byte-code
  • Eclipse IDE
Class 2: 5/6 Ch 2, style guide page
  • Primitive Data Types and Expressions
  • Variables & assignment statements
  • Program style & comments
  • Numeric operators

 

Class 3: 5/11   Ch 2 - 3
  • Branching statements (if, switch, if/else, multiway if statements)
  • boolean expressions
  • Basic debugging techniques
Class 4: 5/13 Ch 3 - 4
  • Mathematical functions
  • Parameters
  • Formatted console output
  • String class
Class 5: 5/18 Ch 5
  • Loops: for and while
  • Revisit debugging techniques
Class 6: 5/20  Ch 5-6
  • Midterm Exam 1
  • More on loops
  • Defining methods
5/25 Memorial Day    
Class 7: 5/27  Ch 6
  • Methods that return a value
  • Scope
  • Overloading
Class 8: 6/1 Ch 7
  • One dimesional arrays
Class 9: 6/3    Ch 7 (not 7.9)
  • Searching and sorting

Class 10: 6/8

 

 Ch 9
  • Objects
  • constructors
  • References
  • Intro to defining classes
  • Instance variables & methods
  • Methods and local variables
Class 11: 6/10  Ch 9 (not 9.12)
  • Midterm Exam 2
  • O.O. Design
  • packages
Class 12: 6/15  Ch 9-10
  • The this parameter, and the Object.equals and toString methods
  • Encapsulation, information hiding (private/public)
  • accessors and mutators
  • Constructors
  • Static methods & variables
Class 13: 6/17  Ch 10
  • Object-oriented thinking
Class 14: 6/22  
  • Final Exam, 11:00-12:30