Course Description

This is an introduction course to computer science for students with little or no programming experience. In general, we are going to teach you to Think as Computer Scientists. To achieve this grand goal, we will discuss a set of essential topics in computer science and show you how is a computer scientist acted in problem solving. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python programming language. The course includes lectures and quizzes, final exams, optional additional exercises with solutions, and other readings and resources. In addition, there will be one project to help you to get familiar with computer science.

We will look into computer science from various perspectives:

Textbooks and Resources

The primary textbooks:

The supplimentary materials:

Grading Scheme

The final grade for the course will be based on the following weights:

Policy on Quizzes and Assignments

For each lecture, there are set of assigned quizzes and readings. Each student is required to turn in solutions for quizzes before the given due. The assignments are divided into three parts: (1) homework, (2) mandatory homework, and (3) course projects, where the project is mandatory.

We have strict deadlines for the mandatory assignments. There will be a grace period of 48 hours after the deadline during which you can still submit to the lecturer. For any late submissions during the grace period, the score you achieve on the assignment will be multiplied by a factor of 0.9. Late submissions out the grace period will be rejected directly.

This may sound strict, but it is fair that the same rules apply for everyone. We will try to provide the best help possible to make you succeed with the assignments, but you will have to grant sufficient time to finish your homework and submit them before the deadline.

  • Mandatory Homework. The mandatory homework can be submitted as handwritten paper or via email in electronic form. You may submit a scanned version of your homework, but there always is a limit on attachment size of email and it is your responsibility to make sure the delivery successful. We strongly suggest you to do the homework using a text editor or latex and create a PDF file for submission.
  • Project. Projects are recommended to be done in groups, where the preferable member size is 4 (group size less than 4 is allowed). The evaluation requires approval of three elements: (1) A copy of runnable code, (2) A report summarizing your design and the main results, and (3) Individual oral examination based on the report and questions in the report. In addition, please list out clearly in the report of the responsibility and the contribution for each one.

Students will submit their solutions via Piazza before the due. Late submissions will not be accepted.

WARNING: The homework assignments must be done by yourselves. You cannot copy from the books or other sources that you find on the web. Once a submission is affirmed as Plagiarism, you will be credited a Zero. See the Policy on Plagiarism for additional information.

Programming Project — Design with Entity-Relation Model

Details to be added ....

  • Information: Project Specification
  • Release Date: Nov 14, 2017
  • Proposal Due: Nov 14, 2017
  • Submission Due: to be determined, 2017 @ 11:59:59pm

Final Exam

There will be a written exam in the at the end of the semester. The questions in the exam will be based on the mandatory readings and topics discussed in class. The exact date and time will be determined and released before the last lecture.

Office Hours

We have scheduled a list of office hours. That will be open to studends registered in CS101. If you have any questions on the cource or have problems on quizzes and reading assignments. It is welcome to leaverage this opptunities.