CS2010.1/2 Fundamentals of Computing (On line, Fall 2020)

  • My home page
  • Email me any time between 8 a.m. and 10 p.m.: zshen@plymouth.edu
  • Meet me "in person": Zoom meeting by appointment through the above email address

    General Information

    Fundamentals of Computing is the very first computer science course for CS, EMTR and IT majors. It presents a breadth-first overview of many issues in the computing discipline, especially its core: algorithms. We will study the mathematical and logical properties of algorithms, then the process of designing and building of computer systems that are able to execute algorithms, understand the role of programming languages in facilitating their executions, and learn basic skills of programming, especially in Python, and then identify important application problems, and apply some of the basic knowledge and skills to solve some of these problems. We will also introduce the theoretical foundation of Computer Science, especially the Turing Machine model to have a look at the other, more theoretical, aspects of this discipline, e.g., what cannot be done with a computer. All such issues will be further explored in detail in later courses in the respective program. Hence, from a curricular point of view, this course is also the prerequisite, both explicitly and implicitly, of many other upper level courses.

    Lectures or other class meetings for this course may be recorded by the university using USNH media platforms. Such recordings may be available for educational use by other students enrolled in the class (including both for instruction and as a review tool), the course instructor(s), and other university officials who support course instruction. Your voice or image may be captured on the recordings, and by enrolling in this course you are consenting to such recording for these purposes.

    Students are strongly advised to attend every class. For those who have to miss classes, an extended abstract of the lecture notes can be found within this syllabus.

    Most of the communication regarding this class will be done through email to your plymouth address, with a subject starting with "CS2010:...", so you have to regularly check your email while taking this course.

    To achieve the above learning objective, numerous homeworks will be assigned within the lecture notes. Although a student should not hand in anything unless and until s/he is reasonably sure about their correctness, the answers of all the assigned homework should be handed in, the latest, on the first business day in the following week, once a chapter is completed. A student should definitely not wait until the last day to do the homework, but get the homework assignment completed right after the relevant subject is discussed.

    Beside two one-hour lectures per week, there will also be a weekly lab, where we will have hands-on experience with some of the discussed concepts, and learn many practical skills. Each lab also has its explicit deadline. Please have a look at the Lab Assignments

    If a student has any questions/issues with lecture notes and assignments, s/he should ask the instructor for clarification as soon as possible, in email. The instructor will share with the whole class such a clarification, anonymously.

    It is expected that you will send in all the above work by the respectively posted deadline through email. On the other hand, if you have a solid reason for a delay ("excused absences", as defined in the Plymouth State University attendence policy) of the aforementioned homework and/or project, please let me know before the deadline, or as soon as possible afterwards. The work(s) invovled will not be included in calculating your grade for this course.

    Anything and everything, once submitted, will be considered final. If you send it in prematurely by an accident, please send me an email right away to cancel your submission.

    A mid-term test and one final exam will be given in this course. For details, check out the Evaluation segment of this syllabus.

    Anything and everything handed in for this course must be done by the signed individual. If enough evidence shows that someone is involved with "cheating", the case(s) will be immediately reported to the leader of the Computer Science and Technology discipline. For relevant definitions and procedural details regarding academic integrity related issues, please refer to the current University's policy on Academic Integrity.

    As a constructive feedback, an anonymous sample solution, "sampler", for all the assignments, including homeworks, labworks, and mid-term test, will be posted after the deadline. As a further, and important, step of the learning process, students are urged to study such samplers carefully, and compare them with her own works with the goal of learning what is expected. Please let the instructor know if any further questions arise.

    The instructor will try his utmost to be fair in grading students' work as a measurement of the quality of the submitted work in terms of its degree of meeting a clearly stated expectation. Check out the Evaluation section for details. On the other hand, if a student believes that s/he is not given a fair grade, s/he should follow the procedure as specified in the University Fairgrading Policy to appeal the grade.

    Plymouth State University is committed to providing students with documented disabilities equal access to all university programs and facilities. If you think you have a disability requiring accommodations, you should immediately contact the Campus Accessibility Services, located in Speare 210, to determine whether you are eligible for such accommodations. Academic accommodations will only be considered for students who have registered with the Accessibility Service. If you have a Letter of Accommodation for this course from the Campus Accessibility Services Office, please provide the instructor with that information privately so that you and the instructor can review those accommodations.

    The PASS (Plymouth Academic Support Services) Office, located in Speare 209, provides tutoring and study skills information.

    Student Support Foundation (SSF) provides short-term emergency financial assistance and long-term student support. Click here for more information. Student Support Foundation also runs a food pantry, located in Belknap Hall. To learn more about SSF or access the food pantry, either via open hours or a private appointment, contact the SSF advisor, at psu-ssf@plymouth.edu.

    You might want to click here for additional information regarding other basic needs.



    1. An Introduction--Computer Science is about algorithms.
    2. Algorithm discovery and design--How could we find algorithms?
    3. The efficiency of algorithm--Which algorithm is the best one?
    4. The building blocks--How to build a machine to execute algorithms?
    5. Computer system organization--What's inside that box?
    6. Virtual Machine--Make it easier to use.
    7. High-level languages--What language do you speak?
    8. Programming in Python
    9. The Tower of Babel--What languages could we use? (Self study)
    10. Language Translation--What are you talking about?
    11. Models of Computation--Why is Computer Science a science?
    12. Data Science--How do we deal with big data?


    The grade that a student receives for this course is calculated as the sum of the following components.
    1. Assigned Homework (30%)
    2. Lab Assignments(20%)
    3. A Midterm Test (Chapter 1-Chapter 5) (20%) 9:00--9:50 a.m., on Wednesday, October 14, 2020.
    4. Final Exam (30%): 8:00 a.m. - 10:30 a.m. on Tuesday, November 24, 2020

    A calculated grade will then be converted to a letter grade by the following procedure: If a student gets at least 92.5, s/he will get 'A', if s/he gets between 87.5, and 92.4, s/he gets 'A-', so on and so forth, until s/he gets a grade below 42.5, when s/he will get 'F'.

    To correct any unintentional inconsistency during the grading process, if your grade is within 0.5 of a letter grade, you will get that higher grade. Thus, if your final grade is above 92.0, you will get A, instead of A-.

    Your final grade for this course can be found here.