CS 102A Introduction to Computer Programming

Spring 2020 -- Fengwei Zhang

  • Instructor: Fengwei Zhang
  • Class Time: Monday 04:20PM - 06:10PM
  • Class Location: Room 102, Lychee Hill #1
  • Office Address: Innovation Park, Building 10, Room 501
  • Office hour: Monday 06:10pm - 06:50pm or 08:50pm - 09:50pm
  • Homepage: https://fengweiz.github.io
  • Email: zhangfw (at) sustech (dot) edu (dot) cn

Course Description

The course aims to cultivate students who have no programming experience before their university study. In this course, we will introduce the fundamentals of object-oriented programming language and programming techniques. The students will be familiar with the popular programming language Java and be able to construct programs for solving general problems.

Course Objectives

Upon successful completion of this class, the student will gain experience in:

Prerequisites

N/A.

Recommended Book

Java: How to Program (8th Edition), P. Deitel, H. Deitel (Java大学教程第八版,2012年出版,图书馆有借)
Book

Lab Sessions

Grading Policy

The grades for the course will be based upon the tables given below

Academic Dishonesty

Please read and fill the Undergraduate Students Assignment Delcaration Form in Chinese and English.

Student Disabilities Services

If you have a documented disability that requires accommodations, you will need to register with the University for coordination of your academic accommodations, or let me know.

Class Schedule

Date Topic Assignments & Announcements (tentative) Slides & Labs
Week 1, 02/10 Introduction to Computers and Java Due to the coronavirus issue, we will be using online teaching/videos in the first few weeks.
  • Course Overview Video 1 [Link]
  • Course Overview Video 2 [Link]
  • Chapter 1 Slides with Voice Recording [Link]
  • Lab 1 Tutorial Video [Link]
See more videos with higher resolution at Blackboard [Link]
Scan and join the Lecture QQ group (Lab QQ groups are different) for this course qq-group
  • Undergraduate Student Assignment Delcaration Forms (editable version) are posted on Blackboard. Sign and submit on Blackboard [Link]
[CourseOverview]
[Slides]
[Lab1]
Week 2, 02/17 Introduction to Java Applications
[Slides]
[Lab2]
Week 3, 02/24 Data Types (focus on primitive data types)
Week 4, 03/02 Control Statements (including structured programming)
Week 5, 03/09 Array
Week 6, 03/16 Procedural programming (static methods, APIs)
Week 7, 03/23 Introduction to OO (Classes, Objects, Methods)
Week 8, 03/30 Strings and Wrapper Classes
Week 9, 04/06 Classes, Objects and Methods: A Deeper Look
Week 10, 04/13 Object-Oriented Programming: Inheritance
Week 11, 04/20 Object-Oriented Programming: Polymorphism
Week 12, 04/27 GUI Programming (brief overview)
Week X, 05/04 International Labor Day!
  • Holiday -- International Labor Day!
Week 13, 05/11 Generic Classes and Methods
Week 14, 05/18 Generic Collections (ArrayList)
Week 15, 05/25 Exception Handling: A Deeper Look
Week 16, 12/23 TBA

Acknowledgement: This course includes material from Dr. Yepang Liu and Dr. James Yu at SUSTech