CS 110 - Essentials of Computer Science
      George Mason University, Department of Computer Science
    Section DL3 : Monday/Wednesday 3-4:15pm (online)
    Section DL4 : Tuesday/Thursday 3-4:15pm (online)
    
    Instructor and Teaching Assistants
    
    
      | Instructor | 
      Socrates Dimitriadis | 
       | 
       | 
    
    
      |   | 
    
    
      | GTAs | 
      Ellie Akbari | 
       | 
       | 
    
    
       | 
      Fairuz Nawer Meem | 
       | 
       | 
    
    
       | 
      Thuan Tran | 
       | 
       | 
    
    
       | 
      Rui Yu | 
       | 
       | 
    
    
      |   | 
    
    
      | UTAs | 
      Iqra Amjad | 
       | 
       | 
    
    
       | 
      Ishita Gupta | 
       | 
       | 
    
    
       | 
      Phat Tran | 
       | 
       | 
    
    
       | 
      Hoor Yasin Wani | 
       | 
       | 
    
    
       | 
      Patrick John Minh-tri Kelley | 
       | 
       | 
    
    
       | 
      Allison Tran | 
       | 
       | 
    
    
    
    Course Description:
    This course provides a baseline knowledge of
    technical and social issues at the heart of computer science. No prior
    knowledge of computing or programming is required. Students will develop a
    basic understanding of simple algorithms, information representation, and
    styles of problem solving which significantly affect computer science. They
    will gain practical experience working with a Unix-like operating system.
    Data security will be discussed to ensure safe communication. Students will
    gain exposure to basic software development tools such as version control
    and text editors. A variety of social and ethical issues will be discussed
    throughout the course including the impact of computing on society.
      This course is required for all computer science students and serves as
        an opportunity for students to be introduced to GMU Computer Science
        Department policies. Freshmen and transfer students are expected to take
        the course in their first year in order to ensure that all CS students
        have exposure to certain essential tools and topics early on to enable
        their use in subsequent classes.
    Prerequisite: None. (However, enrollment in the course is limited to
    students in the BS in Computer Science or BS in Applied Computer Science
    programs.)
    
    Learning Outcomes:
    
      - Students will understand many of the key ethical, legal and
            social issues related to information technology and how to interpret
            and comply with ethical principles, laws, regulations, and
            institutional policies.  This will be met through class
        discussions related to ethical theories and social implications of
        current computing trends such as Artificial Intelligence, Software
        Reliability and Social Media. Several class assignments will also
        address these topics.
 
      - Students will understand the essential issues related to
            information security, how to take precautions and use techniques and
            tools to defend against computer crimes. This outcome will
        be met by class lectures on encryption, student use of secure
        communication channels (i.e. Virtual Private Networks), and an
        assignment on the modification of software security settings.
 
      - Students will understand the requirements of the Computer
            Science Major at GMU and have an appreciation of Computer Science as
            a discipline. This will be met with lectures on the
        requirements for the CS major, as well as assignments that teach about
        the history of computer science and the people who influenced its
        progress. 
 
      - Students will have a basic understanding of the Unix operating
            system and how computers convey, store, and manipulate information,
            including binary representation of numbers and ASCII encoding of
            characters.  This will be met through class lectures
        and assignments that assess the students' understanding of Unix, binary
        numerical operations, ASCII representation of text, and logical
        operations.
 
      - Students will learn techniques for general problem solving and
            dividing complex problems into manageable component parts.
        This will be met through class lectures that discuss various factors
        that hinder one's ability to find solutions to problems, puzzle solving
        techniques, and exercises that teach students how to break down the
        steps necessary to create solutions.
 
    
    
    Textbook and Readings
    
      - Computer Science Illuminated (7th or 8th Edition) by
        Nell Dale and John Lewis
 
      
        - The 8th Edition is available in the GMU Bookstore
 
        
          - This edition may contain a code for access to additional
            online materials that will not be used in the course. However,
            you might find these additional materials useful for study and
            review.
 
          - You can also buy/rent the textbook in hardcopy or electronic
            form on Amazon or other websites
 
        
        - The 7th Edition is also acceptable, although you should note that it
          is not quite as up to date as the 8th ed. You may be able to
          find this used through online booksellers for
          a much lower cost than the 8th Edition.
 
      
      - Introduction
              to Unix by Fiamingo, DeBula, Condron (available online
        for free)
 
      - Certain webpages and other materials may also be assigned throughout
        the class (either provided in class or available free online) 
 
    
    
    Computing Resources
    Technology requirements necessary to successfully complete this class include:
    
      - 
      A computer where you have the ability and permissions to install software.
      
 
      - 
      Internet access sufficient to participate in video conferencing.
      
 
      - 
      Access to the course's Blackboard module through this link
      
 
      - 
      Access to the course's Piazza module through this link
      
 
    
    
    Grading
    
      - Main Assignments*: 30%
 
      - Software Failures Group Video Project: 10%
 
      - Discussion Board Assignments: 5%
 
      - Weekly Reading Quizzes: 10%
 
      - Class Participation: 20%
 
      - Two Midterm Exams 10% (5% each)
 
      - Final Exam 15%
 
    
    * The assignment to meet with a CS academic advisor regarding future
      course planning must be completed satisfactorily in order to receive a
      passing grade in this class.
      Grading Scale
      
        
          | grade: | 
          A+ | A | A- | B+ | B | B- | C+ | C | C- | D | F
         | 
        
          | range: | 
          [98,100] | [92,98) | [90,92) | 
          [88,90) | [82,88) | [80,82) | 
          [78,80) | [72,78) | [70,72) | 
          [60,70) | [0,60) | 
        
      
    Course Policies
    Late Assignments
    Assignments turned in after the due date will be
    penalized 10 percent per day (incl. weekend days and holidays). Since late work
    can cause major penalties, start work early! If your assignment isn't the
    way you'd like it to be when the deadline is near, submit it anyway for
    partial credit. In fact, submit early and often!  The submission
    system permits you to retrieve and resubmit your assignment until the due
    date, so you may resubmit if you improve your assignment prior to the
    deadline.
    Class Communications
    CS 110 will use Piazza and Blackboard
    (including email sent via Blackboard) for most class communications. You are
    responsible for any notifications or information posted on Blackboard either
    by your instructor, your GTA or the class UTA(s), and you will need to check
    the system regularly for such notices. Some information may be disseminated
    through class instead of BB, so you should always take note of in-class
    announcements.  Individual communications with the professor/GTA/UTA
    may be done by email using your GMU email account. When you email, please be
    sure to include your name, the class and section numbers, and the relevant
    topic in the subject header. (E.g.: Subject: My Name / CS 110-003 / Homework 2)
    Absences and Participation Credit:
    You are expected to attend
    all scheduled class sessions. In the event of an emergency or health
    concern, please contact your professor as soon as possible. We will do our
    best to consider any special circumstances, but only if they are
    communicated in a timely manner, preferably in advance. Note that
    documentation may be required to support your absence.
    Honor Code
    All students are expected to abide by the GMU Honor Code.
    This policy is rigorously enforced. Unless otherwise specified, all
    class-related assignments are to be individual efforts. Certain portions of
    group assignments may require individual efforts as well.  Be careful
    to follow instructions regarding acceptable group efforts.  Plagiarism will not be tolerated.  Cheating
    on any assignment will be prosecuted and result in a notification of the
    Honor Committee. Sharing, collaboration,
    or looking at others' assignments is considered cheating. Review the
    university policies carefully.  If you ever have a question about the Honor
    Code or instructor policies, ASK! We welcome the opportunity to help you
    understand our policies.
    
    Note that the Computer Science Department also has its own mandatory CS
      Honor Code that provides more specific instructions regarding CS
    classes. Make sure you read and familiarize yourself with these rules.
    
    University Policies
    The following are Common Policies Affecting All Courses at George Mason University