CS 135
Computer Science I

Department of Computer Science & Engineering
UNR, Fall 2005
Course Information - Description - Prerequisites - Textbooks - Topics
Organization - Grading - Schedule, Notes & Assignments - ABET Criteria

Common CS 135 Web page

Course Information

  • Credits: 3.0
  • Class hours: Monday & Wednesday, 5:30 - 6:45pm, SEM 261 (Scrugham Engineering-Mines)
  • Lab hours: Tuesday, 6:00 - 6:50pm, SEM 231C (Scrugham Engineering-Mines)
  • Call numbers: #34281, #29592
  • Maximum Enrollment: 48
  • Common course Web page: http://www.cse.unr.edu/~cs135

  • Instructor: Dr. René Doursat
  • Phone: (775) 327-2246 / (775) 784-6974
  • Web page: http://www.cse.unr.edu/~doursat
  • Office: SEM 230 (Scrugham Engineering-Mines)
  • Office hours:
    • Monday, 2:00 - 5:30pm
    • Wednesday, 4 - 5:30pm
    • or by appointment

  • Teaching Assistant: Chang Jia
  • E-mail: chang@cse.unr.edu
  • Web page: http://www.cse.unr.edu/~chang
  • Office: SEM 255A (Scrugham Engineering-Mines)
  • Office hours:
    • Monday, 9am - 12pm
    • Tuesday, 11am - 2pm
    • Thursday, 11am - 2pm

Description

An introduction to modern problem solving and programming methods, with emphasis on algorithm development. Also, an introduction to procedural and data abstraction, emphasizing design, testing, and documentation.

The primary objective is to provide students with the skills necessary for programming and problem-solving using a computer. The programming language will be C++. Topics covered include: program organization, fundamental C++ objects, expressions, and assignment, control constructs, library and programmer-defined functions, advanced parameter passing, and arrays.

Prerequisites

College Algebra & Trigonometry (MATH 128).

Textbooks

Topics Covered (Tentative)

This is a tentative list of topics, subject to modification and reorganization.

  1. Introduction
  2. Program organization
  3. Data types & expressions
  4. Selection: if-else, switch
  5. Interactive input & output
  6. Design
  7. Loops: for, while & do-while
  8. Reading & writing files
  9. Functions
  10. Arrays

Organization

The course is arranged on a lecture-laboratory basis. The laboratory is a mandatory part of the class. The teaching assistants will outline additional lab requirements. There are two types of assignments: exercises and lab assignments. All lab assignments, homework, quizzes, and exams are required.

  • Exercises   The exercises consist of practice questions which are intended to assist the student in mastering the course content. Some of these exercises may be collected and graded, but you will be informed in advance when an exercise is to be handed in.

  • Lab assignments   The lab assignments require the solutions to problems using the computer. We will be using the Windows boxes in the College of Engineering Computing Center (ECC), room SEM 231. You will be instructed how to submit your lab assignments for grading.

  • Final project   The final lab assignment will be in the form of a term project. It will be the most comprehensive coding assignment, requiring knowledge of all the concepts covered in the course, and its implementation will span several weeks.

  • Late policy   Late exercises, assignments or projects will not be accepted.

  • Exams   There will be three exams and one comprehensive final. The first three exams will take place in the regular classroom. Makeup exams will only be allowed for medical emergencies.

  • Quizzes   There may be announced and unannounced quizzes. There will be no makeups for missed quizzes. You should expect about two quizzes every week in lab. Your two lowest quiz grades will be dropped in the final grade calculation.

  • Academic integrity   All assignments (exercises, labs and projects) and all exams (quizzes, exams and final) are to be treated as individual and not a collective effort except for some labs as described below. A severe penalty will be given for any other assignment or exam which indicates collusion or other form of academic dishonesty. The usual penalty for academic dishonesty on assignments or an exam is failure in the course.

    You should carefully read the UNR policy on Academic Standards. Your continued enrollment in this course implies that you have read it, and that you subscribe to the principles stated therein.

    Conditions of collaborative lab and project work:

    • Labs 0, 1, 2 and 3 must be an individual effort (no collaboration).

    • If you wish to join efforts with one other individual on Lab 4 or later you must both sign up on the INTENT form your TA will have. Upon signing up to work jointly on labs, you may do so for succeeding labs not yet assigned. Any currently assigned lab must be finished individually.

    • If you wish to quit working jointly, both persons must notify by signing the INTENT form again. The currently assigned lab must be completed as a joint effort. In the event that your partner drops the class notify your TA and instructor immediately.

    • The names of both individuals are to be included on the lab assignment and as part of the lab assignment each individual will include an independently completed, typed statement indicating what she/he contributed to the lab and how full understanding of the entire lab assignment was achieved.

    • It is each individual's responsibility to assure her/his full understanding of the material from each lab. Any joint project will require additional design/coding/documentation information to clearly indicate a joint effort as will be described in the project description.

    • All other assignments and exams are to be completed on an individual effort basis.

    All lab assignments should be considered "open-book, take-home tests". If you (individual/lab team) need assistance with an assignment, you may consult your professor, a CS TA designated to help CS 135, your textbook, or any other textbook. You may not receive substantive assistance in any form from any other source (i.e., from other students, from computer center personnel, from paid or unpaid tutors, etc.). Any assistance you do receive is to be documented in the comment section of your code.

    The only help you may receive from other students is with syntax errors or with questions regarding the computer system. Do not show, exchange or copy code. Using another person's listing or having another person "ghostwrite" a lab will be considered academic dishonesty. Any indication of joint collaboration other than that defined above will be considered academic dishonesty.

  • Disability statement   If you have a disability for which you will need to request accommodations, please contact the instructor or someone at the Disability Resource Center (Thompson Student Services - 107) as soon as possible.

