CS110 Introduction to Java Programming

2023 Fall Syllabus

Instructors

Zhuozhao Li, 李卓钊

  • Office: RM 516, South Tower, CoE Building (工学院南楼516)
  • Office hour: Friday 10:00-11:00AM, or email to schedule an appointment.

Qimei Liao (Lab)

Course Descriptions

The course is designed for freshmen who nearly have no programming experience, and aims to cultivate them on basic concepts and techniques of programming. Students will learn Java programming language, understand basic elements of programming and fundamental program structures, and use Java to solve simple programming problems.

On completion of this course, the students should be able to:

  • Understand the basic components in a software system and the working mechanism of the Internet and the Web.
  • Know the basic syntax of the Java programming language.
  • Understand the features of object-oriented programming: abstraction, encapsulation, inheritance, polymorphism.
  • Develop programs to solve real problems using integrated development environments.
Course Materials
  • All the lecture and lab slides.

  • Textbook (optional): David J. Eck, Introduction to Programming Using Java, Eighth Edition. drawing

  • Other references (optional):

    • P. Deitel, H. Deitel, Java: How to Program (11th edition), Prentice-Hall, 2017.
    • Y. Daniel Liang. Introduction to Java Programming, 10e, Pearson, Prentice Hall, 2015.
    • Allen B. Downey and Chris Mayfield. Think Java, How to Think Like a Computer Scientist, O’Reilly, 2016.
Course Workloads

There will be several programming assignments, a project, and a final examination.

Grading Policy
  • Programming assignments, 30%

  • Attendance and exercises, 10%

  • Project, 20%

  • Final exam, 40%

Academic Integrity/Academic Dishonesty

I expect students to be honest and not cheat on their assignments, project, or exams. Please refer to the plagiarism policy (IMPORTANT!!! Please READ carefully!!!) of CSE department for more details. You MUST sign the commitment letter and submit on the Sakai/Blackboard system.

Course Policies
  • No late assignment will be accepted.
  • Unless some special situations (e.g., medical leave) which will be reviewed by all the instructors.
  • The following excuses will NOT be approved for late submissions: computer crashes, disk crashes, accidental file deletions, lab computer unavailability, and the like. There will be no reply for this sort of late assignment submission requests.
Schedule (Tentative)

Please refer to Sakai for the lecture and lab materials.

Acronyms: PA = Programming Assignment, PROJ = Project

Week Date Contents Events
1 Sep. 12, 2023 [Lecture] Course overview, Introduction to Computers
[Lab] Programming Environment Setup
 
2 Sep. 19, 2023 [Lecture] Basic Programming Concepts
[Lab] IDE and Basic Exercises
 
3 Sep. 26, 2023 [Lecture] Basic I/O and Control Statements
[Lab] Control Statements
 
4 Oct. 10, 2023 [Lecture] Arrays and Methods
[Lab] Array Exercises
PA1 out
5 Oct. 17, 2023 [Lecture] Methods and More Control Statements
[Lab] Static Methods
 
6 Oct. 24, 2023 [Lecture] Multi-dimensional Arrays
[Lab] Multi-dimensional Arrays
PA1 due
7 Oct. 31, 2023 [Lecture] More I/O and Problem Solving
[Lab] I/O, StdDraw
PA2 out
8 Nov. 7, 2023 [Lecture] Introduction to Classes and Objects
[Lab] String
 
9 Nov. 14, 2023 [Lecture] Class Design
[Lab] Classes
PA2 due
PROJ out
10 Nov. 21, 2023 [Lecture] Collections
[Lab] ArrayList and StringBuilder
PA3 out
11 Nov. 28, 2023 [Lecture] Classes, Objects, and Methods: A Deeper Look
[Lab] Classes and Objects 2
 
12 Dec. 5, 2023 [Lecture] Inheritance and Interface
[Lab] Inheritance and Interface
PA3 due
PA4 out
13 Dec. 12, 2023 [Lecture] Collection Sorting, Set and Map
[Lab] Collection
 
14 Dec. 19, 2023 [Lecture] Enum Types, Exception Handling, and More Classes & Objects
[Lab] Enumeration
PA4 due
15 Dec. 26, 2023 [Lecture] Rounding Errors
[Lab] Sort and Map
PROJ due 1
16 Jan. X, 2024 [Lecture] Review and project Demo
[Lab] Project presentation
PROJ due 2