Principles of Computer Programming I – CSCI 1301

Fall 2020

Clément Aubert

October 20, 2020

Quick Facts



This is Principles of Comp Program I - 13167 - CSCI 1301 - A and Principles of Comp Program I - 13172 - CSCI 1301 - B, an undergraduate semester class of 4.000 credits, whose pre-requisite is a minimum grade of C in one of the following classes:

We will be using an asynchronous split model:

We will enforce the University’s regulations on social distancing and face covering. We will be primarily using material that I will be sharing with you, that you will be able to download for off-line consulting in multiple formats. You will either need

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.

Planned Course Schedule

The week starts on Monday.

Week Date Note Topic
1 08/10 - Syllabus, Introduction
2 08/17 - Reserved Words and Variables
3 08/24 08/25 : Quiz (A), 08/27 : Quiz (B) Datatypes and Operations
4 08/31 - Casting and Reading from the User
5 09/07 09/07: Labor Day, 09/10: Project (A & B) Intro to Object-Oriented Language
6 09/14 09/17: Midterm Exam (B) Advanced Methods / Exam
7 09/21 09/22: Midterm Exam (A) Exam / Advanced Methods
8 09/28 - Constructors, Overloading and ToString
9 10/05 10/06: Quiz (A), 10/08: Quiz (B) Control Structures – Boolean and if Statements
10 10/12 - switch Statements
11 10/19 10/22: Quiz (B) while Statements
12 10/26 10/27: Quiz (A) for Statements
13 11/02 11/03: Exam (A), 11/05: Exam (B) -
14 11/09 - Arrays
15 11/16 11/20: Project (A & B) -
16 11/23 11/23–27: Thanksgiving -
17 11/30 12/8 (11:00am–1:00pm): Final -

Additional Material and Resources

Class Material

Week 1

Ressource pdf html docx Comment
Lecture notes Syllabus Syllabus Simply read the syllabus!
Lab Lab #1 Lab #1 Lab #1 Setting-up your computer

Week 2

Ressource pdf html docx Comment
Lecture notes Class #2 Class #2 Class #2 Introduction, first program(s) and escape sequences
Lab Lab #2 Lab 02 Lab 02 Creating your own solution, first messages
Homework Homework #1 Study it before the first quiz, on 08/25 (A), 08/27 (B)

Week 3

Ressource pdf html docx Comment
Lecture notes Class #3 Class #3 Class #3 Datatypes and variables
Lab Lab #3 Lab 03 Lab 03 First variable manipulations
Homework Homework #2 Study it before the Midterm exam
Datatypes in C# Cheatsheet Cheatsheet Cheatsheet A brief cheatsheet on C#’s datatypes

Week 4

Ressource pdf html docx Comment
Lecture notes Class #4 Class #4 Class #4 Operations, conversions and reading from a user
Lab Lab #4 Lab 04 Lab 04 Reading from the user, operations on numbers, casting
Project 1 Project #1 Project #1 Project #1 To be completed before 09/10

Week 5

Ressource pdf html docx Comment
Lecture notes Class #5 Class #5 Class #5 Converting a string into an int, first class
Lab Lab #5 Lab 05 Lab 05 Reading an int from the user, using a pre-defined class
Milestone 1 Milestone #1 Milestone #1 Milestone #1 A brief review of what happened so far

Week 6

Ressource pdf html docx Comment
Lecture notes Class #6 Class #6 Class #6 UML Diagrams, More on the Rectangle class, Scope, Constants and Format Specifiers
Lab Lab #6 Lab 06 Lab 06 Designing and implementing classes from scratch.
Homework Homework #3 Study it before the Midterm exam!
Project 1 Solution Project #1 Project #1 Project #1 A possible solution to the first project, and the rubric.

Week 7

Ressource pdf html docx Comment
Exam Exam #1 Exam #1 Exam #1 Some comments on the first exam, and the exams for both sections A and B available to download.

Week 8

Ressource pdf html docx Comment
Lecture notes Class #8 Class #8 Class #8 Constructor, Default values, Signature, Overloading and ToString method.
Lab Lab #8 Lab 08 Lab 08 Designing and implementing classes using custom constructors and ToString methods.

Week 9

Ressource pdf html docx Comment
Lecture notes Class #9 Class #9 Class #9 Controlling the flow of a program using conditions and if-else statements.
Lab Lab #9 Lab 09 Lab 09 Practising with bool and if statements, first problems.
Milestone 2 Milestone #2 Milestone #2 Milestone #2 Reviewing classes.
Homework Homework #4 Homework on conditions, if and switch.

Week 10

