SYLLABUS

CSci280 Object-Oriented Programming (Java)
(a programming-intensive and no-nonsense course)
School of Electrical Engineering and Computer Science, University of North Dakota
Fall 2021

Class times: 11:15am – 12:05pm, MoWeFr
Classroom: Harrington Hall 108 (capacity: 8 including the instructor)
Credit hours: 3
Prerequisite: CSci265 Introduction to Programming Languages with a C or better
(This prerequisite may not be applied this semester since CSci265 is offered first time this semester, but CSci161 is a must.)
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.

Description
This course gives a study of the object-oriented programming, using the Java language. It is a programming-intensive 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:

      Java Platform, Standard Edition (Java SE) —


Objectives
After taking this course, students are able to achieve the following goals, but not limited to: 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.

Evaluations
    Four programming exercises (40% total):
      1. Data input/output       ——  06%
      2. An itinerary            ——  09%
      3. The shortest itinerary  ——  12%
      4. JDBC                    ——  13%
    Two exams                    ——  20% each
    Final exam                   ——  20%

Tentative Schedule
    Weeks  1 &  4  ——  Introduction
    Weeks  2 &  3  ——  Programming Exercise I 
    Weeks  5 -  7  ——  Java basic syntax
    Weeks  8 &  9  ——  Java classes and objects
    Weeks 10 - 12  ——  JDBC (Java DataBase Connectivity)
    Weeks 13 - 15  ——  Java object-oriented programming
    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
Online asynchronous is also provided for the distance students. It is conducted fully through Internet instruction. For details, check UND Online & Distance Education or DEDP (Distance Engineering Degree Program). Besides, https://und.zoom.us/j/2489867333 or YuJa is used for hosting and sharing lecture videos, and ProctorU may be used to monitor the exams.

Remark III
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 IV
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 V
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.






      “Count your age by friends, not years. Count your life by smiles, not tears.”    
      ― John Lennon