CSCI 101 Introduction to Computers

(a resourceful gateway to contemporary computer technologies and knowledge)
WWW W3Schools HTML CSS CGI Web development
Tools Emacs Linux card Linux VPN
Python W3Schools Tutorial References
Others Data Structures Algorithms SQL
General Information Discord EE/CS Wiki EITS UND Help Stack Overflow
Glossary 0     1     2     3     4     5     6     7     8     9     A     B     C     D     E     F     G     H
I     J     K     L     M     N     O     P     Q     R     S     T     U     V     W     X     Y     Z


Syllabus: Spring 2024   Credit hours: 3
Class times: 03:35pm – 04:25pm, MoWeFr Classroom: Leonard Hall 110
Class # (on-campus: 101-01): 11263 Class # (on-line: 101-02): 11271

Instructor: Wen-Chen Hu   (my teaching philosophy) Office: Upson II 366K
: https://und.zoom.us/j/2489867333 Email: wenchen@cs.und.edu
Office hours: 12:30pm – 02:30pm, TuTh

Teaching assistant: Zhanglong Yang Office: Upson II 216
: https://und.zoom.us/j/2841140921 Email: zhanglong.yang@und.edu
Office hours: 12:30pm – 02:30pm, MoWeFr

Class attributes: Math/Science/Technology Essential Studies requirement for information literacy

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.

Programming helps: The four programming exercises have each student step-by-step build a simple, dynamic website, which may be the most useful and popular IT system. By doing the exercises, students will gain essential knowledge and experience of using computers because they require you to know how to use various fundamental computer tools (like Linux, HTML, and Python). If you need helps for the programming exercises,
  • Come to the classes physically and the instructor will help you during or after classes.
  • Come to the instructor’s or TA’s office during the office hours.
  • We can do it over the Zoom during the office hours, but it would take much time.
  • Send an email to the instructor for a face-to-face or Zoom appointment other than the office hours.
