syllabus: overview
Catalog Description
Object-oriented languages and systems built with object-oriented software components. Object-oriented design methodologies, such as CRC cards and the Unified Modeling Language (UML). Requirement analysis. Design patterns. Agile methods. Object-oriented programming environments, such as the Eclipse platform. Platforms for Web services, such as J2EE. Project required.
Prerequisites
- CSC 316:Data Structures for Computer Scientists
Learning Objectives
The goals for this course are to ...
- learn to design programs with classes that work together with maximum cohesion and minimum coupling,
- learn how design methodologies, such as CRC cards, and the Uniform Modeling Language, can be used to express the interaction between program components.
- understand the differences between statically and dynamically typed object-oriented languages, and be able to program in both,
- learn how an understanding of software design patterns can be used to structure programs so that they are robust and extensible, and
- appreciate how programs can be restructured ("refactored") to improve their adherence to the principles of good design.
The Staff
instructor
Edward F. Gehringer
Phone: 919-515-2066
Office: 2298 EB II
Office hours:
Thurs. 10:30-11:30 AM
efgncsu.edu
teaching assistant
Jialin Cui
Phone:
Office:
Office hours:
TBA
jcui9ncsu.edu
IM:
teaching assistant
Haoze Du
Phone:
Office:
Office hours:
TBA
hdu5ncsu.edu
IM:
teaching assistant
Anvitha Gutha
Phone:
Office:
Office hours:
TBA
aguthancsu.edu
IM:
teaching assistant
Vihar Shah
Phone:
Office:
Office hours:
TBA
vshah23ncsu.edu
IM:
Text
REQUIRED
Engineering Software as a Service
by Armando Fox and David Patterson
Publisher: CreateSpace
Textbook Paperback, Kindle, iBooks, or Nook edition
Pub. Date: 2nd ed. beta, 2021
Important dates
- First class: Friday, Jan. 10
- Last face-to-face class: Friday, Apr. 11
(however, there in a quiz on online videos due on Apr. 17) - No class: Friday, March 14 (spring break)
Friday, Apr. 18 (Good Friday)
- Last day to drop or change to audit: Monday, Mar. 3
- For more details, see the academic calendar.
Class meetings
Friday, 1:30-4:15 PM in EB II 1230
Incremental-learning requirement
CSC/ECE 517 will be a hybrid course this semester, with some material being presented in class, synchronously online, and some presented asynchronously online. Educational research shows that students learn best incrementally, rather than by studying large amounts of material right before exams. Incremental learning can only take place when students concentrate on each lesson when it is presented.
Accordingly, all students in CSC/ECE 517 are required to do two things:
- Pass a quiz over the online material for the week by Thursday evening before class. A passing score on a quiz is a score of at least 80%.
- Attend at least 9 out of the 11 (non-exam) weeks of class (at least 6 of which must be attended in the classroom). Attendance credit will be given for responding intelligently to the majority of in-class response Google forms during class. The deadline for responding is 6 PM on the day of class for on-campus students, and 6 days after the class for off-campus students (e.g., class on Friday means you need to comment by the following Thursday).
There are thus 23 times during the semester that incremental-learning credit must be earned: 9 of 11 class sessions, plus 14 of 15 online lessons. Each one of them is worth 5 semester points. Thus, there are a maximum of 45 points for class attendance, and a maximum of 70 points for quizzes.
Audit requirement
Pass half of the online quizzes. Also, do one homework, or take one test (not quiz), before spring break and score at least 50%; then do one homework, or take one test, after spring break and score at least 50%. You can choose which homework or test to take, and if you take one and fail to score 50%, you can try another. If you complete this requirement, you will receive a grade of AU. If you do not fulfill this requirement, your grade will be NR (no recognition).