Texas A&M University primary mark

Department of Computer Science and Engineering

Sample Image

CSCE 121: Introduction to Program Design and Concepts

Instructor: Dr. Dylan Shell

Office:HRBB 330C
Phone:(979) 845-2369
Email:dshell_at_tamu.edu
Web:https://cse-robotics.engr.tamu.edu/dshell/cs121
Office hours:Monday 10am-11am and by appointment too.

Teaching Assistant

Name:Sasin Janpuangtong
Email:sasin324@email.tamu.edu
Office and office hours:By arrangement in the lab session

Peer teachers

There are several peer teachers available to provide help and guidance for this course. The assigned peer teachers will hold office hours during the week to help students. Peer teacher hours will be available on the Peer Teacher Website. The following peer teachers are officially assigned for this course.

  • Kylan Snyder
  • Scott Wilkins
  • Nicholas Yannuzzi

Spring 2018

Lecture Time (Sections 501–504):Tuesdays and Thursdays, 8:00am-9:15am
Lecture Location:ZACH 350

Lab sections

TR 9:35am-10:25am ZACH 590 584
TR 11:10am-12:00pm ZACH 584
TR 12:45pm-1:35pm ZACH 584
TR 2:20pm-3:10pm ZACH 584

Brief catalog description: Computer programming syntax for primitive types, control structures, vectors, strings, structs, classes, functions, file I/O, exceptions and other programming constructs, plus the use of class libraries; practice in solving problems with computers; includes the execution of student written programs in C++.

Course materials will be posted on the page you are currently reading.
The discussion forum associated with this course is hosted via Piazza. Use this link to sign-up.
NB:There are multiple CSCE121 entries in Piazza, make sure you have the correct one, i.e., the one page explicitly showing sections 501–504.

Pre-requisites

Prior programming experience: A high school or college programming course.

Learning Outcomes / Course Objectives

  1. Understand computer program structure, design and development.
  2. Use primitive data types and control structures in computer programs.
  3. Declare and use functions in computer programs.
  4. Understand object-oriented programming concepts: objects, classes, inheritance, polymorphism, and encapsulation.
  5. Understand and apply file I/O in computer programs.
  6. Understand and apply vectors, strings, and structs.
  7. Navigate and make use of class libraries.
  8. Write simple computer programs in a high-level programming language, C++.

These learning objectives will be assessed using quizzes, tests, and exams.

Textbooks

No single one of these books is required, but it is expected that students will consider using one of these as a reference. All are useful resources.

  • Owen L. Astrachan, A Computer Science Tapestry, McGraw-Hill, (Second Edition), 2000.
  • Bjarne Stroustrup, Programming Principles and Practice Using C++, Pearson, (Second Edition), 2014.
  • Josée Lajoie, Stanley B. Lippman, Barbara E. Moo, C++ Primer, Addison-Wesley, (Fifth Edition), 2012.

Grading Policies

Grades will be based on the following
10%:Evidence of lab work (homework submissions, quizzes)
20%:Midterm Exam 1 (14 Feb ♥) Histogram
20%:Midterm Exam 2 (7 Mar) Histogram
20%:Midterm Exam 3 (4 Apr) Histogram
30%:Final Exam (3 May)
The grading scale is:
A 90-100
B 80-89
C 70-79
D 60-69
F 59 or below

The midterms will be held in class on their respective dates. They will be 75 minute exams, so arrive before the scheduled class start time to get started at 8:00 am sharp!
Prior exams and/or some practice questions, designed to be representative of the long questions on the examinations will be provided.

  • Practice Questions for Midterm 1
  • In-class Practice Question for Midterm 1
  • Practice Questions for Midterm 2
  • Practice Questions for Midterm 3
  • Practice Questions for the Final Exam
  • Prior Final Exam

The final examination will be held in the reserved final slot (May 3rd). It will be comprehensive but, naturally, with an emphasis on later unexamined material. For exams students will be permitted to bring in 5 physical pages with notes (size: US letter, 8.5" x 11.0"; text is permitted on both sides).

Course Topics, Calendar of Activities, Major Assignment Dates

Lecture topics and overall syllabus, subject to class progress.

