SYLLABUS

CSCI 280 Object-Oriented Programming (Java)

(a practical and no-nonsense course)

School of Electrical Engineering and Computer Science, University of North Dakota
Fall 2024

Class times: 11:15am – 12:05pm, MoWeFr
Classroom: Harrington Hall 108
Credit hours: 3
Prerequisite: CSCI 265 Introduction to Programming Languages with a C or better
Class pages: http://undcemcs01.und.edu/~wen.chen.hu/course/280/
 
Instructor: Wen-Chen Hu   (my teaching philosophy)
Email: wenchen@cs.und.edu
Zoom ID: https://und.zoom.us/j/2489867333
Office: Upson II 366K
Office hours: 02:30pm – 04:00pm, MoWeFr

Synchronous Class Delivery
The class lectures will be delivered synchronously via https://und.zoom.us/j/2489867333, and the Zoom video will be posted on the Blackboard afterwards. Students can watch the video clips anytime they want.

Lecture Notes
No textbook will be used. Instead award-winning, interactive, informative, and practical lecture notes (based on GeeksforGeeks, TutorialsPoint, W3Schools, JavaTPoint, and other online documents and user manuals) and detailed and precise class instructions will be provided. Collectively, the lecture notes and instructions are more like a small book, which supplies much more information than regular notes do and makes the subject studies much easier. Students will not have problem learning the subjects or taking the exams after studying them and doing programming exercises.

Course Description
This course gives a study of the object-oriented programming, using the Java language. It is a practical and no-nonsense course and each student is required to design and implement several Java programming exercises on her/his own. Topics include, but are not limited to:

  • Object-oriented programming and concepts,
  • Java fundamentals,
  • Java basic syntax,
  • Java classes and objects,
  • Java inheritance and aggregation,
  • Java abstraction and encapsulation,
  • Java polymorphism, overloading, and overriding, and
  • Some other special topics.
      Java Platform, Standard Edition (Java SE) —


Objectives
After taking this course, students are able to achieve the following goals, but not limited to:
  • Knowledge of object-oriented programming principles,
  • Knowledge of Java language principles and programming,
  • Knowledge of class and object principles and programming,
  • Knowledge of inheritance and aggregation principles and programming,
  • Knowledge of abstraction and encapsulation principles and programming,
  • Knowledge of polymorphism, overloading, and overriding principles and programming, and
  • Proficiency in Java program design and development.
Evaluations
    Four programming exercises (40% total):
      1. User interface    ——  10%
      2. Input/output      ——  10%
      3. Finding price     ——  10%
      4. The lowest price  ——  10%
    Two exams              ——  20% each
    Final exam             ——  20%

Tentative Schedule
    Weeks       1,  3  ——  Introduction
    Week            2  ——  Programming Exercise I 
    Weeks       4,  7  ——  Java basic syntax
    Weeks       5,  6  ——  Programming Exercise II
    Weeks   8,  9, 10  ——  Java data types and control structures
    Weeks      11, 12  ——  Java classes and objects
    Weeks  13, 14, 15  ——  Java object-oriented features
    Week           16  ——  Some other special topics

Remark I
Definitions, terminologies, and theories will be discussed minimally in this course. Instead practical works and programming knowledge will be emphasized and enforced.

Remark II
Java may be the most important language, and the only effective way to learn a programming language is practicing, instead of studying concepts or writing some testing programs.
No pain, no gain 😂
Remark III
According to a study, students in computer-science courses learn much more by building large-scale exercises instead of many small-scale test programs, which give fragmented knowledge contrary to solid understanding of the system.

Remark IV
Remote work is a trend for IT workers. This course also allows you to learn how to do it by using the VPN (virtual private networks) to connect to our Linux server undcemcs02.und.edu, and having the exercises set up at the server and be accessed from the clients.

Instructor’s Qualification
The instructor has more than five years’ experience in programming language research, design, and implementation. He designed and implemented a LISP/PROLOG mixed language system for AI (artificial-intelligence) developers including YACC-like software, UNIX-like editor, LISP compiler, PROLOG compiler, heap storage management system, and POPLOG virtual machine for which both LISP and PROLOG compilers generate code by writing about 20,000 lines of C code.

Dishonesty
Under no circumstances will acts of academic dishonesty be tolerated. Any suspected incidents of dishonesty will be promptly referred to the Assistant Dean of Students. Refer to the Code of Student Life, Appendix B.2: Academic Dishonesty.

Disability
Students who need special accommodations for learning or who have special needs are invited to share these concerns or requests with the instructor as soon as possible.