Grading (Tentative)

Both grading policy and scale are subject to change. Failure in either the programming (lab assignments) component or the lecture component (exercises, quizzes, and exams) will result in failure in the course.

Grading Policy

Lab assignments20%
Final project15%
Quizzes20%
Exams10% + 10% + 10%
Final exam15%
Grading Scale

90% - 100%A
80% - 89%B
65% - 79%C
55% - 64%D
0% - 54%F

Schedule (Tentative), Notes & Assignments

This is a tentative schedule including the three exam dates. It is subject to readjustment depending on the time we actually spend in class covering the topics. Please check again regularly. Course notes and assignments will be posted here. Permanent reading assignment: it is assumed that you are familiar with the contents of the slides of all past meetings.

Date Lectures & Notes Reading Assignments Lab Assignments & Quizzes
Mon, Aug 29 1. Introduction (1) - Pseudocode   Lab 0
Wed, Aug 31 1. Introduction (2) • Read Malik's chapters 1 and 2 Quiz 1 in class
Lab 1, due Sep 13, 6pm
Mon, Sep 5 Labor Day - no class
Wed, Sep 7 1. Introduction (2) & (3) - Elements of C++    
Mon, Sep 12 2. Functions I - Passing by Value   Lab 2, due Sep 20, 6pm
Wed, Sep 14    
Mon, Sep 19 3. File I/O - Reading & Writing Files • Read Malik's chapter 3,
  without predefined functions.
Quiz 2 in class
Lab 3, due Sep 27, 6pm
Wed, Sep 21  
Mon, Sep 26 4. Predefined functions   Quiz 3 (not graded)
Lab 4, due Oct 4, 6pm
Wed, Sep 28 Exam 1 • Read the "Quick Review" sections
  and practice exercises from the book.
 
Mon, Oct 3 5. Selection - If & Switch Controls • Read Malik's chapter 4 Lab 5, due Oct 11, 6pm
Wed, Oct 5
Mon, Oct 10 6. Repetition (1) - While Loops • Read Malik's chapter 5, pp203-218
• Read Robertson's handouts
  (1.1, 2.1, 6.1, 8.1-8.3)
