a
Go to USC home page USC Logo Computer Science & Engineering
UNIVERSITY OF SOUTH CAROLINA
CSE Home Page | CSE Research | CSE Site Map | CSE Faculty
CSCE 240 section 001
Introduction to Software Engineering

Class locatio
n: 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
grizzlefarb
CSCE 240 web page
Text and Course Material
Text books:

Resources
Computing Platform: Vi, my favorite editor: Other recommended courses:
  • CSCE 215, Unix/Linux Fundamentals
Example source codes used in class.

Course Outline


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.

Tests and Assignments
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:
  1. Assignment I (5 points)
    1. Template for C++ main function
  2. Assignment II (10 points)
  3. Assignment III (15 points)
  4. Assignment IV (20 points)
  5. Assignment V (20 points)
  6. Assignment VI (30 points)
  7. Final Project (50 points)
Quizes:
  1. Our first quiz will be on 9/11/12 and it will cover everything up to (but not including) functions
Academic Honesty
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.
Proper Use of Computing Resources
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.

Attendance Policy
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.
Notices
  • Welcome