---
title: Principles of Computer Programming I -- CSCI 1301
subtitle: Fall 2018
author: Clément Aubert
lang: en
fontsize: 10pt
keywords:
- Computer Science
- Problem solving methods
- Syllabus
- Augusta University
- Bachelor of Science
documentclass: scrartcl
numbersections: true
papersize: letter
geometry: margin=1in
header-includes:
 - \newcommand{\website}{\href{http://spots.augusta.edu/caubert/pcp/}{spots.augusta.edu/caubert/pcp/}}
 - \usepackage{titling}
 - \makeatletter\def\@maketitle{\centering{\usekomafont{title}{\huge \@title\par}\vskip .3em \usekomafont{subtitle}{\@subtitle\par}\vskip .3em}}\makeatother
 - \addtokomafont{section}{\centering}
 - \usepackage{xcolor}
 - \definecolor{links}{HTML}{2e4683}
 - \hypersetup{colorlinks=true, allcolors=links}
 - \linespread{1.1}
 - \usepackage{lastpage}
 - \usepackage{fancyhdr}
 - \pagestyle{fancy}
 - \fancypagestyle{plain}{
        \lfoot{\website}
        \cfoot{}
        \rfoot{Page\ \thepage\ of\ \protect\pageref{LastPage}}
        \lhead{}
        \rhead{}
        \renewcommand{\headrulewidth}{0pt}
    }
 - \lhead{\textbf{Syllabus}}
 - \rhead{\thetitle}
 - \lfoot{\website}
 - \cfoot{}
 - \rfoot{Page\ \thepage\ of\ \protect\pageref{LastPage}}
 - \renewcommand{\footrulewidth}{0.4pt}
 - \renewcommand{\headrulewidth}{0.4pt}
---

## Quick Facts {-}

- Class meets TR, 10:00 [am]{.smallcaps}--11:15 [pm]{.smallcaps} in [Algood Hall](https://map.concept3d.com?id=824&mrkIid=268016#!m/268016) E-354,
- Lab. meets TR 11:30 [am]{.smallcaps}--12:20 [pm]{.smallcaps} in [Algood Hall](https://map.concept3d.com?id=824&mrkIid=268016#!m/268016) N-344,
- The instructor can be reached at [caubert@augusta.edu](mailto:caubert@augusta.edu "contact"), his office (AH E-128) hours are TR 8:20 [am]{.smallcaps}--9:50 [am]{.smallcaps}.
- You can [download this syllabus](index.pdf).

## Quick Links {-}

[Laboratory](lab/) • [Homeworks](#hw) • [Snippets of code](#snippets) • [Shared Documents](#doc_shared) • [Planned schedule](#schedule)

* * *

# Presentation

## 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.

<!--
Upon successful completion of this class, the student will:

1. Understand the fundamentals concepts of programming languages:
  - The existence of multiple paradigms
  - The role of compilation
  - What is the flow of control
  - Reading simple algorithms
2. Be able to write, compile and execute simple `C#` programs:
  - Use of Visual Studio's basic features (including debugging),
  - Perform standard Input / Output operations,
  - Declare and use user-defined variables and constants, using appropriate data-types,
  - Declare, define and call user-defined functions,
  - Write and evaluate expressions using arithmetic, relational and logical operators,
  - Define, create and manipulate arrays,
  - 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](#hw) 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.
Additional [resources](#resources) will be used on a regular basis.
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 the announcements periodically on the class website.
- Read this entire syllabus carefully.
- Participate actively in all class discussions.
- Do the homework assignements and projects wisely: read your notes before starting, make sure you understand it completely before considering it done.
- Come prepared and on time to classes, laboratory, 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.
- 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.
- 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](https://www.augusta.edu/registrar/withdrawal.php) before [midterm (i.e.,  Fri, March 2nd)](http://calendar.augusta.edu/site/academic/), but I [reserve the right to withdraw](http://catalog.augusta.edu/content.php?catoid=30&navoid=3543#Class_Attendance) a student that missed 10% of class time and half of the quizzes and tests.
- 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](https://www.augusta.edu/student-life/dean.php)) 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 will be placed onto the final's weight.

### During lecture

- No laptop or similar electronic device is allowed during the lectures. This policy will help you to [improve your grades](https://doi.org/10.1007/BF02940852), [increase memorization](https://doi.org/10.1177/0956797614524581) and [to be more respectful of your fellow students](https://doi.org/10.1016/j.compedu.2012.10.003). <!-- As [Yale suggests](https://ctl.yale.edu/Using-Electronic-Devices-in-Class) -->
- Late arrival and early departure are **not** allowed: arrange your schedule around to be on time, or don't come at all. This includes class sessions where quizzes are taken, but not class period where exams are taken.

### During laboratory

- 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](http://www.augusta.edu/registrar/). 
- Late arrival and early departure are tolerated, 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. For instance,
  - Is allowed:
     - Discussing general strategies and approaches
     - 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

<!--
Patricial Johann writes:

> Keep in mind that, unless cheating has occurred, it is extremely unlikely that any two people will develop the same solution to any given problem.
> For this reason, I will ask you to speak with me if any of your solutions very closely resembles those of another person.
> But since conversations about suspected cheating are rarely pleasant, I strongly urge you to abide by this Collaboration Policy, thereby putting neither yourself nor me in the difficult position of having to have such a conversation.
-->

# Practical Information

## Time and Place

- **Lecture**: Tuesday and Thursday, 10:00 [am]{.smallcaps}--11:15 [am]{.smallcaps} in [Algood Hall](https://map.concept3d.com?id=824&mrkIid=268016#!m/268016), E-354
- **Laboratory**: Tuesday and Thursday, 11:30 [am]{.smallcaps}--12:20 [pm]{.smallcaps} in [Algood Hall](https://map.concept3d.com?id=824&mrkIid=268016#!m/268016), N-344

## Instructor

|                |                                                                                                                                  |
|----------------|----------------------------------------------------------------------------------------------------------------------------------|
| *Name*         | Dr. Clément Aubert                                                                                                               |
| *Office*       | [Algood Hall](https://map.concept3d.com?id=824&mrkIid=268016#!m/268016) E-128                                                    |
| *Phone*        | 706-737-1566                                                                                                                     |
| *Email*        | [caubert@augusta.edu](mailto:caubert@augusta.edu)                                                                                |
| *Office Hours* | Tuesday and Thursday, 8:20 [am]{.smallcaps}--9:50 [am]{.smallcaps}  and by appointment                                           |
| *Institute*    | [School of Computer and Cyber Sciences](https://www.augusta.edu/ccs/)                                                            |

Feel free to drop by when I'm in my office, but be aware that I may be busy, too: if you have multiple questions or if your question requires more than 5 minutes to be exposed and answered, please arrange an appointment with me.

## Getting Help

<!--
Mitchell Williams is the tutor for Computer Science. You can find him in the [Academic Success Center](https://www.augusta.edu/afa/success-center/) on the first floor of [University Hall](http://myatlascms.com/map/?id=824&mrkIid=144096),

- Tuesday: 11:30 [am]{.smallcaps}-2:00 [pm]{.smallcaps}
- Thursday: 11:30 [am]{.smallcaps}-2:00 [pm]{.smallcaps}
- Friday: 10:00 [am]{.smallcaps}-1:00 [pm]{.smallcaps}

-->

I am committed to follow the [principles of Universal design](#universal-design) and try to construct a welcoming environment for every student.
I should be your first point of entry, but getting help from other persons is perfectly acceptable and encouraged if you feel the need to.

- For tutoring resources, consult [the tutoring center](https://www.augusta.edu/hull/studentservices/tutoring.php).
- The [Testing & Disability Services](https://www.augusta.edu/tds/) can help you--and me!--accommodate this class.
- The [Student Counseling & Psychological Services](http://www.augusta.edu/counseling/) (or "SCAPS") is here to "assist students with a variety of personal, developmental, and mental health concerns."

More precisely, the tutoring (from Monday, August 20th to Wednesday, December 5th) for this class takes place in the [ASC](https://www.augusta.edu/afa/success-center/) (located in [University Hall](https://map.concept3d.com/?id=824#!m/268018), suite 156), according to the following schedule:

_ | Mon. | Tue. | Wed. | Thu. | Fri.
--- | --- | --- | --- | --- | --- 
Amy S. | 12:00[pm]{.smallcaps}-1:30[pm]{.smallcaps} | 9:00[am]{.smallcaps}-10:30[am]{.smallcaps} | 12:00[pm]{.smallcaps}-1:30[pm]{.smallcaps} |  | 
Bobby M. |  | 12:00[pm]{.smallcaps}-2:30[pm]{.smallcaps} |  | 1:00[pm]{.smallcaps}-2:30[pm]{.smallcaps} | |
Bryana V. |  |  | 5:00[pm]{.smallcaps}-9:00[pm]{.smallcaps} | 3:30[pm]{.smallcaps}-5:00[pm]{.smallcaps} | 1:30[pm]{.smallcaps}-3:00[pm]{.smallcaps} | 
K.C. Powell |  | 3:00[pm]{.smallcaps}-6:00[pm]{.smallcaps} | 4:30[pm]{.smallcaps}-6:30[pm]{.smallcaps} |  | 

_(Updated 2018/10/05)_

Bryana will also be assisting us during the labs.
You can make appointments at <https://www.augusta.edu/afa/success‐center/tutoring.php> or just walk-in without an appointment for individual or group tutoring, and online tutoring through Cisco Spark is available.

## Grades

Students will be evaluated using four different types of evaluation:

1. Six [homework assignments](#hw) will be given during the course of the semester: they are not expected to be handed back, and won't be graded, but five quizzes (closed book and timed (5--20 min.)) with questions taken or inspired from those assignments will be given.

2. Three projects will be carried at home or during laboratory.

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

4. The final exam will take place during the [exam period](https://www.augusta.edu/registrar/documents/fall2018examschedule.pdf).

Refer to the [planned schedule](#scheldule) for precise dates.

Your grade will be computed as follows:

|
---|---
Quizzes (×5) | 10%
Projects (×3) | 10%
In-class Tests (×2) | 40%
Final Exam | 40%

using the following course grade scale:

| | | | | |
|:---:|:---:|:---:|:---:|:---:|
Below 65 | 65--70 | 70--79 | 80--89 | 90--100 |
**F** | **D** | **C** | **B** | **A** |


## Planned Course Schedule {#schedule}

| Week  | Date   | Topic  | Chapter | Note|
| ----- | ----   | ----------------   | --------     | ------------------------ |
| 1     | 08/13  | Syllabus, Introduction | 1.3--1.6 | - |
| 2     | 08/20  | C# and Visual Studio | 2  | [Homework #1 released](#hw) |
| 3     | 08/27  | First Programming Concepts | 3.1--3.8 | - |
| 4     | 09/03  | Continued | - | [Homework #2 released](#hw), **Thu. quiz #1**, 09/03 is Labor Day |
| 5     | 09/10  | Class, Objects, Methods | 4.1--4.5 |  **Project #1** |
| 6     | 09/17  | Continued | - | [Homework #3 released](#hw), **Thu. quiz #2** |
| 7     | 09/24  | Review session | - |  **Project #2** |
| 8     | 10/01  | Methods and Constructors | 4.8--4.9 | **Thu. Exam #1** |
| 9     | 10/08  | Operators | 3.8, 6.11 | [Homework #4 released](#hw), 10/08 is midterm,  10/11 -- 10/12 is Student Fall Pause|
| 10    | 10/15  | `while` and `if` Statements | 5.1--5.11  | **Thu. quiz #3** |
| 11    | 10/22  | `for` Statements | 6.1--6.4 |  [Homework #5 released](#hw), **Project #3**  |
| 12    | 10/29  | `do...while` and `switch` Statements  | 6.7--6.10  | **Thu. quizz #4** |
| 13    | 11/05  | Review Session | - | **Thu. Exam #2** |
| 14    | 11/12  | More About Methods | 7.1--7.5, 7.10--7.12, 7.18 | [Homework #6 released](#hw)  |
| 15    | 11/19  | Continued | - | 11/21 -- 11/23 is Thanksgiving|
| 16    | 11/26  | Continued | - | **Thu. quiz #5** |
| 17    | 12/03  | Wrapping up & Review Session | - | 12/05 is end of class|
| 18    | 12/10  | - | - | **Mon. 12/10,  11[am]{.smallcaps}-1[pm]{.smallcaps}: 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 {#resources}

## Textbook

Textbook is optional, and can be accessed at <https://www.safaribooksonline.com/library/view/visual-c-how/9780134628820/> for Augusta University students.

[*Visual C# How to Program*](http://www.deitel.com/Books/C/VisualCHowtoProgram6e/tabid/3680/Default.aspx) (6th Edition) by Paul J. Deitel and Harvey Deitel, Pearson, 2016, ISBN-10: 0134601548

<!--
Book can be purchased through [JagStore](http://www.jagstore.net/buy_courselisting.asp), select

* `JAGSTORE - 2018 SPRING-AUGUSTA UNIVERSITY`
    * `CSCI-CSCI`
        * `1301`
            * `A-Aubert, Clement`
-->

Sections above refer to the 6th edition, but using the 5th edition is also acceptable.
**If you were to pick the 5th Edition**, be aware of that the 6th edition takes into account the [recent 6th specification of C#](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/).
As a consequence, it uses [string interpolation](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/expressions#interpolated-strings) instead of comma-separated list, it simplifies the use of the [`ToString`](https://msdn.microsoft.com/en-us/library/system.object.tostring(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1) method, and that it uses a different method to convert `String` to `Integers`.
Also, the chapters in the [schedule](#schedule) above are for the 6th edition, there might be occasional mismatches with the 5th edition.

## Online Resources

- [Code examples from the textbook](http://deitel.com/bookresources/vcsharphtp6/examples.zip)
- [Dr. Michael Dowell](http://spots.gru.edu/mdowell/)--who teaches [CSCI 1302--Principles of Computer Programming II](http://spots.gru.edu/mdowell/csci1302.html)--lists [some interresting resources for `C#`](http://spots.gru.edu/mdowell/Resources/CSharp.html).
- [Reese Library's Cyber Resource Center](http://guides.augusta.edu/friendly.php?s=cyber)
- You can compile really simple `C#` projects online at [tutorialspoint.com/compile_csharp_online.php](https://www.tutorialspoint.com/compile_csharp_online.php)
- All the shortcuts for all the versions of Visual Studio are listed at <http://visualstudioshortcuts.com/>.


## Homework Assignments {#hw}

Check the [schedule](#schedule) for more information.

- [Homework #1](hw/01.pdf)
- [Homework #2](hw/02.pdf)
- [Homework #3](hw/03.pdf)
- [Homework #4](hw/04.pdf)
- [Homework #5](hw/05.pdf)
<!--
- [Homework #6](hw/06.pdf)
-->

## Snippets of Code {#snippets}

None at the moment, except for those shared during [the lab](lab/).

## Documents Shared in Class {#doc_shared}

<!--
None at the moment.
-->

| Date | Title | |
| --- | --- | --- |
| 08/30 | Datatypes |  [Webpage](shared/datatypes/), [printable document](shared/datatypes/index.pdf), [editable document](shared/datatypes/index.docx) |
| 09/25 | Study Guide | [Webpage](../../../general/study_guide), [printable document](../../../general/study_guide/index.pdf) |
| 11/01 | Project #3 | [Printable document](shared/project3.pdf) | 

# Legal and Recommendations

## Academic Integrity

The University's [Student Code of Conduct](https://www.augusta.edu/student-life/conduct/documents/aucodeofconduct201718.pdf), the [student's manual](https://www.augusta.edu/student-life/documents/201718studentmanualfinal.pdf), as well as the [academic regulations](http://catalog.augusta.edu/content.php?catoid=25&navoid=3206) and all [applicable policies](https://www.augusta.edu/its/policies/) are supposed to be known by the students and will be enforced.

Section 5.2, Academic Conduct of the [student's manual](https://www.augusta.edu/student-life/documents/201718studentmanualfinal.pdf) defines precisely what kind of collaborations are acceptable.
As long as you don't lie, cheat, plagiarize, assist others or being assisted by others without authorization, we should not need any of that.
If you are unsure about whether or not certain kinds of collaboration are permissible, please ask me.

## Universal Design

I am committed to the founding principles of [Universal Design](https://en.wikipedia.org/wiki/Universal_design), and to make [my lecture accessible to every one](https://www.augusta.edu/tds/documents/testing_docs/falculityguide1.pdf).
Concretely, that means that I'm not requiring you to use a particular Operating System, that I always try to give the information repeatedly, and using multiple channels, that I am available over the phone, email, or in my office.
If you are registered with [Testing and Disability Services](https://www.augusta.edu/tds/), please see me at your earlier convenience  to discuss accommodations.

## Campus Carry Legislation

Please be aware of the [USG guidance on House Bill 280](http://www.usg.edu/hb280).

# Miscellaneous

 * Reservation of rights: I reserve the right to change this syllabus without limitation and without prior notice. If I do substantially modify any item or policy, I will notify you during a lecture, or send an e-mail to your `augusta.edu` e-mail account.
 * Download [a `pdf` version](index.pdf) of this page. 
 * Contact: [caubert@augusta.edu](mailto:caubert@augusta.edu)
 * Created with [debian](https://www.debian.org/), [pandoc](https://pandoc.org/) and [latex](https://www.latex-project.org/) ; [HTML5](https://validator.w3.org/nu/?doc=http%3A%2F%2Fspots.augusta.edu%2Fcaubert%2Fteaching%2F2018%2Ffall%2Fcsci1301%2F) and [CSS3](https://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fspots.augusta.edu%2Fcaubert%2Fteaching%2F2018%2Ffall%2Fcsci1301%2F&profile=css3svg&usermedium=all&warning=1&vextwarning=&lang=en) valid.
<!--,
 [HTML5](https://validator.w3.org/check/referer) and [CSS3](https://jigsaw.w3.org/css-validator/check/referer) valid,
https://stackoverflow.com/q/46982187/2657549
https://webmasters.stackexchange.com/q/109954/54133
-->
 * All my documents are under [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). Sources are available upon motivated request.
 * You will need a `pdf` reader to consult some of the documents: I recommend choosing [an open-source `pdf` reader](https://pdfreaders.org/).
