Introduction to Computer Science (COMPSCI 101)

Spring 2022-2023 / Session 3 (7 weeks, 35 + 8.75 | 8.75 hours)

Course Period: January 9 - March 2, 2023

  • Lectures: Monday / Tuesday / Wednesday / Thursday @ 08:30-09:45 (Classroom: AB 1079 - Seminar 1A + Zoom)
  • Labs:
    • 101-001L (1209): Thursday @ 13:15-14:30 (Classroom: AB 3109 - Seminar 3D + Zoom)
    • 101-002L (1210): Thursday @ 16:15-17:30 (Classroom: AB 3101 - Seminar 3A + Zoom)
Instructor: Mustafa MISIR (Office: CC 3019), mustafa.misir [at] dukekunshan.edu.cn   /   mm940 [at] duke.edu
Teaching Assistant: Xue Chen (Office: IB2A10), xue.chen240 [at] dukekunshan.edu.cn

Computer Science (CS) is the study of computation, automation, and information. It spans theoretical disciplines such as algorithms, theory of computation, information theory, and automation, to practical disciplines including the design and implementation of hardware and software. Algorithms and Data Structures are central to CS. The Theory of Computation concerns abstract models of computation and general classes of problems that can be solved using them. The fields of Cryptography and Computer Security involve studying the means for secure communication and for preventing security vulnerabilities. Computer Graphics and Computational Geometry address the generation of images. Programming Language Theory (PLT) considers different ways to describe computational processes, and database theory concerns the management of repositories of data. Human-Computer Interaction (HCI) investigates the interfaces through which humans and computers interact, and Software Engineering focuses on the design and principles behind developing software. Areas such as Operating Systems, Computer Networks and Embedded Systems investigate the principles and design behind complex systems. Computer Architecture describes the construction of computer components and computer-operated equipment. Artificial Intelligence (AI) aims to synthesize goal-orientated processes such as problem-solving, decision-making, environmental adaptation, planning and learning found in humans and animals.

CS is an exciting, growing and challenging field that impacts every part of our lives. As an introductory course, fundamental knowledge on a variety of CS topics will be offered while providing essential computational problem-solving skills with hands on programming experience, in Python. This course is open to everyone, with no prerequisites. Successfully completing it will serve as a solid foundation for other courses in the CS or Data Science majors. It can also bring new concepts and tools to other domains such as Social Sciences, Arts, Humanities and Natural Sciences.

Despite the detailed knowledge and skills about CS, we also want you to develop your high level capabilities closely related to the DKU's animating principles, in particular, collaborative problem-solving, research and practice besides lucid communication. In this course, there will be group activities and projects that encourage collaborative problem solving. There will also be weekly lab sessions to facilitate group discussions on mini-projects. The final project(s) will provide an opportunity to utilize the knowledge acquired in this course for addressing a specific problem. Moreover, these group discussion and project presentation activities will help you enhance the capability of lucid communication.

By the end of this course, you will be able to:
  1. grasp common computing and programming terms and concepts
  2. employ common programming patterns and abstractions to solve problems through Python
  3. formulate problems computationally and solve them through programming
  4. plan and manage the progress of final project in an efficient way
  5. develop written and oral presentation skills
>> Follow Sakai for announcements and discussions


The chart, on the right, shows how COMPSCI 101 fits to the DKU curriculum, where the abbreviations indicate the course types, i.e. D: Divisional, DF: Divisional Foundation, ID: Interdisciplinary and E: Elective. Refer to the DKU Undergraduate Bulletin for more details.

Pre-requisites

  • None

Anti-requisites

  • COMPSCI 201: Introduction to Programming and Data Structures
  • STATS 102: Introduction to Data Science





There is no official textbook for this course. Still, the following books can be used as references.

Reference Books



Lecture Notes / Slides



Grading

  • Homeworks: 20%
    • Mathematical, Conceptual, or Programming related
  • Quizzes: 10%
    • Mathematical, Conceptual, or Programming related
  • Weekly Mini Projects: 15%
    • Programming related
  • Midterm: 20%
  • Final: 20%
  • Group Project: 15%
    • Report Rubrick (TBA)
    • Presentation Rubrick (TBA)


Reference Courses

Introductory Computer Science / (Python) Programming:

Reference (Example) Projects



Other Books / Articles


Computing / Computers + History:
Software Engineering / Development / Programming:
Web Programming:
Foundations of Computer Science:
Algorithms + Data Structures:
Paradigms of Programming Languages:

Other Materials / Resources