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:
- The constitution of computer systems - the hardware and software building blocks of computer systems.
- Think in data - how is various data represented, stored, and manipulated with digital computer.
- Algorithmic thinking - the magic wands waved by computer scientists in problem solving.
- Programming - the philosophy of algorithms to be implemented in various languages, coding styles, programming paradigms, and software engineering.
Textbooks and Resources
The primary textbooks:
- [Brookshear17] J. Glenn Brookshear and Dennis Brylow (2017). Computer Science: An Overview. 12th Edition. Boston: McGraw-Hill.
The supplimentary materials:
- [Downey15] Allen B. Downey. (2015). Think Python: How to Think Like a Computer Scientist. 2nd Revised Edition. O'Reilly Media, Inc, USA. ISBN: 1400075998.
- [Dyson12] George Dyson (2012). Turing’s Cathedral: The Origins of the Digital Universe. 1st Edition. Vintage. ISBN: 1491939362.
- [Rao13] Arun Rao and Piero Scaruffi (2013). A History of Silicon Valley: The Greatest Creation of Wealth in the History of the Planet. 2nd Edition. Createspace Independent Publishing Platform. ISBN: 1490330402.
The final grade for the course will be based on the following weights:
- 15% — Course Participation & Discussion
- 15% — Mandatory Quizzes & Reading Assignments
- 10% — Programming Project
- 60% — Final Exam
- +5% — Extra Credit for Your Performance
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
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.
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.
- Information: Project Specification
- Release Date: Mar 02, 2016
- Due Date: May 11, 2016 @ 11:59pm