Introduction to Computer Science and Programming

Summer 2024 / Term 3 (4 days, 16 lectures: 16 x 45 min. | 12 hours)

Wuhan University: External Syllabus

Course Period: July 8 - 11, 2024

  • Lectures: Monday / Tuesday / Wednesday / Thursday @ 08:50-12:15 (Classroom: School of Computer Science, 201 - Map)
Instructor: Mustafa MISIR (Duke Kunshan University, China), mustafa.misir [at] dukekunshan.edu.cn   /   mm940 [at] duke.edu

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 CS.

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

Pre-requisites

  • None



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

Reference Books



Lecture Notes / Slides



Grading

  • Daily Programming Assignments: 4 x 25%


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