Topic
Class setup & preparedness appraisal The Beauty of Programming
New forms of some familiar thingsQuick Reference
1/17:Code
1/22:Code
Functions
1/24:Code
1/29:Code
1/31:Code
Poll
Aggregate data types
2/5:Code
2/7:Code
Debugging I
2/12:Code
[Midterm Exam 1]
2/19:Code
2/21:Code
Debugging II
2/26:Code
2/28:Code
Pointers I: References
Basic I/O
[Midterm Exam 2]
— SPRING BREAK —
Review Session
Haddocks' Eyes
Pointers II: Dynamic allocation
3/19:Code
3/21:Code
3/26:Code
3/28:Code
4/2:Code
Debugging III
[Midterm Exam 3]
4/9:Code
4/11:Code
Abstraction I: ADTs
4/16:Code
4/18:Code
4/23:Code
Classes and Objects
4/26:Code
Abstraction II: Top-down Design
Generics
Review
[Final Exam]

Homework will be posted incrementally during the semester. Some of problems may involve material that is being covered or is to be covered, but the majority will use material already discussed. Much of the in-class discussion will build on material in the homework.
After sufficient time has elapsed to attempt the homework, some aspects and solutions will be discussed in class. Do not, however, expect an exhaustive enumeration of all solutions.

Examinations will be closely related to problems posted as homework. Since every student can prepare and use notes for the midterm and final examinations, obviously the questions will be based on the concepts needed in order to solve homework problems, but are not likely to resemble the homework questions directly.

Lab Assignments
Lab ZeroJan 15
Lab OneWeek of Jan 17–Jan 23
Lab TwoWeek of Jan 24–Jan 30
Lab ThreeWeek of Jan 31–Feb 6
Lab FourWeek of Feb 7–Feb 13
Lab FiveWeek of Feb 14–Feb 20Feb 27
Example: Shuffles
Lab SixWeek of Feb 28–Mar 6
Lab SevenWeek of Mar 21–Mar 27
Lab EightWeek of Mar 28–Apr 3
Lab NineApr 9 & 10
Lab TenWeek of Apr 11–Apr 17
Lab ElevenWeek of Apr 18–Apr 24
Lab TwelveWeek of Apr 25ff

You can't learn programming techniques by watching. Working through the labs is the most important part of this course. It is the single biggest predictor of your success in learning the material. Read some comments from previous students.

You may need to spend 3 hours for every hour spent in lecture for this class. Make time in your schedule every week for the class programming assignment; mark that time off in your calendar and protect that time. Monitor how well you are doing in the labs, learn to be introspective and to ask for help! Use the lab time to get one-on-one help.

Assessment of Laboratory Work

As there are no assignments that need to turned in to the instructors. It is your responsibility to ensure that you are keeping up to date with the material, following problems as done in class, and doing the homeworks to ensure that you have achieve mastery of the material.

Re-grading Policy

The final letter grade assignments are final, unless there was a mistake made in recording your exam grades or in computing your final grade.

There are situations that may warrant regrading a particular test or exam. For example, making addition errors in computing your score, not seeing an answer that you gave, or misinterpreting an answer that you gave. Requests for regrading midterms must be made within one week of the work being handed back.

Academic Integrity

Unless otherwise announced, each homework and/or assignment in any fashion you choose. It is recommended that you balance collaboration with individual work. In general, you may find it helpful to limit discussion with your classmates to strategy and approach of solutions to problems. But actual solutions should be done by the student herself/himself to get the most out of the exercise.

As commonly defined, plagiarism consists of passing off as one's own the ideas, work, writings, etc., that belong to another. In accordance with this definition, you are committing plagiarism if you copy the work of another person and turn it in as your own, even if you have the permission of the person. Plagiarism is one of the worst academic sins, for the plagiarist destroys the trust among colleagues without which research cannot be safely communicated. If you have questions regarding plagiarism, please consult the latest issue of the Texas A&M University Student Rules (http://student-rules.tamu.edu/rule52), under the section "Academic Misconduct." For additional information please visit: http://student-rules.tamu.edu/aggiecode

"An Aggie does not lie, cheat, or steal, or tolerate those who do."

Students with Disabilities

The Americans with Disabilities Act (ADA) is a federal anti-discrimination statute that provides comprehensive civil rights protection for persons with disabilities. Among other things, this legislation requires that all students with disabilities be guaranteed a learning environment that provides for reasonable accommodation of their disabilities. If you believe you have a disability requiring an accommodation, please contact Disability Services, currently located in the Disability Services building at the Student Services at White Creek complex on west campus or call 979-845-1637. For additional information, visit http://disability.tamu.edu.

• Texas A&M University •