CSCE 240 section 001 Introduction to Software Engineering
Class location: SWGN 2A31
Lab lecture location: SWGN 1A39 (usually on Fridays)
Class meeting
time: T, Th 3:30-4:45
Office hours: MWF 9:00-10:00 or by appointment
|
Homayoun
Valafar Associate Professor
Department of
Computer Science and
Engineering
University of South Carolina
Columbia, SC 29208 |
3A49
Swearingen
Engineering Center
homayoun@cec.sc.edu
803-777-2404(voice)
803-777-3767(fax)
Office hours: MWF 10:00-11:00
|
|
|
CSCE
240 web page |
|
|
Text
books:
Computing
Platform:
- Linux/Unix
- CygWin: a Linux-like environment for
Windows.
Vi, my
favorite
editor:
- Vi for windows:
- Vi tutorials:
Other recommended courses:
- CSCE
215, Unix/Linux Fundamentals
Example
source codes used
in class.
Course
Objectives:
- Demonstrate mastery of object oriented
programming concepts: inheritance, polymorphism, and operator
overloading. {tests}
- Demonstrate mastery of pointers,
iterators,
memory management including object creation and destruction, and
parameter passing in C++ and Java. {tests}
- Develop C++ code in a Unix Environment
utilizing the C preprocessor, the debugger (gdb), make, source code
revision systems (sccs), utilities such as those for
transferring
files to and from Unix and Windows. {programming assignments, tests}
- Demonstrate mastery of template functions
and
classes; understand underlying implementation of major containers in
the STL. {tests}
- Develop object oriented models using UML
{projects, tests}Unix Programming Environment: Unix tools, C
preprocessor, Make, Shell, I/O redirection, debugging.
- Complete course schedule
The
following
topics will be presented :
- Unix Programming Environment: Unix tools,
C
preprocessor, Make, Shell, I/O redirection, debugging.
- Pointers: Pointer manipulation, functions
and
function pointers, virtual functions.
- Basic class management: constructors,
destructors, data hiding, container classes.
- Memory management: object creation and
destruction, memory leak.
- Advanced C++ features: operator
overloading,
iteration, special containers, inheritance, code reuse, multiple
inheritance, virtual functions, polymorphism, templates, template
libraries.
- Introduction to UML and object oriented
modeling: use-case models, object identification, specifying static
behavior, activity diagrams, collaboration diagrams and sequence
diagrams, specifying relationships: generalization/specialization,
aggregation, associations including multiplicity and roles, dynamic
behavior using state diagrams.
Note: Course contents is subject to change without previous notice.
The grade for this course will tentatively be assigned based on the
following:
|
Total points |
Quizes
|
50
|
Project 1
|
5 |
Project 2
|
10 |
Project 3
|
15 |
Project 4
|
20 |
Exam I
|
50 |
Project 5
|
20 |
Project 6 |
30 |
Project 7
|
30
|
Final Exam/Project
|
50 |
Total
|
280
|
Letter grades will be assigned based on straight scale unless indicated
otherwise.
Programming Assignments:
- Assignment
I (5 points)
- Template
for C++ main function
- Assignment II (10 points)
- Assignment III (15 points)
- Assignment IV (20 points)
- Assignment V (20 points)
- Assignment VI (30 points)
- Final Project (50 points)
Quizes:
- Our first quiz will be on 9/11/12 and it will cover everything up to (but not including) functions
Assignments and examination work are
expected to
be the sole effort
of the student submitting the work.
Students are expected to follow the Code
of
Student Academic Responsibility
found in the Carolina
Community
and should expect that every instance of a
suspected violation
will be reported.
Students found guilty of violations of the Code will be subject to
academic
penalties under the Code in addition to whatever disciplinary
sanctions
are applied.
There seems to be a widespread
misunderstanding of
the concept
of "your own work."
In addition to the USC Code, some good sources of text for what is or
is not acceptable behavior are the academic
honesty policy statement from Harvey Mudd College, the policy
statement from Professor Steven Huss-Lederman at Beloit
College,
and the text of part of the collaboration
policy statement from MIT.
A sample first-offense admission can be
found at admission
On the nature of academic work
Students might also find relevant an essay
from a professor at Georgia Tech.
Students are expected to be aware of the university
policy
on use of computing resources, including the Student
Guidelines for Responsible Computing,
as well as the college
and departmental
policies on proper use of computing resources.
Every instance of a suspected violation will be reported.
Students should be aware that neither the instructor nor the
department are responsible for making alternative arrangements
should improper use leading to revocation of access to departmental
or college resources make it impossible for you to complete the
programming assignments on time.
Although attendance is not required for this course, it is highly encouraged.
Positive and informative interaction in class is likely to demonstrate
your skills that maybe useful in cases of grade ambiguity.
|
|
|
|