CS109 Introduction to Computer Programming
2022 Fall Syllabus
Instructors
Zhuozhao Li, 李卓钊
- Office: RM 516, South Tower, CoE Building (工学院南楼516)
- Office hour: Friday 4:00-5:00PM, or email to schedule an appointment.
Yanhong Jia, 贾艳红 (Lab)
Course Descriptions
The course aims to cultivate students who have programming experience before their university study. In this course, we will introduce the fundamentals of computer programming and common programming techniques using a popular object-oriented programming language, Java. The students will be familiar with computer programming and be able to construct programs for solving complex computing 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): P. Deitel, H. Deitel, Java: How to Program (11th edition), Prentice-Hall, 2017.
-
Other references (optional):
- 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 five programming assignments, a project, and a final examination.
Grading Policy
-
Programming assignments, 30%
-
Lecture attendance and quizzes, 5%
-
Lab attendance and exercises, 5%
-
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. 6, 2022 | [Lecture] Course overview, Introduction to Computers [Lab] Programming Environment Setup |
|
2 | Sep. 13, 2022 | [Lecture] Introduction to Java Applications [Lab] IDE and Basic Exercises |
|
3 | Sep. 20, 2022 | [Lecture] Control Statements: Part 1 [Lab] Control Statements: Part 2 |
PA1 out |
4 | Sep. 27, 2022 | [Lecture] Control Statements: Part 2 [Lab] Control Statements: Part 2 |
|
5 | Oct. 11, 2022 | [Lecture] Arrays [Lab] Array Exercises |
PA1 due PA2 out |
6 | Oct. 18, 2022 | [Lecture] Methods [Lab] Static Methods |
|
7 | Oct. 25, 2022 | [Lecture] Introduction to Classes and Objects [Lab] Classes and Objects 1 |
PA2 due PA3 out |
8 | Nov. 1, 2022 | [Lecture] Strings, Wrapper Classes, and File I/O [Lab] Constructors and Strings |
|
9 | Nov. 8, 2022 | [Lecture] Classes, Objects, and Methods: A Deeper Look [Lab] Classes and Objects 2 |
PA3 due PA4 out PROJ out |
10 | Nov. 15, 2022 | [Lecture] Inheritance 1 [Lab] Inheritance |
|
11 | Nov. 22, 2022 | [Lecture] Inheritance 2 and Polymorphism 1 [Lab] Polymorphism and Abstract Classes |
PA4 due PA5 out |
12 | Nov. 29, 2022 | [Lecture] Polymorphism 2 [Lab] Interfaces |
|
13 | Dec. 6, 2022 | [Lecture] Java GUI Programming [Lab] GUI Exercises |
PA5 due |
14 | Dec. 13, 2022 | [Lecture] Java Generics and Collections [Lab] Sort and Map |
|
15 | Dec. 20, 2022 | [Lecture] Exception Handling [Lab] Project presentation |
PROJ due 1 |
16 | Dec. 27, 2022 | [Lecture] [Lab] Project presentation |
PROJ due 2 |