Introduction to Programming
Section 01 Class: MWF 11–11:50am, LSB 312
Lab: T/Th 2–3:50pm, LSB 312 with Prof. Diehl
Class Instructor: Henry Feild, Ph.D.
Prof. Feild's Office Hours: MTWRF 10–10:50am in LSB 113.
Prof. Diehl's Office Hours: TR 11am–12:30pm, F 1–2:30pm in LSB 115.
Tutoring Hours: In the Tutoring Center (LIB), ask for...
- Ross T.: Tue. 12–1pm, Thur. 4–7pm
- Karen L.: Mon. 2–4pm, Tue. 5:30–6:30pm, Thur. 5–6pm
Schedule
Programming assignments are due before the beginning of class on Monday of the week listed. Quizzes and homeworks will also be assigned weekly; see the Assignments section for details.
In case you are curious, this page is set up to remember what checkboxes you click provided you access this page from the same browser and computer (and don't clear your browser cache). So, check off assignments as you do them to keep track of what you've done!
Week | Dates | zyBook | Feild Guide / Topics | Lab | Projects/exams |
---|---|---|---|---|---|
1 | Jan. 23, 25, 27 | Ch. 1 |
Basics, Planning |
Lab 0 | |
2 | Jan. 30, Feb. 1, 3 | Ch. 2 |
Variables, IO |
Lab 1 | |
3 | Feb. 6, 8, 10 | Ch. 3 | Branching | Lab 2 | |
4 | Feb. 13, 15, 17 | Ch. 4 | Loops | Lab 3 | |
Feb. 20 | No class—Presidents day | ||||
5 | Feb. 22, 24 |
Ch. 5, Ch. 6 |
Arrays | Lab 4 | PA1 |
6 | Feb 27, Mar. 1, 3 | Lab 5 | Exam 1 on Fri. 3/3 | ||
7 | Mar. 6, 8, 10 | Ch. 7 | Functions | Lab 6 | |
– | Mar. 13–17 | No classes—Spring break | |||
8 | Mar. 20, 22, 24 | Lab 7 | |||
9 | Mar 27, 29, 31 |
Ch. 8, Ch. 9 |
Structs and classes | Lab 8 | PA2 |
10 | Apr. 3, 5, 7 | Lab 9 | Exam 2 on Fri, 4/7 | ||
11 | Apr. 10, 12, 14 | Ch. 10 | File IO | Lab 10 | |
– | Apr. 17 | No class—Patriots day | |||
12 | Apr. 19, 21 |
Searching and sorting |
Lab 11 | ||
13 | Apr. 24, 26, 28 | Python | Lab 12 | PA3 | |
14 | May 1, 3, 5 | Review | Lab 13 | ||
– | May 8 | Final Exam in LSB 128, 10:15am—12:15pm |
Assignments
Quizzes
Most Mondays will begin with a short quiz based on the homework and material from the previous week. Paper notes may be used, but no electronic resources. Not all quizzes will necessarily be graded.
Homeworks
Each ZyBook chapter contains two types of interactive activities: participation activities and challenge activities. You should complete the participation activities as you read the material, and this should be done before the first lecture on the material (generally before Monday's class of the week the material is listed for). The purpose of the challenge activities is to demonstrate that you understand the chapter and lecture content and will generally be due before the first class of the next topic.
Labs
Labs are short assignments that should only take a couple hours and are done in pairs. In general, attending and engaging in lab will earn you full points.
- Lab 0: Getting set up
- Lab 1: Designing and pseudo coding
- Lab 2: Interacting with users
- Lab 3: Guessing game
- Lab 4: Guessing game with Loops
- Lab 5: Electronic Rolodex
- Lab 6: Gameboards with 2D arrays
- Lab 7: Functions
- Lab 8: Refactoring
- Lab 9: Structs and classes
- Lab 10: File IO
- Lab 11: Sorting
- Lab 12: Python
- Lab 13: Programming proficiency
Programming Assignments
Programming assignments are larger assignments you do out of the classroom on your own (not with other students, not from sources found on the Internet). Each page linked to below has pointers to where submissions should be uploaded and the rubrics that will be used to grade them.
(Back to top)Notes
Code style
There are many ways to write and format the same code. In the zyBook readings, a particular set of rules are followed, which can be seen in their style guidelines here. While this largely overlaps with the conventions I use in class (which are outlined in my style guidelines), there is one major difference: the zyBook authors start function names with upper case letters, while I use lowercase. Please use follow my conventions on programming assignments and exams.
Resources
- How not to ask a question
- Setting up a C++ compiler
- Setting up Sublime Text (a quicker and free alternative is to use Atom, a very similar text editor)
- Settings up ConEmu (a console for Windows)
- The command line interface
- Style guidelines