Project 6 is due on December 11

Final Exam: Monday 12/11, 5:30pm -7:30pm

CS 151 - Computer Science I (Section 70)


Classes: MW 4:30pm - 5:45pm, Robert Vance Academic Center 206
Instructor: Dr. Zdravko Markov, 30307 Maria Sanford Hall, (860)-832-2711,, e-mail: markovz at ccsu dot edu
Office hours: MW 9:00am - 10:30am, TR 12:10pm - 2:00pm, or by appointment.

Catalog description: First course in Computer Science. Introduces the fundamental concepts of computer programming with an object-oriented language with an emphasis on analysis and design. Topics include data types, selection and iteration, instance variables and methods, arrays, files, and the mechanics of running, testing and debugging.

Prerequisites: MATH 152 (may be taken concurrently)

Course Learning Outcomes:

  1. Learn the basic principles of object-oriented programming and the resources available to help them write JAVA programs (editors, JAVA libraries, on-line help manuals, and JAVA development environments).
  2. Learn the basic programming constructs, namely primitive data, variables, assignment statement, arithmetic operators, parameter passing.
  3. Learn the main control structures, namely Boolean expressions, conditional statements, loops.
  4. Understand and implement Java classes and use them in definite application settings. Understand the ideas of abstraction and encapsulation, and incorporate them into program design.
  5. Understand and utilize text files and basic input/output operations.
  6. Learn arrays of primitive data and arrays of objects.
  7. Learn how to interpret non-trivial application problems (problem analysis) and translate them into pseudo-code (program design) before implementing them in JAVA.
Program Educational Objectives: CS 151 is part of the core CS program and is designed in accordance with the Program Educational Objectives and the Student Outcomes as specified in the Department Mission Statement. The course Learning Outcomes support the following Student Outcomes, wnich are part of the corresponding Program Educational Objectives:
  1. Graduates will gain a broad understanding of the fundamental theories, concepts, and applications of computer science.
  2. Graduates will be prepared to apply their understanding in a wide range of careers in computer science and information technology.
Required textbook: Lewis & Loftus, Java Software Solutions: Foundations of Program Design, 9-th Edition, Addison-Wesley, 2017.

