Principles of Computer Programming I – CSCI 1301

Fall 2019

Clément Aubert

November 27, 2019

Quick Facts


Course Description

A rigorous study of the principles of computer programming with emphasis on problem solving methods which result in correct, well-structured programs. Other topics: an introduction to data representation, data types and control structures, functions, and structured data types.

Learning Outcomes

Students who successfully complete this course should:

  1. Perform standard program Input and program Output using the keyboard and the monitor.
  2. Declare and use user-defined variables, and constants using the appropriate data types.
  3. Declare, define, and call user-defined functions.
  4. Write and evaluate expressions using arithmetic, relational and logical operators.
  5. Control the flow of program execution using the appropriate sequential, selection, and repetition statements.
  6. Define, create and manipulate arrays.
  7. Process lists of values – defining, creating, traversing.
  8. Understand and implement classes and objects.

Format and Procedures

This course has a lecture, and a laboratory, portion: both are required to succeed. This class is an on-campus class. Lectures are devoted to general explanations of the concepts and ideas underlying the topic at stake. Laboratory will be devoted to hands-on practise and experiments.

Homework assignments will assist the students in making sure they understand classes expectations and the content of the lecture, as well as to practice their coding and problem-solving skills. The progression of the students will be regularly tested and assessed through quizzes, projects and tests. Active and relevant participation during the lectures and laboratory sessions is appreciated.

Teaching Philosophy

It is our mutual interest for you to succeed: I love to share knowledge and to expand it by helping students, and students want to gain a useful and agreeable experience that will prove valuable in their future endeavors. To this end, here is:

What I’m expecting from you

  • Check periodically your email account and read the email I send.
  • Read this entire syllabus carefully.
  • Participate actively in all class discussions.
  • Do the homework wisely: read your notes before starting the homework assignment, make sure you understand it completely before considering it done.
  • Come prepared and on time to classes, exams and quizzes.

What you should expect from me:

  • Clear and accessible lectures.
  • Fair and impartial grading.
  • Availability, during office hours, by appointment, and by email.
  • Open hear to your suggestions to improve this class.
  • Commitment to the principles of universal design.
  • Dedication to your success!

Course Requirements

The following rules, inspired by my experience and dictated by the size of our group, will be enforced:

General Rules

  • Attendance is not mandatory. However, if you come to class, come on time, and stay until the end of the lecture: late arrival and early departure disturb the learning experience for everyone.
  • No laptop or similar electronic device is allowed during the lectures. This policy will help you to improve your grades, increase memorization and to be more respectful of your fellow students.
  • You are responsible for all course material, whether or not you attend lectures or do the assigned reading or coursework.
  • It is the student’s responsibility to initiate a withdrawal before midterm, but I reserve the right to withdraw a student that missed too many classes or lab, or is performing poorly.
  • A student not withdrawn from a course who stops attending class (or who never attends class) is subject to receiving a grade of WF or F.
  • All coursework is individual coursework.
  • Any student missing the final exam without an documented excuse (brought to me or to the dean of Student Life) or who has not taken action to withdraw will receive a grade of F. In case of an documented emergency at the time of the final, the student may be allowed to receive a grade of I.
  • No make up quizzes or exam will be allowed. In case of a documented excuse (cf. previous item), the weight of the missed exam or quiz can be placed onto the final’s weight.
  • Come to your section’s laboratory. If you want to change your section, find a fellow student willing to switch with you and go to the registrar’s office.
  • Late arrival and early departure are tolerated in lab, but do not expect me to go over instructions a second time for you, and do not disturb your fellow students with your questions.
  • Quiet chat and mutual help are acceptable, sharing solutions is forbidden. If you are unsure whenever a collaboration is allowed or not, assume that it is forbidden and ask confirmation. Know that, for instance,
    • Is allowed:
      • Discussing general strategies and approaches without taking down notes,
      • Helping a fellow student debugging a program by asking questions (“Don’t you think there might be a problem line X?”).
    • Is forbidden:
      • Touching someone’s else keyboard or taking notes while talking,
      • Sharing files or projects.

Practical Information

Lab Space

For this class, you will need to access a computer with Visual Studio installed on it. You can either:

Getting Help

I should be your first point of contact for any question regarding the content of this class, but many other resources are available:

Tutoring is available for Computer Science in the Academic Success Center on the first floor of University Hall,

The planning can also be downloaded.

You can also schedule appointments at Assya Sellak will be our “embedded tutor” this semester.

ACM Club

There is an A.C.M club at Augusta University.

It is the ideal place to get to meet fellow students, to work on exciting projects, and to learn more about various aspects of Computer Science and Information Technology.


Students will be evaluated using four different types of evaluation:

  1. Homework assignments will be given during the course of the semester: they are not expected to be handed back, and won’t be graded, but quizzes (closed book and timed (± 10 min.)) with questions taken or inspired from those assignments and the lab will be given.

  2. Projects will be carried at home or during laboratory.

  3. There will be in-class exams, held during the regular class periods.

  4. The final exam will take place during the exam period.

Refer to the planned schedule for precise dates.

Your grade will be computed as follows:

Quizzes (×4) 10%
Projects (×3) 10%
In-class Exams (×2) 40%
Final Exam 40%

using the following course grade scale:

Below 65 65–70 70–79 80–89 90–100

Planned Course Schedule

The weeks start on Monday.

Week Date Note Topic
1 08/12 - Syllabus, Introduction
2 08/19 08/23 : Quiz Reserved Words and Variables
3 08/26 - Datatypes, Operations, and Reading from the User
4 09/02 09/02: Labor Day, 09/06: Quiz Intro to Object-Oriented Language
5 09/09 09/13: Project -
6 09/16 09/20: Exam Review Session
7 09/23 - Control Structures – Boolean, if Statements
8 09/30 10/04: Quiz switch Statement
9 10/07 10/07: Midterm, 10/10–11: Student Fall Pause while and do while Statements, TryParse
10 10/14 - Continued
11 10/21 10/25: Project static members
12 10/28 11/01: Exam Review Session
13 11/04 - for Statements
14 11/11 11/15: Quiz Arrays
15 11/18 11/22: Project -
16 11/25 11/27–28: Thanksgiving -
17 12/02 12/04: end of class Wrapping up
18 12/09 12/12 (8–10am): Final -

This schedule is subject to change and enhancements, but provide an indication of the pace, assignments, and major deadlines that you will need to plan for the semester.

Additional Material and Resources


Textbook is optional, and can be accessed for free at for Augusta University students. You should log-in using

Visual C# How to Program (6th Edition) by Paul J. Deitel and Harvey Deitel, Pearson, 2016, ISBN-10: 0134601548

It can be purchased through JagStore, select

(All the sections use the same textbook.) If you want to compare the price, go to

If you were to pick the 5th Edition, be aware of that the 6th edition takes into account the recent 6th specification of C#. As a consequence, it uses string interpolation instead of comma-separated list, it simplifies the use of the ToString method, and that it uses a different method to convert String to Integers.

Online Resources

Homework Assignments

Documents Shared in Class

Date Title
08/14 Study Guide Webpage, printable document
08/26 Datatypes Webpage, printable document, editable document
08/29 Project #1 Instructions Webpage, printable document, editable document
10/14 Project #2 Instructions Printable document
11/07 Project #3 Instructions Project Zipped
11/22 Mystery Word Project Project Zipped, Project developed in class
11/23 Project #3 Solution Project Zipped