Syllabus: Fall 2016 - sheerazwalid/COMP-I GitHub Wiki

Course:           CSE 201 Introduction to Computer Science I
Sections:         
School:           CSUSB
Quarter:          Spring 2017
Prerequisites:    Some exposure to programming
Lecture:          Online
Lab Sec __:       Sheeraz Korai
                  Jackie Kelley
Textbook:         No textbook; free Web-based content only.
Website:          https://github.com/sheerazwalid/COMP-I/wiki
Instructor:       Dr. David Turner
Assistants:       Sheeraz Walid Korai
                  Jackie Kelley
Email:            "David Turner" <[email protected]>
                  "Sheeraz Korai" <[email protected]>
                  "Jackie Kelley" <[email protected]>
Cloud9:           Sheeraz Korai: sheerazwalid
                  Jackie Kelley: ____________
Office hours:     Sheeraz Korai: __________________
                  Jackie Kelley: __________________

Course Format

The course is centered around 9 programming problem assignments. There is an assignment for each lab except the last lab, which is used for the final exam. During the lab, you will focus on preparing for a quiz that will be given in the next lab session. You will also be able to work on the programming problem assignments. The last lab will be used for a comprehensive final exam, which will look like a long quiz covering all course topics.

Attendance in the weekly lab sessions is required. Before attending the lab session, you should study the corresponding lecture and reading material, which is available on the course website.

Course Goals

  • Students will learn how to write programs in the C++ language.
  • Students will improve computational thinking skills, which can be used to solve a wide range of problems.

Learning Objectives

  • Learn how to use the Linux command line interface.
  • Learn how to use flow control constructs.
  • Learn how to use functions.
  • Learn how to devise algorithms that solve computing problems.
  • Learn how to use arrays.
  • Learn how to create user-defined datatypes called classes.
  • Learn how to verify program correctness with test code.

Assignments/Labs

DEADLINE: Lab assignments are due 4 days after your lab session.

In this course, you will complete a sequence of assignments, which I also refer to as labs. These assignments involve research, programming and problem solving. You will produce source code for each assignment. Source code is text that are in files. For each assignment, you will create a folder inside a Cloud9 workspace and place the source code files for the assignment in the assignment folder. The assignments can be completed using a Web browser with an Internet connection. If you don't own a computer or have an Internet connection, then you can work on lab computers in JB 359, JB 358 and JB 360.

IMPORTANT: Programs submitted with compilation errors receive no credit.

Programs that are incorrect or do not solve the stated problem will lose some or all points.

Assignments that are submitted before the deadline are eligible to receive a full score. Assignments submitted within one week (7 days) after the deadline are eligible to receive a maximum of 75% of the point value of the assignment. Assignments submitted more that one week after the deadline will not be accepted.

Assignments can only be submitted once. After you are assigned a score for an assignment, it is final. Resubmission of assignments are not accepted.

You should do the programming assignments on your own without copying code from other students or outside sources. Presenting the work of others as your own work is called plagiarism. If you commit plagiarism, you will receive no credit for the work.

Writing a program to produce required behavior is not good enough for a full score in this class; you must also write code that is readable by humans. Program readability is important because real­-world programs are read over and over again in the process of fixing bugs and adding new functionality. Program readability will be evaluated according to the following set of criteria.

Readability Criteria for Source Code

Criterion Description
Organization Is source code well organized?
Cleanliness Have unnecessary variables and logic been removed from the code?
Logical indentation Does indentation show logical structure?
Consistent indentation Does indentation follow a consistent policy?
Portable indentation If tabs are used for indentation, are they used everywhere instead of spaces?

Keep in mind that tabs display differently in different viewing and editing tools. This is a problem if you mix spaces with tabs to achieve indentation. If you use tabs, then make sure that you do not use spaces anywhere in your code to achieve indentation.
Logical spacing Does spacing show logical structure?
Consistent spacing Does spacing follow a consistent policy?
Expressive and clear naming Do variables, functions and classes have names that clearly express their purpose in the program?
Clear responsibilities Are responsibilities of functions and classes clear and consistent with their names? Is the code structured to avoid reliance on side effects produced by functions?
Necessary comments Are comments included when needed?
Unnecessary comments Are superfluous comments omitted?
Non-redundant When 2 or more places inside a program need to perform the same activity, is that activity defined as a function and called as such from where it is needed?
Spelling Are user-defined identifiers free of spelling errors? Are comments and other documentation free of spelling and grammatical errors?

Grading

Assignments, quizzes and final exam have point values, which are shown on the course schedule. Your percentage score will be computed by dividing the total of all points earned by the total possible points. The normal scale will be used to assign a letter grade.

Attendance: 10% quizes: Final:

Percent Grade
95 - 100 A
90 - 94 A-
87 - 89 B+
84 - 86 B
80 - 83 B-
77 - 79 C+
74 - 76 C
70 - 73 C-
67 - 69 D+
64 - 66 D
60 - 63 D-
0 - 59 F

Learning Outcomes

This course is designed to contribute to the following learning outcomes.

a) An ability to apply knowledge of computing and mathematics appropriate to the discipline.
b) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
c) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
i) An ability to use current techniques, skills, and tools necessary for computing practice.
k) An ability to apply design and development principles in the construction of software systems of varying complexity.

Students with disabilities

If you are in need of an accommodation for a disability in order to participate in this class, please let me know as soon as possible, and also contact Services to Students with Disabilities at UH-183, (909)537-5238. You are advised to establish a buddy system and alternate in the class if you require assistance in the event of an emergency. Individuals with disabilities should prepare for an emergency ahead of time by instructing a classmate and the instructor.

Academic Regulations and Procedures

See the CSUSB Bulletin of Courses for the University's policies on course withdrawal, cheating, and plagiarism.

Computer Science and Engineering Club

The Computer Science and Engineering Club is a student-run organization that uses a combination of email and campus meetings to plan events, ask and answer technical questions, post job and internship openings, and discuss other topics of interest to computing majors at CSUSB. Club-sponsored events include seminars, workshops, tutoring and fun activities.

⚠️ **GitHub.com Fallback** ⚠️