Required software: BlueJ - an integrated Java programming environment (

Class Participation: All students are expected to attend class sessions regularly. If you must miss a test, try to inform the instructor of this in advance. In case of missed classes and work due to plausible reasons (such as illness or accidents) limitted assistance will be offered. Unexcused absences will result in the student being totally responsible for the make-up process.

Assignments and tests: Reading and problem assignments are listed under the schedule of classes. Some of the problems will be worked in class. There will be quizzes, two tests and a final exam. They will include material from the textbook, the lectures, and the programming projects.

Programming projects:  There will be 6 programming projects requiring the use of BlueJ to write and run Java programs. The projects with their due dates are listed below in the schedule of classes (the project descriptions are given on separate pages). All projects must be submitted through the class page in Blackboard Learn course management system available at

Honesty policy: The CCSU honor code for Academic Integrity is in effect in this class. It is expected that all students will conduct themselves in an honest manner and NEVER claim work which is not their own. Violating this policy will result in a substantial grade penalty, and may lead to expulsion from the University. You may find it online at Please read it carefully.

Grading: The final grade will be based on projects (50%), quizzes (10%), tests (20%), and the final exam (20%), and will be affected by classroom participation, conduct and attendance. All grades will be availabe from Blackboard Learn. The letter grades will be calculated according to the following table:
A A- B+ B B- C+ C C- D+ D D- F
95-100 90-94 87-89 84-86 80-83 77-79 74-76 70-73 67-69 64-66 60-63 0-59

Unexcused late submission policy: Projects submitted more than two days after the due date will be graded one letter grade down. Projects submitted more than a week late will receive two letter grades down. No submissions will be accepted more than two weeks after the due date.

Students with disabilities: Students who believe they need course accommodations based on the impact of a disability, medical condition, or emergency should contact me privately to discuss their specific needs. I will need a copy of the accommodation letter from Student Disability Services in order to arrange class accommodations. Contact Student Disability Services, Willard Hall, 101-04 if you are not already registered with them. Student Disability Services maintains the confidential documentation of your disability and assists you in coordinating reasonable accommodations with your faculty.

Tentative schedule of classes, assignments, projects and tests

Note: Dates for classes, assignments, and tests will be posted at due time and may change (see also University Calendar). Additional material may be posted. Check the schedule regularly for updates!
  1. Aug 30, Sep 6: Introduction to computers and programming
  2. Sep 11, 13: Java language and Object-Oriented Programming
  3. Sep 18, 20, 25: Data and Expressions
  4. Sep 27, Oct 2: Using classes and objects
  5. Oct 4, 9, 11: Decision making and Loops
  6. Oct 16, 18: Loops continued
  7. Oct 23: Test 1 (Chapters 2, 3, 5, 6)
  8. Oct 25: Review of Chapters 5-6, Programming Project 3
  9. Oct 30: Writing classes
  10. Nov 1, 6: Java classes continued
  11. Nov 8: Still more Java classes
  12. Nov 13: Test #2 (Chapters 4 and 7)
  13. Nov 15: Working with text files
  14. Nov 20: Furlough day (No class)
  15. Nov 27, 29: Arrays
  16. Dec 4, 6: Arrays of objects
  17. Monday 12/11, 5:30pm - 7:30pm: Final Exam (see Review topics and sample problems)

Programming Project 0

Note that the submission of this project is required, the following projects will not be accepted otherwise.

Description: Install BlueJ on your computer or use it in the computer lab. Add comment to the code of the, and test it with BlueJ.

Requirements and restrictions: Use multiple line comment in the beginning of the code and write your name, e-mail address, class, and section. Then for each line of code (inclding also the brackets) add a comment to explain its meaning. You may also change the message that the program prints. Format your code accordingly (see Section 1.4 - "White Space").

Submission: Submit the following files as attachments through Blackboard Learn / CS-151-70 / Project 0:

  1. The source file (
  2. A screen copy (an image file or an MS Word file with the image included) of the BlueJ Program window showing the Hello class inside.
  3. A screen copy or a text file with the content of the BlueJ Terminal Window showing an example run of your program.

Programming Project 1

Log on to Blackboard Learn to see and submit the project.

Programming Project 2

Log on to Blackboard Learn to see and submit the project.

Programming Project 3

Log on to Blackboard Learn to see and submit the project.

Programming Project 4

Log on to Blackboard Learn to see and submit the project.

Programming Project 5

Log on to Blackboard Learn to see and submit the project.

Programming Project 6

Log on to Blackboard Learn to see and submit the project.

Test 1 Review Topics

The test will be based on material from Chapters 2, 3, 5, and 6 and in particular: Example Problems

Test 2 Review Topics

The test will focus on classes and objects (Chapters 4 and 7), and will also include previous material. In particular, the following topics from Chapters 4 and 6 will be included: Example Problems:

Final Exam Review Topics

Example Problem 1: You deposit $2000 in a bank that provides 1.5% monthly interest rate. At the end of each month after applying the interest you withdraw $150. Write a program that prints a table showing your balance at the end of each month for 12 months. Solution:

Example Problem 2: Write a method that takes an array of integers as a parameter and computes and prints the sum of the squares of its elements. Solution:

Example Problem 3: Write a class called Employee that contains three instance variables representing employee’s first name (String type), last name (String type) and salary (int type), a constructor assigning values to these variables, getter and setter methods for the salary, and a toString() method that returns the employee information. Write another class containing the main method that declares an array of objects of class Employee with 10 elements. Initialize each element with an Employee object created with data entered from the keyboard by using the Scanner class and print the array. Then find the employee with the minimal salary and increase it with 10%. Print the employee information before and after the pay raise. Solution:,