Course staff & office hours
Instructor: | Jesse Tov | jesse@eecs |
Mudd 3510 | Gladly by appointment |
---|---|---|---|---|
TAs: | John Nguyen | jnguyen@u
| Tech M338 | Mon. 2–4 PM |
Yingliao Wang | yingliaowang2020@u
| Tech M338 | Tue. 4–6 PM |
General information
EECS 230 teaches foundational programming skills with an emphasis on professionalism. In order to learn to program, we need a language; our language will be C++, but our focus will be on design and pragmatics, not the language itself. Topics include expressions, types, functions, branches and iteration, user-defined types, data hiding, source control, and testing.
Prerequisites
This course assumes nothing beyond basic computer literacy.
Exams
We will have two in-class examinations:
- Thursday, February 7
- Tuesday, March 12
There will be no final exam.
Resources
Books
Required textbook:
- Bjarne Stroustrup, Programming: Principles and Practice, Second Edition.
Highly recommend optional book:
- Scott Meyers, Effective Modern C++.
Software
The course uses C++ 2014, the most recent version of the C++ programming language that is widely supported; earlier versions of C++ may not work for all the code that we write. Setting up your development environment is somewhat involved, so the first lab will guide you through it.
Online resources
- The EECS 230 C++ Style Manual
- Piazza discussion board—ask questions here!
- cplusplus.com, a comprehensive C++ standard library reference
Class schedule
This table specifies the course schedule; topics are tentative.
January | ||
---|---|---|
Tu | W | Th |
8 Introduction [slides] “What Software Is Made Of” | 9 Tool setup [lab] | 10 Expressions, functions, and the Design Recipe [code] |
15 Designing and Testing Functions [code…] Homework 0 | 16 Some simple functions [lab] | 17 Methods […code…] |
22 Structs and enumerations […code] Homework 1 | 23 The command line and Git [lab] | 24 Lists and iteration [code] |
29 The babbler [code…] | 30 – cold – | 31 More babbling […code…] Homework 2 |
February | ||
Tu | W | Th |
5 Tokenizing and printing […code] | 6 Fish practice [lab] | 7 First exam |
12 More list algorithms [code…] | 13 Sock problems | 14 Even more list algorithms […code] Homework 3 |
19 Hierarchical modeling [code…] | 20 TBD | 21 Hierarchical modeling, continued […code] |
26 Binary trees [code] | 27 TBD | 28 TBD |
March | ||
Tu | W | Th |
5 TBD | 6 TBD | 7 TBD |
12 Second exam | 13 No meeting | 14 Exam return / TBD |
Lab sections
Wed | 2 PM | Annenberg G30 | John | jnguyen@u
|
---|---|---|---|---|
3 PM | Tech LG72 | Yingliao | yingliaowang2020@u
| |
4 PM | Tech LG72 | Yingliao | yingliaowang2020@u
|
Course policies
Collaboration and academic integrity
You may not collaborate with anyone on any of the exams. You may not use any electronic tools, including phones, tablets, netbooks, laptops, desktop computers, etc. If in doubt, ask a member of the course staff.
Some homework assignments will be completed with an assigned partner or team. You must collaborate with your assigned partner or team, as specified, on homework assignments. You may request help from any staff member on homework. (When you are working with a partner, we strongly recommend that you request help with your partner.) You may use the Piazza bulletin board to ask questions regarding assignments, so long as your questions (and answers) do not reveal information regarding solutions. You may not get any help from anyone else on a homework assignment; all material submitted must be your own. If in doubt, ask a member of the course staff.
Providing illicit help to another student is also cheating, and will be punished the same as receiving illicit help. It is your responsibility to safeguard your own work.
Students who cheat will be reported to the appropriate dean.
If you are unclear on any of these policies, please ask a member of the course staff.
Homework
You should submit your homework according to the instructions on the web page for the individual assignments. See here for general instructions.
Late work
Late work will not be accepted.
Grades
Your grade will be based on your performance on seven or eight programming assignments and two midterm exams. There will be no final exam.
Each exam counts for 15% of your grade. The balance is divided equally among the homework assignments. Your lowest homework will be dropped and not counted toward your grade, except that the final homework assignment or project is not eligible for dropping.
The mapping of raw point totals to letter grades is at the discretion of the instructor.