Quiz 4 in class
Lab 6, due Oct 18, 6pm
Wed, Oct 12   Quiz 4' in class
Mon, Oct 17 6. Repetition (2) - For Loops • Read Malik's chapter 5, pp231-268 Lab 7, due Oct 25, 6pm
Wed, Oct 19    
Mon, Oct 24 Slides by Alina Solovyova-Vincent:
7. Functions II (1) - Passing by Reference
• Read Malik's chapter 7, pp305-338 HW 1, due Oct 26, 5:30pm

Labs 8 & 9, due Nov 1 & 8, 6pm
Wed, Oct 26    
Mon, Oct 31 Review    
Wed, Nov 2 Exam 2    
Mon, Nov 7 Slides by Alina Solovyova-Vincent:
8. Arrays (1) - Character Arrays
8. Arrays (2) - 2-D Arrays
• Read Malik's chapter 9, pp423-434 Lab 10, due Nov 15, 6pm
Wed, Nov 9    
Mon, Nov 14 • Read the rest of Malik's chapter 9  
Wed, Nov 16   Final Project,
  due Nov 30 & Dec 14
Mon, Nov 21 Final Project Discussion    
Wed, Nov 23 Final Project Discussion    
Mon, Nov 28 Exam 3 Practice    
Wed, Nov 30 Exam 3    
Mon, Dec 5 Class cancelled
Wed, Dec 7 Exam 3 Review
& Final Project Discussion
  Quiz 5 in class
Mon, Dec 12 Final Exam Practice
& Final Project Discussion
   
SAT, Dec 17 FINAL EXAM, 9:45am - 11:45am, Room WRB 2030 (William Raggio Building)

ABET Criteria

Course Outcomes:

  • Students demonstrate they can define and apply the basics of a programming language.
    • Strategies and actions used to produce the outcome:
      • Lectures, labs, and projects covering the basic concepts of a programming language, in particular C++.
    • ABET criteria covered:
      • (a) An ability to apply knowledge of mathematics, science, and engineering.
      • (c) An ability to design a system, component, or process to meet desired needs.
      • (k) An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.
    • Program objectives covered:
      • (2) Our graduates will have achieved a solid understanding of concepts fundamental to the discipline of Computer Science.
    • Assessment methods:
      • Quizzes and exams
      • Weekly labs and projects

  • Students demonstrate they can design small projects. Students also design a multi-part project including topic details of their own choosing.
    • Strategies and actions used to produce the outcome:
      • Learning program design through weekly labs and projects. Many of the labs and projects describe the problem but leave the design and implementation details to the students.
      • The final project is comprehensive, implementation spans several weeks, and is loosely defined.
    • ABET criteria covered:
      • (b) An ability to design and conduct experiments, as well as to analyze and interpret data.
      • (c) An ability to design a system, component, or process to meet desired needs.
      • (e) An ability to identify, formulate, and solve engineering problems.
      • (h) The broad education necessary to understand the impact of engineering solutions in a global and societal context.
    • Program objectives covered:
      • (2) Our graduates will have achieved a solid understanding of concepts fundamental to the discipline of Computer Science.
      • (3) Our graduates will have achieved good analytic, design, and implementation skills required to formulate and solve computing problems.
    • Assessment methods:
      • Lab assignments pertaining to algorithm development (pseudocode)
      • Project design reports

  • Students demonstrate they can solve problems by finding and then coding solutions.
    • Strategies and actions used to produce the outcome:
      • Learning problem solving by analyzing a given problem, finding a solution, and then coding the solution.
    • ABET criteria covered:
      • (e) An ability to identify, formulate, and solve engineering problems.
      • (i) A recognition of the need for, and an ability to engage in life-long learning.
    • Program objectives covered:
      • (2) Our graduates will have achieved a solid understanding of concepts fundamental to the discipline of Computer Science.
      • (3) Our graduates will have achieved good analytic, design, and implementation skills required to formulate and solve computing problems.
    • Assessment methods:
      • Quizzes and exams
      • Weekly labs and final project
Course Information - Description - Prerequisites - Textbooks - Topics
Organization - Grading - Schedule, Notes & Assignments - ABET Criteria

Common CS 135 Web page
Created and maintained by
René Doursat
Last update: 12/17/2005