Ressource pdf html docx Comment
Lecture notes Class #10 Class #10 Class #10 if-else-if and switch statements.
Lab Lab #10 Lab 10 Lab 10 From if to switch and reciprocally.
Quiz 2 Quiz #2 Solution and comments on Quiz #2

Week 11

Ressource pdf html docx Comment
Lecture notes Class #11 Class #11 Class #11 Increment, Decrement, while loops and user-input verification.
Lab Lab #11 Lab 11 Lab 11
Homework 4’s solution Homework #4’s solution Solution and comments on the first part of Homework #4
Homework 5 Homework #5 Homework on switch, increment, decrement, loops and user-input validation.


Textbook is optional, and can be accessed at for Augusta University students, once you’ve created an account on with your email address.

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

This book can be purchased through JagStore, select

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


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 with questions taken or inspired from those assignments will be given. Those quizzes are closed book and timed (± 10 min.).

  2. Projects will be carried at home. “Partial feedback” will be possible, and encouraged: the students are allowed to submit their work as many times as they want before the dead-line, and to get feedback on it from their instructor, Dr. Aubert.

  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, and to Brightspace/D2L to get your current grades.

Your grade will be computed as follows:

Quizzes (×3) 10%
Project (×2) 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

Refer to the Course Requirements for information about late or missed evaluations.

Format, Teaching Philosophy & Requirements

Format and Procedures

Lectures are devoted to general explanations of the concepts and ideas underlying the topic at stake. All practical work, coding, programming, testing, etc. will be carried at home or in the lab portion if there is one.

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 and exams. Active and relevant participation during the lectures 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!

You can have a look at my Quick Reflexion on Course Evaluations, that contains my previous student evaluations, and at my “Definitive” Study Guide.

Course Requirements

In case of conflict, the proper etiquette is to reach out to me, and if no solution can be found, then we should turn to our undegraduate study director Anthony Lawrence or to the dean of Student Life to help as an ombudsman.

Practical Information

Lab Space

For this class, you will need to access a computer. You can either:

If you need room to engage in a synchronous class, you can go to

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:

ACM Club

The Augusta University chapter of the A.C.M is one of the university’s best resources for Computer Science, Information Technology and Cyber Security students. It provides a platform to network with other students in similar majors; presenting countless opportunities to expand not only the people you know, but also a fantastic place to learn and ask questions. Because of Covid-19, we will only be holding meetings virtually in our Discord server. If you are interested in joining these meetings, or you have any questions about Computer Science or Cyber Security, feel free to join through our link.


The University has implemented specific requirements to minimize exposure to COVID-19 and support the safety of all during the pandemic. These requirements apply to all persons on campus (faculty, staff, students, and visitors). These requirements are subject to change. Visit and for the latest details.

Face Coverings

All persons must wear an appropriate face covering while inside campus facilities/buildings, including classrooms, regardless of the size of the space. The face covering must fit closely and fully cover the nose and mouth. Such coverings must be used in addition to—not as a substitute for—social distancing. If a medical condition prevents you from wearing a face covering, you may provide documentation to request an accommodation through Testing and Disability Services (706-737-1469 or ), and must show proof of the accommodation when asked.

Social Distancing

All persons must maintain at least six (6) feet of separation from others. This distance should be maintained at all times and in all spaces, indoors or out, including classrooms, except where closer proximity is brief and logistically unavoidable (e.g. elevators, hallways). Keep your distance, do not gather in groups, and avoid crowded spaces. Sit only in designated areas in classrooms or similar spaces, and do not move seats or desks in classrooms or common spaces.

Proper Hygiene

All persons should wash hands thoroughly and often with soap and water (for at least 20 seconds) or hand sanitizer (containing at least 60% ethanol or 70% isopropanol). Avoid direct contact with high touch surfaces (doorknobs, light switches, campus equipment, devices, vending machines, etc.) and avoid sharing devices, books, pens, or other learning aids with others.

Personal Disinfection Supplies

All persons are responsible for disinfecting their own workspaces before and after use, including desktops, seats, and any shared equipment. Students, faculty, and staff are responsible for providing their own supplies for this purpose. Used supplies should be disposed of properly.

If you notice an empty hand sanitizer dispenser, or a missing disinfectant spray bottles, you can call 706-721-5024 to replace COVID prevention items.

COVID-19 Reporting

Your role is critical to protect the safety of our entire AU family. Any student who is exhibiting symptoms of COVID-19 may be required to leave class and seek medical attention at Student Health Services (at 706-721-3448) immediately. Do not come on to campus if you have any symptoms of COVID-19.

Where to Go for More Information About COVID-19?