Lecture notes: No textbook will be used. Instead, award-winning, interactive, informative, and practical lecture notes (based on books, papers, 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.



Grading:

Announcements:

  • Updated constantly: Class notes:
    • undcemcs02 (most up-to-date and requiring a VPN connection)
    • undcemcs01 (no VPN required, but may not be up-to-date)

  • If you need helps for the programming exercises,

    • Come to the classes physically and the instructor will help you during or after classes.
    • Come to the instructor’s or TA’s office during the office hours.
    • We can do it over the Zoom during the office hours, but it would take much time.
    • Send an email to the instructor for a face-to-face or Zoom appointment other than the office hours.

  • Wednesday, April 10: Exam II to be held at 6:30pm–8:30pm (CST) for all students
  • Friday, March 29: Exam II rules and question distribution posted
  • Wednesday, February 21: Exam I to be held at 6:30pm–8:30pm (CST) for all students
  • Monday, February 12: Exam I rules and question distribution posted
  • Friday, February 16: Programming Exercise II due before the Exam I because HTML will be covered in the exam, but the due date will not be enforced
  • Friday, January 26: Programming Exercise II posted
  • Friday, February 02: Programming Exercise I due
  • Wednesday, January 17: Programming Exercise I posted
  • Monday, January 08: Register this course via Course Registration.


Tentative Schedule:


Week

Class Topic Due Where
0 0. Computer Career and Data Research & Technologies    
  0.1 A computer career    
  0.2 Data research    
  0.3 Data technologies    
1 01/10
01/12
1. Introduction to CSCI 101    
  1.1 Course outline    
  1.2 Tentative schedule    
  1.3 Topics to be covered    
2 01/17
01/19
2. Fundamental Software Development Tools    
  2.1 Programming Exercise I    
  2.2 Linux operating system    
  2.3 Emacs editor    
01/18  Last day to add a course or drop without record
 Last day to add audit or change to/from audit
 Last day to receive a refund on a dropped class
 Drops after the last day to add will appear on a transcript.
   
01/15
Holiday, Martin Luther King Jr. Day (Monday) — no classes
   
3 01/22
01/24
01/26
3. Operating Systems (OSs)    
  3.1 OS architecture    
  3.2 OS process management    
  3.3 OS memory management    
4 01/29
01/31
02/02
4. The World Wide Web    
  4.1 A website architecture    
  4.2 Technologies for website building    
  4.3 World Wide Web programming EX I  
5 02/05
02/07
02/09
5. HTML (HyperText Markup Language)    
  5.1 Introduction to HTML    
  5.2 HTML tags    
  5.3 HTML syntax    
6 02/12
02/14
02/16
6. HTML (Cont.)    
  6.1 HTML forms and input    
  6.2 HTML frames and iframes    
  6.3 HTML5    
7 02/23 7. CSS (Cascading Style Sheet)    
  7.1 Introduction to CSS    
  7.2 CSS basics    
  7.3 CSS syntax    
02/19
Holiday, Presidents’ Day (Monday) — no classes
   
02/21
Exam I (for both on-campus and on-line students; 6:30pm – 8:30pm, Wednesday)
   
8 02/26
02/28
03/01
8. Programming Languages    
  8.1 Language generations    
  8.2 Language survey    
  8.3 Language processing    
9
03/04

03/08
  Spring Break — no classes
   
10 03/11
03/13
03/15
10. Data Structures and Algorithms    
  10.1 Introduction    
  10.2 Data Structures    
  10.3 Algorithms    
11 03/18
03/20
03/22
11. A Computer History    
  11.1 Historical perspective    
  11.2 Personal computers    
  11.3 Smartphones    
12 03/25
03/27
12. Computer Architecture    
  12.1 Under the covers
  12.2 Computer mice and monitors
  12.3 Processor technologies    
03/29
Holiday, Good Friday — no classes
   
13 04/03
04/05
13. Computer Architecture (Cont.)    
  13.1 Memory technologies
  13.2 Computer Networks    
  13.3 Chip manufacturing process    
04/05  Last day to change to or from S/U grading
 Last day to change to or from audit grading
 Last day to drop a full-term course or withdraw from school
   
04/01
Easter holiday (Monday) — no classes
   
14 04/08
04/12
14. Smartphones    
  14.1 Smartphone structure  
  14.2 Smartphone components    
  14.3 Mobile operating systems    
04/10
Exam II (for both on-campus and on-line students; 6:30pm – 8:30pm, Wednesday)
   
15 04/15
04/17
04/19
15. Smartphones (Cont.)    
  15.1 Mobile processors    
  15.2 Memory    
  15.3 Synchroniztion    
16 04/22
04/24
04/26
16. Smartphones (Cont.)    
  16.1 Computer networks
  16.2 Mobile networks  
  16.3 Mobile payment methods    
17 04/29
05/01
17. Databases    
  17.1 Introduction to databases    
  17.2 Relational databases  
  17.3 Relational tables EX II  
18 05/08
Final exam (for both on-campus and on-line students; 6:30pm – 8:30pm, Wednesday)
   
19 05/14 Grades posted before noon, Tuesday    

Other than some contemporary computer issues, four foundations of computer science and technologies will be covered in this course:
  • Programming languages,
  • Computer architecture,
  • Operating systems, and
  • Computer algorithms and theories.

Instructor’s Qualification —
The instructor is well qualified for teaching this entry-level course because he has been teaching at the US universities for more than 25 years. The following list shows a range of courses being taught by him:
  1. CSCI 101 Introduction to Computers
  2. CSCI 250 Computer Organization and Programming
  3. CSCI 260 .NET and Web Programming
  4. CSCI 280 Object-Oriented Programming (Java)
  5. CSCI 351 Introduction to File Processing
  6. CSCI 370 Computer Architecture
  7. CSCI 399 Handheld Computing
  8. CSCI 457 Electronic Commerce Systems
  9. CSCI 513 Advanced Database Systems
  10. CSCI 515 Data Engineering and Management
  11. DATA 520 Databases
  12. DATA 525 Data Engineering and Mining
  13. CSCI 532 Programming Languages and Paradigms
  14. COMP 6120 Database Systems I
  15. COMP 6210 Compiler Construction
  16. COMP 7120 Database Systems II
  17. COMP 8140 Advanced Document Analysis and Classification Systems
University of North Dakota Course Description (
CSCI 101) —
An overview of the fundamental concepts and applications of computer science. Topics include data storage, hardware, operating systems, and programming principles.

The Course Missions —
This course is for non-computer-science majors, so no advanced computer knowledge and programming will be covered. After taking this course, students learn how to use various fundamental computer tools: In addition to the above experiences, students will be familiar with the following practical computer subjects: Four Programming Exercises —
The four exercises are related, and the goal is to build a simple, dynamic website (without using a database) step-by-step:

  1. (10%) Client-server connection (VPN),
  2. (10%) A static website (HTML and CSS),
  3. (10%) Web-Python connection (CGI), and
  4. (10%) A dynamic website (Python).

Computer System Level Hierarchy —

Level Virtual Machine Comments
5 High-level language Examples are C, C++, and Java.
4 Assembly language Assembly language uses short mnemonics such as ADD, SUB, and MOV that are easily translated to the machine language.
3 Operating system The low-level software which handles the interface to peripheral hardware, schedules tasks, allocates storage, and presents a default interface to the user
2 Instruction set architecture (ISA) Machine language. Each machine-language instruction is executed by several microinstructions.
1 Microarchitecture A technique for implementing the instruction set of a processor as a sequence of microcode instructions
0 Digital logic Physical machine hardware

A Simplified Structure of an Operating System (OS) —


A System Structure of Basic Computer Systems —


A Language Processing System —


A Mobile Handeld Device (Smartphone) —