CSC 160 Computer Science I

(Monday Wednesday Friday Section)

Course Description

An introduction to computer science and programming emphasizing the development of algorithms and their implementation in Java. Topics include inheritance, data types such as arrays and strings, control mechanisms for selection and iteration, objects and classes, graphical user interfaces, and event-driven programming. Extensive programming required. Laboratory. Preq: MTH 121 or higher or appropriate placement.

Instructor Accessibility

My office is in Carnegie Hall 311 B. You can stop by in person, or call my office at 630-637-5174. If I am not at the office and you need immediate attention, you can call me at home at 630-759-2110. You can email me at Winter term office hours are Monday Wednesday 4:00-6:00 pm; and Friday 2:30-3:30 pm. I am also available by appointment.

Course Textbook and Schedule of Topics

The class text is Tony Gaddis and Godfrey Muganda, Starting Out With Java: From Control Structures to Data Structures Addison Wesley, 2012.

Here is a tentative schedule for textbook coverage. Read ahead so you will get more out of the lectures.

Week of Term Chapters in Class Text Topics Covered
Week 1 Chapters 1 + 2 Introduction to computers, Java fundamentals,data types, I/0.
Week 2 Chapters 3 Boolean values, if statements, loops, introduction to arrays.
Week 3 Chapter 4 Loops, introduction to arrays.
Week 4 Chapters 5 Methods, parameters, local variables, local and class scope.
Week 5 Chapters 6 + 7 Classes, Graphical User Interfaces.
Week 6 Chapters 6 + 7 + 9 Classes, Graphical User Interfaces.
Week 7 Chapters 6 + 7 + 11 Inheritance, Graphical User Interfaces.
Week 8 Chapter 11 + 12 Inheritance, Files, Streams, Advanced I/0
Week 9 Chapter 8 Arrays, Searching, Introduction to Sorting
Week 10 Chapters 1-12 Review

Course Grading

There will be one quiz, lots of laboratory assignments, and tests. These elements will be used to compute your grade using the following weights:

Quiz 5 %
Lab Assignments / Homework 45 %
2 Tests 28 % at 14% each
Final Exam 22 %

The quiz will be on Wednesday of Week 2, and tests will be will be on Wednesday of Weeks 5 and 8, and the final exam will be in Week 11, following the College schedule of exams.

Policy on Missed Quizzes

The quizzes will be unannounced, and may take place during a lecture or laboratory session. The lowest of the quiz scores will be dropped. Missed quizzes cannot be made up. In-class tests missed without a legitimate excuse cannot be made up. If you have to miss a test (for some legitimate reason) please let me know at least a week before the test and I will make arrangements for a make up. In the event some unexpected reason beyond your control prevents you from being in class on the day of a test, contact me as soon as possible by phone or email to arrange a make up.

Policy on Late Assignments

Homework must be submitted electronically by email by midnight on the due date. Late homework is penalized at 10 %. In reality, this penalty is usually not imposed if the homework is submitted before I have completed grading homework submitted on time. Late homework will not be graded after I have completed grading the following assignment : For example, I will not grade late submissions of homework 3 if they are submitted after I am finished grading homework 2. The last assignment must be submitted on time.

Quality of Written Assignments

All work on homework will be graded for correctness first, and secondly, for quality of documentation and presentation, and efficiency. Make sure your code is readable and neatly formatted. Be sure to consult the standard for code documentation posted on the course website.

Ethics Statement

All work on the in-class tests must be done without any assistance from anybody, and you may not use cell phones or any electronic devices on the closed book part of the tests. On the online part of the tests, you may use lab computers, or your own laptop if you prefer. You may not email, use a cell phone, or otherwise communicate with anybody else during a test.

You may seek help from the instructor, the class preceptor, other students, and other individuals on homeworks and labs. You may not copy other people's code, or otherwise submit as your own work code that you do not understand. The goal of seeking help is to get to the place where you can do the work yourself. If you submit any work for grading: you should be prepared to explain it to me. Submission of any work that you do not understand or cannot explain will be considered plagiarism.

While it is OK to seek help from another student in the class when working on your programming projects, you must still write your own code. Programs that differ only in the names of variables will be considered to plagiarized. In that case, both students will receive a 0 on the assignment and they will be reported to the dean.