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.
-
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 |