EECS 230: Programming for Engineers

Syllabus – Winter 2019

Tech Lecture Room 5, TuTh, 12:30–1:50 PM

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:

There will be no final exam.

Resources

Books

Required textbook:

Highly recommend optional book:

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

Class schedule

This table specifies the course schedule; topics are tentative.

January
TuWTh
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
TuWTh
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
TuWTh
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.