courses+outcomes+assessments 1
TRANSCRIPT
-
8/21/2019 Courses+Outcomes+Assessments 1
1/64
1
Computer Science Course Descriptions
including
Course Outcomes
Assessment Plans
Course Improvements
-
8/21/2019 Courses+Outcomes+Assessments 1
2/64
2
COURSE DESCRIPTION
Department and Course
Number
Com S 227 Coordinators
Fall 2008
James Lathrop, Steve
Kautz, Pavan Aduri
Course Title Introduction to object-oriented Programming Total Credits 4
Current Catalog Description(3-2) Cr. 4. F.S. An introduction to object-oriented design and programming
techniques. Symbolic and numerical computation. Recursion and iteration. Modularity, procedural and data
abstraction, specifications and subtyping. Object-oriented techniques. Imperative programming. Emphasis
on principles of programming and object-oriented design through extensive practice in design, writing,running, debugging, and reasoning about programs. This course is designed for majors. Credit may not be
applied toward graduation for both 207 and 227.
Textbook James Cohoon and Jack Davidson,Java 5.0 Program Design
Coordinators James Lathrop, Senior Lecturer,Steve Kautz, Lecturer
Pavan Aduri, Associate Professor
Course OutcomesAt the end of Com S 227 the students should be able to:
Write, debug, and document well-structured Java applications of up to 500 lines Implement Java classes from specifications Effectively create and use objects from predefined class libraries Understand the behavior of primitive data types, object references, and arrays Use decision and iteration control structures to implement algorithms Write simple recursive algorithms Use interfaces, inheritance, and polymorphism as programming techniques Use exceptions
Relationship between Course outcomes and Program outcomes: B, C
Prerequisite (s) by TopicHigh school algebra and geometry
Major Topics covered in the Course
Managing files; using an integrated development environment Objects, classes, methods, fields, and constructors Primitive types and references Arithmetic expressions, String operations Overview of the software engineering process
Unit testing with the JUnit framework Conditional statements and Boolean expressions Iteration Basic console and text file I/O One-and two-dimensional arrays Using a symbolic debugger Designing with interfaces Inheritance, polymorphism, abstract classes Exceptions and exception handling
-
8/21/2019 Courses+Outcomes+Assessments 1
3/64
3
Recursion Searching and sorting
Laboratory exercises
A. Programming projects
Normally five individual-effort projects are assigned throughout the semester, with increasing levels of
difficulty.
B. Laboratory activities
1. Files; the Eclipse IDE2. Java API documentation; the Javadoc tool; creating a simple class3. String manipulation; evaluating expressions4. Interacting classes; Boolean expressions5. Command-line tools and shell commands6. Code style and formatting7. The Eclipse debugger8. Exception handling; File I/O9. JUnit10. Inheritance and polymorphism; creating Exception types11. Recursion
Assessment Plan for the Course
Outcome How Measured When Measured
Improvements
Identified
Improvements
Implemented
Write, debug,
and documentwell-structured
Javaapplications of
up to 500 lines
(B, C)
Evaluation of
programming projects
Every semester Students tend to
postpone reviewingand learning new
material until justprior to project
deadlines.
Implement a series of
structured hands-onlaboratory exercises for
new and/or difficulttopics to ensure
students absorb them
well before needed forprojects.
Implement Java
classes from
specifications
(C)
Exams; evaluation of
programming projects
Every semester Students fail to
grasp the role of
specifications in
implementing
components of asystem.
Make sure that one or
more of the
programming projects
involves integration of
student-implementedclasses with existing
libraries.
Use interfaces,inheritance, and
polymorphism
as programmingtechniques (B)
Performance ofcontinuing students at
start of Com S 228;
exams; evaluation ofprogramming projects
Every semester Students fail tocomprehend the
use of interfaces in
a design.
Include laboratoryexercises using
interfaces and
inheritance. Ensurethat one or more of the
programming projects
requires students to
program withinterfaces.
-
8/21/2019 Courses+Outcomes+Assessments 1
4/64
4
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description of
how this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomesand Assessment Plan.
Curriculum Category Content (Semester Hours)
CORE ADVANCED CORE ADVANCED
Algorithms
Computer Organization and
Architecture
Data Structures
Concepts of Programming
Languages 2
Software Design 2
-
8/21/2019 Courses+Outcomes+Assessments 1
5/64
5
COURSE DESCRIPTION
Department and Course
Number
Com S 228 Course Coordinator
Fall 2008
James Lathrop
Course Title Introduction to Data Structures Total Credits 3
Current Catalog Description (3-1) Cr. 3. F.S. Prereq: C- or better in 227, credit or enrollment in Math 165. An
object-oriented approach to data structures and algorithms. Object-oriented analysis, design, and programming, withemphasis on data abstraction, inheritance and subtype polymorphism. Abstract data type specification and
correctness. Collections and associated algorithms, such as stacks, queues, lists, trees. Searching and sorting
algorithms. Graphs. Data on secondary storage. Analysis of algorithms. Emphasis on object-oriented design, writingand documenting medium-sized programs. This course is designed for majors.
Textbook William J Collins,Data Structures and the Java Collections Framework, Second Edition, McGraw Hill2005. ISBN: 0-07-282379-8
Coordinators James Lathrop, Senior Lecturer
Course Outcomes At the end of ComS 228, the students should: be able to write well-structured object-oriented programs of up to 1000 lines of code; understand type safety and use of generic types to enforce type safety; be able to write programs and class libraries given a specification; understand Big-O notation and apply it to simple methods, including methods that utilize complex loops
and recursion;
analyze run-time execution of previous learned sorting methods, including selection and merge sort; implement and analyze insertion sort and Quicksort sorting algorithms; understand abstract data types and how they are implemented in an object-oriented language; understand and implement the List Abstract Data Type (ADT) using both array based and linked-list based
data structures, including singly, doubly, and circular linked-lists;
understand and implement the Stack ADT using both array based and linked-list based data structures; understand and implement the Queue ADT using both array based circular queue and linked-list based
implementations; understand and implement priority based queues; understand and implement general tree data structures, including binary tree, both array based and
reference based implementations;
understand and implement binary search trees; understand and implement heaps using an array based tree data structure; understand and analyze heapsort; understand and implement graph data structures; understand and implement various algorithms on graph data structures, including finding the minimum
spanning tree and shortest path;
understand and implement hash table data structures and understand the map abstract data type; evaluate the runtime of operations such as add and delete on data structures covered in the class.
Relationship between Course Outcomes and Program Outcomes: A, B, C
Prerequisite by Topic
Programming in an object-oriented programming language that include instruction with topics equivalent to
those covered in ComS 227.
Credit or enrollment in first semester calculus.
-
8/21/2019 Courses+Outcomes+Assessments 1
6/64
6
Major Topics Covered in the Course
Topic Reading from text
CS 227 review Ch 1, 2
Runtime Analysis Ch 3Sorting Algorithms Ch 5, 11
Collection Interface and Iterators Ch 4
Lists and the ArrayList class Ch 6
Lists and linked lists Ch 7Stacks and Queues Ch 8
Trees Ch 9
Binary Search Trees Ch 10Tree Set Interface Ch 12
Hash Tables Ch 14
Graphs and Graph Algorithms Ch 15
Programming Assignments
There are typically 5 programming assignments spaced approximately 3 weeks apart.
Assignment 1: This assignment is comprised of material mostly from ComS 227, but also includes some generic
typing. It is designed to be a slightly bigger project than projects completed in ComS 227 with emphasis placed on
integrating several different concepts from ComS 227 into a single program. Program documentation, design, andprogramming style are graded. Unit testing is also reviewed and required in this assignment.
Assignment 2: This assignment gives students practice in designing and implementing various sorting methods,
including Quicksort and then measuring the number of CPU cycles required to sort random data sets of various
sizes. The students are required to graph their results to understand the relationship between data set size and
execution time of the various algorithms. Students are encouraged to write their own test data sets and share withthe class.
Assignment 3: In this assignment students must implement a substantial Java interface, typically the List interface.Students are required to code according the specification and their implementation must match that of one of Suns
implementations. (This allows students to continually check their work against the correct answer.) In order to keep
students from downloading source code and not learning how to manipulate linked list or array lists, restrictions areplaced on the implementation. For example, instead of implementing a list using a standard doubly linked-list, the
implementation must create list nodes that skip 2 forward and 3 back.
Assignment 4: This assignment typically requires students to write a complete program that requires manipulating a
tree structure. Past programs include writing a compression and decompression methods for the Lempel-Zivcompression algorithm, implementing a simple interpreter for a made-up programming language, and implementing
a trinary search tree. It is encouraged that instructors try to create and assignment that encompasses and solves some
aspect of a real-world problem.
Assignment 5: This assignment consists of two parts, one mandatory and one optional. The mandatory part testsstudents ability to implement a graph structure and compute some properties of the graph such as shortest path orconnectedness. In addition, the students are given an interface that allows them to control a virtual robot that roams
the galaxy by traversing wormholes in a game environment. Systems and wormholes form a weighted directed
graph and thus graph algorithms may be useful in defeating the opponent. Students are required to write a basic
robot that wins against inept computer controlled robot. In addition, students may optionally enter a tournament
where their robots are played against each other on the last day of class.
-
8/21/2019 Courses+Outcomes+Assessments 1
7/64
7
Assessment Plan for the Course
Outcome How Measured When Measured
Improvements
Identified
Improvements
Implemented
Write, debug,and document
well-structured
Java
applications ofup to 1000 lines
Evaluation ofprogramming projects
Every semester Students aresurprised by the
difference in size in
the programming
projects required inCom S 228 and
ComS 227. This
leads to students
startingassignments late
and not finishing
them.
Assignments are givenearly to students with
explanations on how
long the assignment can
take. Electronicbulletin boards are used
for student discussion
of assignment.
Implement Java
classes from
specifications
Exams; evaluation of
programming projects
Every semester Students fail to
grasp the role of
specifications in
implementingcomponents of a
system.
Assignment 3 requires
students to completely
implement the List
interface in the Javacollection package
using an uncommon
backing data structure.Other assignments
include significant
specification that
require students to readand understand them in
order to complete the
project with a good
score.
Lack of
retention ofprerequisite
material.
Exams, programming
projects, and studentclass interaction.
Every semester Students need to
understandconcepts from
ComS 227in order
to do well in ComS
228.
Two days of lecture
devoted to reviewingmaterial from Com S
227 with emphasis
placed on topics the
students themselves
believe they do notunderstand. The first
assignment includes
only a few new ideastogether with
requirements that force
students to use much of
the topics covered in
ComS 227.
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description of
how this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomes
and Assessment Plan.
-
8/21/2019 Courses+Outcomes+Assessments 1
8/64
8
Curriculum Category Content (Semester Hours)
CORE ADVANCED CORE ADVANCED
Algorithms 0.5
Computer Organization and
Architecture
Data Structures 2
Concepts of Programming
Languages
Software Design 0.5
-
8/21/2019 Courses+Outcomes+Assessments 1
9/64
9
COURSE DESCRIPTION
Department and Course
Number
Com S 229 Course Coordinator
Fall 2008
James Lathrop
Course Title Advanced Programming Techniques Total Credits 3
Current Catalog Description (3-0) Cr. 3. F.S. Prereq: 228, credit or enrollment in Math 166. Object-oriented
programming experience using a language suitable for exploring advanced topics in programming. Topics includememory management, parameter passing, inheritance, compiling, debugging, and maintaining programs. Significant
programming projects.
Textbook (optional) Bjarne Stroustrup, The C++ Programming Language, Addison-Wesley 2000. ISBN
0201700735. Nicolai M. Josuttis, The C++ Standard Library (A Tutorial and Reference), Addison-Wesley 1999,
ISBN: 0201379260. Kernighan and Ritchie, The C Programming Languagesecond edition, Prentice Hall, 1998.ISBN: 0-13-110362-9
Coordinators James Lathrop, Senior Lecturer
Course Outcomes At the end of ComS 229, the students should: be able to write well-structured complex programs from specifications that may not be precise in OO and
non OO programming languages,
communicate questions to clarify program requirements, understand differences between managed and unmanaged programming languages such as Java and C++ or
C.
understand simple build systems and create software projects that utilize a simple build system to produceseveral target executable programs,
understand how to read and program using the C programming language. understand and utilize memory management techniques for C programming, including allocation and
tracking of dynamically allocated memory,
program and link together elements of Java programs and C programs using the Java native Interface, compare and contrast elements of C programming language (a non OO language) and the Java
programming language, understand how to read and program in the C++ programming language, understand and use C++ templates and the standard template library, understand memory management techniques used in C++ programming, understand memory management techniques used in managed languages such as Java such as mark and
sweep garbage collection algorithms,
understand and program basic elements of a GUI interface.Relationship between Course Outcomes and Program Outcomes: A, B, C
Prerequisite by Topic
Programming in an object-oriented programming language that include instruction with topics equivalent to
those covered in ComS 227.
Understanding of data structures with topics equivalent to those covered in ComS 228.
Credit or enrollment in second semester calculus.
-
8/21/2019 Courses+Outcomes+Assessments 1
10/64
10
Major Topics Covered in the Course
Introduction
The C Programming LanguageCompiling C programs
Difference between C and Java
The make programJava GUI concepts using Swing
Java JNI and the C programming language
The C++ programming languageCompiling C++ programs
Differences in C++, Java and C
C++ templates and the STL
Memory management
Multiprogramming and threads in Java and C++
Programming Assignments
There are typically 2 large programming assignments during the semester.
Assignment 1: Assignment 1 is includes aspects that requires the student to program a significant project in the Cprogramming language with interfaces with the Java programming language. Topics required to complete project
include C programming, C memory management, Java JNI interface, the make system, and correctly compiling C
programs (using the make system). Extensive use of data structures and concepts from ComS 227 and ComS 228
are required in order to satisfactorily complete the assignment.
Assignment 2: Assignment 2 includes aspects that requires the student to program a significant project in C++. Thestudent may be required to interface with C and Java to complete the assignment. Use of templates and data
structures using templates may be required.
Assessment Plan for the Course
Outcome How Measured When Measured
Improvements
Identified
Improvements
Implemented
ALL Evaluation of class atend of the semester
Every semester Students wouldbenefit greatly
from a recitation
(even optional) forthis class so that
there is time set
aside other than
lecture wherestudents can get
help.
Addition of recitationsection to ComS 229.
(not yet implemented)
Design and
program well-structured
complexprograms
Evaluation of
programming projects
Every semester Students have
difficultiesdesigning and
assembling a largecomplex project
given a list of
complex
interrelated
requirements.
Complex assignment
requirements arepresented as in
organized units for thestudents with separate
implementations that
can then be linked
together in the final
project.
-
8/21/2019 Courses+Outcomes+Assessments 1
11/64
11
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description of
how this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomes
and Assessment Plan.
Curriculum Category Content (Semester Hours)
CORE ADVANCED CORE ADVANCED
Algorithms 1.0
Computer Organization and
Architecture
Data Structures 1.0Concepts of ProgrammingLanguages
0.5
Software Design 0.5
-
8/21/2019 Courses+Outcomes+Assessments 1
12/64
12
COURSE DESCRIPTION
Department and Course
Number
Cpr E 281 Course Coordinator
Fall 2008
Ahmed Kamal
Course Title Digital Logic Total Credits 4
Current Catalog Description(3-2) Cr. 4. F.S. Prereq: sophomore classification. Number systems and
representation. Boolean algebra and logic minimization. Combinational and sequential logic design. Arithmetic
circuits and finite state machines. Use of programmable logic devices. Introduction to computer-aided schematic
capture systems, simulation tools, and hardware description languages. Design of a simple digital system.
Textbook S. Brown and Z Vranesic, Fundamental of Digital Logic with Verilog Design, McGraw-Hill,
Second Edition, 2008.
Coordinator Ahmed Kamal, Professor of Electrical and Computer Engineering
Course Outcomes
To introduce number systems and codes, and digital representation of data, and to teach the generalconcepts in digital logic design, including logic elements, and their use in combinational and sequential
logic circuit design.
Students will also be introduced to computer-aided schematic capture systems, simulation tools andhardware description languages, and will use programmable logic devices.
Relationship between Course outcomes and Program outcomes:A, C
Prerequisites by Topic
Major Topics covered in the Course1. Introduction(Chapter 1)
o Digital Hardwareo The design processo The design of digital hardware
2. Introduction to Logic Circuits(Chapter 2)o Variables and functionso Inversiono Truth tableso Logic gates and networkso Boolean algebrao Synthesis using AND, OR and NOT gateso NAND and NOR logic networkso Design examples
3. Implementation Technology(Chapter 3)o Transistor switcheso NMOS logic gateso CMOS logic gateso Negative logic systemso Standard chipso Programmable devices
4. Optimized Implementation of Logic Functions(Chapter 4)o Karnaugh mapo Strategy for minimizationo Minimization of product-of-sums formso Incompletely specified functionso Multiple-output circuits
-
8/21/2019 Courses+Outcomes+Assessments 1
13/64
13
o Multilevel synthesiso Analysis of multilevel circuits
5. Number Representation and Arithmetic Circuits(Chapter 5)
o Positional number representationo Additional unsigned numberso Signed numberso Fast adderso Multiplicationo Other number representationso ASCII character code
6. Combinational-Circuit Building Blocks(Chapter 6)o Multiplexerso Decoderso Encoderso Code converterso Arithmetic comparison circuits
7. Flip-flops, Registers, Counters and a Simple Processor(Chapter 7)
o Basic latcho Gates SR latcho Gated D latcho Master-slave and edge-triggered D flip-flopso T flip-flopso JK flip-flopso Registerso Counterso Reset synchronization
8. Synchronous Sequential Circuits(Chapter 8)o Basic design stepso State assignment problemo Mealy state modelo Serial adder exampleo State minimizationo Design of a counter using the sequential circuit approacho FSM as an arbiter circuito Analysis of synchronous sequential circuitso Algorithmic state machineo Formal model for sequential circuits
9. Digital system Design(Chapter 10)o Building block circuitso Design exampleso Clock synchronization
Important Notes
1. Requesting academic accommodation:Please address any special needs or special accommodations with me at the beginning of the semester or as
soon as you become aware of your needs. Those seeking accommodations based on disabilities should
obtain a Student Academic Accommodation Request (SAAR) form from the Disability Resources (DR)
office (515-294-7220). DR is located in 1076 Student Services Building.2. All class material, including copies of lecture notes, homeworks and their solutions, labs, quiz solutions,and midterm exam solutions will be posted on WebCT. Please check WebCT regularly.
3. Homeworks are due at the beginning of class.4. Quizzes will be at the end of class.5. All quizzes and exams will be held in the classroom.6. Pre-Labsmust be submitted to the TA at the beginning of the lab.7. There are no supplementary or make-up exams in this course.8. There will be no changes in the exams, labs, homeworks and quiz dates. Please refer to the Schedulefor
those dates.
-
8/21/2019 Courses+Outcomes+Assessments 1
14/64
14
9. No late homework assignments will be accepted.10. Students may discuss the homeworks, and how to solve them. Students are encouraged to use the
Discussion Forum on WebCT (I will be monitoring the forum and will post contributions if needed).
However, the actual solution of the homeworks must be done independently. Students found to be copying
homework assignments, or project codes will be subject to the ISU cheating and plagiarism regulations.11. The instructor and TAs are available to help you during the office hours. Appointments outside the office
hours can also be arranged. Please contact the instruction or the TAs to arrange for appointments.
12. All pagers and cellular telephones must be turned offduring the class time.Thank you for your cooperation.
Assessment Plan for the Course
Outcome
How Measured When Measured Improvements
Identified
Improvements
Implemented
Comprehension of
tradeoffs involved in
design choices (H)
Student performance
on quizzes and
exams which are
graded by the courseinstructor and not the
TAs, senioroutcomes assessmentsurveys
Every semester Students had
difficulties in
formulating
problems incomputer
architecture and thuscould not solve them.
- More in class
examples are worked
out.
- Periodic in-classactivities are
conducted wherestudents work ingroups of two or
three to formulate
and solve problemsin lecture.
Comprehension of
memory tradeoffsand management
policies
Performance on
quizzes andhomework
Every semester Students seemed to
have differentlearning strategies
for these concepts
A visual hands-on
Java tutorial isavailable for students
who are visual
learners.
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description ofhow this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomes
and Assessment Plan.
Curriculum Category Content (Semester Hours)
CORE ADVANCED CORE ADVANCED
AlgorithmsComputer Organization andArchitecture 2
Data StructuresConcepts of ProgrammingLanguages 1
Software Design
-
8/21/2019 Courses+Outcomes+Assessments 1
15/64
15
COURSE DESCRIPTION
Department and Course
Number
Com S 309 Course Instructor
Fall 2008
Simanta Mitra
Course Title Software Development Practices Total Credits 3
Current Catalog Description(3-1) Cr. 3. F.S. Prereq: Com S 228 with C- or better, Com S 229 or Cpr E 211, Engl
250. A practical introduction to methods for managing software development. Process models, requirements
analysis, structured and object-oriented design, coding, testing, maintenance, cost and schedule estimation, metrics.
Programming projects. Nonmajor graduate credit.
Textbook Eric J. Braude, Software Engineering: An Object Oriented Perspective, John Wiley and Sons Inc., ISBN
0-471-32208-3.Reference
Software Engineering, Ian Sommerville, Addison-Wesley, 6th edition, 2001. An Integrated Approach to Software Engineeringby Pankaj Jalote, 2ndEdition. Software Engineeringby Shari Pfleeger. UML Toolkitby Hans-erik Eriksson and Magnus Penker.
Coordinators Robyn Lutz, Professor
Simanta Mitra, Senior Lecturer
Course OutcomesTo introduce the students to the major software engineering topics and position them to leadmedium-sized software projects in industry.
1. Students will learn to work as a team and to focus on getting a working project done on time with eachstudent being held accountable for their part of the project.
2. Students will learn about risk management and quick prototyping to de-risk projects.3. Students will learn about and go through the software development cycle with emphasis on different
processes - requirements, design, and implementation phases.
4. Students will learn details about different artifacts produced during software development.5. Students will learn about different software development process models and how to choose an appropriate
one for a project.
6. Students will gain confidence at having conceptualized, designed, and implemented a working, mediumsized project with their team.
Relationship between Course Outcomes and Program Outcomes: A, B, C, D, E, F, G, H, I, J, K
Prerequisites by Topic
1. A high-level programming language.2. Data structures.
3. Proficiency in written English.
-
8/21/2019 Courses+Outcomes+Assessments 1
16/64
16
Major Topics covered in the course
1. Intimate familiarity with various software artifacts (documents/code) produced during a software developmentproject.
2. Top Issues in Software Engineering3. Project Management: Process Models, Planning, Scheduling, Cost Estimation, Risk Management, Metrics,
Project execution, Project termination.4. Software Requirements: Elicitation, Specification, Verification, Validation.5. Software Architecture: Decomposition, Modularity, Specification of Interfaces, Design tradeoffs, Design
Evaluation.
6. Configuration Management: Use of source control tools, change management.7. Testing techniques, Inspections/Reviews.
Laboratory ProjectsSemester project introduced first week, due last week: 16 weeks.
One large software development project lasting the entire semester. Artifacts developed include:
Project proposal Screenshots/Interface prototyping SRS-1 (Customer Requirements) SRS-2 (Developer Requirements) DD-1 (Design Decomposition into modules + processes/threads) DD-2 (Module interfaces) DD-3 (Design rationale, Design evaluation) Test Plan Lessons Learnt from project. Working Project Code and Test Codes. Project Poster
Team participation is carefully monitored throughout the semester in a variety of ways:
Minutes of each meeting are collected using a template.
Artifact Work distribution form is collected using a template. Source Control tools are used to gather information on what each team member worked on, on what dates
etc.
During final demo and also in-class status and prototype demonstrations, each team member is grilled onhis/her specific contribution.
Teams have to maintain a portfolio of these artifacts (both hardcopy and softcopy under revision control).
There are several project status update and prototype demonstration sessions throughout the semester. There is afinal project demonstration to the TAs and also a Best Project awards session where the best teams show off their
project to the class.
Each artifact goes through two rounds of submission. In the first round, feedback is provided. In the second round, a
final grade is provided.
Assessment Plan for the Course
This course is unique (given that it is a project course) in that it has an impact on each of the Program Learningoutcomes from A to I!
These outcomes are measured/improved several times during the semester via:
in-class quizzes in-class group activities in-class prototype and design presentations
-
8/21/2019 Courses+Outcomes+Assessments 1
17/64
17
in-class question/answer and discussion sessions Interviews with individual teams about design Project demonstrations Having students explain their contribution and lessons learnt The project artifacts including minutes of meetings and work-distribution forms.
Several improvements were identified and implemented and each of these applies to multiple program outcomes.
Outcome How
Measured
When
Measured
Improvements
identified
Improvements Implemented
Team Work(course
outcome #1)
1) Workdistribution
forms that
students haveto submit
along with
every artifact.
2) Code logs
fromsubversion
source control
tool.
At eachsubmission
and also at the
end of thesemester.
Team memberproblems:
- some drop- some dont
work at all
- some dontdo coding
- some dontdo docs
A huge emphasis is also placed onhow important team work is towards
success of projects.
Team work etiquette isexplained.
Minutes of meetings arerequired!
For each team submission(there are 10 of them), workdistribution forms have to be
submitted.
Teams are encouraged tolook out for warning signs of
bad team work.
Source control tool(Subversion) is used from
early in the semester and
monitored by the TAs andthe instructor for signs of
some students not working.
Accountability is drummedin. Students have to markwhich parts of eachdocument was created by
them. Similarly, source
control tools indicate whichparts of code are developed
by a specific student.
In the case that somestudents drop modular
design helps to minimize t
he impact. Poor workers aregiven peripheral pieces so
that if they do not completetheir parts the entire project
is not jeopardized.
Risk
Management(course
outcome #2)
Project
artifactsubmission
Several times
during thesemester (at
maximum two
weeksintervals)
Many times, teams
do not get startedearly enough and
then the quality of
the software artifactssuffers. In addition,
they are faced with a
lot of word during
The entire documentation work is
broken up into several increments. Forexample, the SRS is broken into SRS-
1 and SRS-2. Similarly, the SDD is
broken into SDD-1, SDD-2, andSDD-3. With about two weeks for
each document, students have to keep
working on them throughout the
-
8/21/2019 Courses+Outcomes+Assessments 1
18/64
18
Outcome How
Measured
When
Measured
Improvements
identified
Improvements Implemented
the dead week and
this affects their
grades in other
courses as well.
semester and this helps to create better
documents.
In terms of coding, a huge emphasis is
put on early prototyping right fromday one! Students are encouraged to
create small working fragments of
code and play with networking andthreading and databases and GUI etc.
This way the major technical risks
of projects are encountered early andthen can be addressed early on.
The demos are scheduled the week
BEFORE the dead week. This forces
students to start work real early. Also it then gives them breathing time
during the dead week to focus on
other courses and also the final exam.
Experiencing
software
developmentlifecycle
processes
(course
outcome #3)
Project
artifact
submission
Final project
report with
lessons learnt.
Several times
during the
semester (atmaximum two
weeks
intervals)
Doing the project +
all the documentation
is a LOT of workand sometimes teams
seem jaded and
overworked just by
the thought of it.
Maintaining enthusiasm and
motivation is an important aspect of
projects like this. Several things aredone towards this:
The semester is started with adisplay of posters from
previous semesters. Thesefull-size posters have
information about the
features, the design, lessons
learnt, and students pictures.
There is a lot of excitement
right from the very start. Atthe end of the semester
students create their ownposters and this is added to
the set of existing posters.
Healthy competition betweenteams is encouraged. A best
team project award and a
best documentation award isgiven at the end of the
semester. These are
certificates and signed by thedepartment chair and the
course instructor. There is a best projects
presentation at the end of the
semester - where somefaculty members are also
invited to attend. Students
get to vote for the bestproject in their eyes
although the final
-
8/21/2019 Courses+Outcomes+Assessments 1
19/64
19
Outcome How
Measured
When
Measured
Improvements
identified
Improvements Implemented
determination is made by the
instructor.
Another important improvement is to
lessen the amount of documentation while still teaching the important
concepts in creating the SRS and SDD
documents. This is achieved bylimiting the work to be done by each
student (for example each student
needs to elaborate and write detailedrequirements for only two features).
Learn details
of softwareartifacts
(course
outcome #4)
Design
documents
Middle of
semester, andEnd of
semester.
Poor quality
Architecturaldocuments were
being submitted.
At this level, students had never
designed anything. They had no ideaof architecture. It was thus impossible
for them to submit good architectural
docs before coding. Instead, I startedto have them complete the final
architectural documentation AFTER
all code is done allowing them to
reverse-engineer and refactor their
code. This experience will allow themto create better architectural
documents in the future also.
Learn about
process
models
(courseoutcome #5)
questions in
class +
final exams
Several times
during
semester , and
End ofsemester
Learning about
processes and
process models is
sometimes tedious for specially students
without internship
experiences.
A lot of time is spent on explaining
why it is important to learn about
these. For example, following best
practices and using tools such asdefect tracking and issue tracking is
important for auditing purposes and to
establish that due diligence was
followed and that can help in legalissues. Examples from industry is
used to motivate students.
Goodworking
projects at
end of
semester(course
outcome #6)
in-classpresentations
during
semester
project demo
at end of
semester
Several timesduring
semester, and
End of
semester
Team projects wereeither too ambitious
or too simple. Either
case is detrimental to
the students learningexperience in the
class.
Teams have to submit three proposalsalong with their evaluations about the
complexity of each project. The
instructor does a separate evaluation
and either adds features or trimsfeatures to make the projects
comparable in terms of difficulty and
size.Project complexity evaluation is an
ongoing process and the instructor
and TAs keep tabs on the projectthroughout the semester fromrequirements, prototyping, design, and
final demo with feedback being
given at each phase.
-
8/21/2019 Courses+Outcomes+Assessments 1
20/64
20
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description of
how this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomesand Assessment Plan.
Curriculum Category Content (Semester Hours)
CORE ADVANCED CORE ADVANCED
Data Structures
Computer Organization and
Architecture
Algorithms
Concepts of Programming
Languages
Software Design 3
-
8/21/2019 Courses+Outcomes+Assessments 1
21/64
21
COURSE DESCRIPTION
Department and Course
Number
Com S 311 Course Instructor
Fall 2008
Giora Slutzki
Course Title Design and Analysis of Algorithms Total Credits 3
Current Catalog Description (3-1) Cr. 3. F.S. Prereq: 228 with C- or better, 229 or Cpr E 211, Math 166, Engl
250, and either Com S 330 or Cpr E 310. Basic techniques for design and analysis of efficient algorithms.
Asymptotic ,worst-case, analyses. Graphs and graph algorithms. Design techniques such as greedy (scheduling,
Dijkstras algorithm, minimum spanning trees, Huffman codes), divide-and-conquer (mergesort, integer
multiplication), and dynamic programming (segmented least-squares, knapsack, sequence alignment, shortest paths).Network flows, Ford-Fulkerson algorithm. NP-completeness.
Programming project. Credit may not be applied toward graduation for both 311 and 381. Nonmajor graduate credit.
Textbooks (1)Algorithm Designby J. Kleinberg and E. Tardos; Addison Wesley, 2006,
ISBN 0-321-29535-8
(2)Introduction to Algorithmsby T.H. Cormen, C.E. Leiserson, and R. Rivest; McGraw-Hill, 2ndedition, 2001. ISBN 0-07-013151-1
Coordinators Giora Slutzki, Professor
David Fernandez-Baca, Professor
Course Outcomes Algorithms are the basic recipes for solving computational problems. Upon completion of this
course, students should:
understand the fundamental principles underlying algorithm analysis and design andbe able to apply them in specific instances
understand asymptotic worst-case analysis understand essential algorithm design techniques such as divide-and conquer, dynamic programming and
the greedy methods and many of its applications
understand network flow algorithms and applications understand the notion of NP-completeness.
Relationship between Course Outcomes and Program Outcomes: A, J
Prerequisite by Topic
1. Data Structures
2. Discrete Computational Structures
Major Topics covered in the Course
1. Asymptotic analysis of algorithms2. Recurrences
3. Sorting4. Data Structures5. Advanced Algorithm Design Techniques6. Graph Algorithms7. Network Flow Algorithms9. NP-Completeness
Laboratory Projects
1. Implementation of simple kind of suffix trees and operations on them
-
8/21/2019 Courses+Outcomes+Assessments 1
22/64
22
Assessment Plan for the Course
Outcome How Measured When Measured
Improvements
Identified
Improvements
Implemented
Understanding of
some basic
algorithmic
principles (H)
Performance on
homework andexams, senior
outcomes assessment
surveys
Every semester
Students had
difficulties in
understanding greedy
algorithms vs.,
dynamicprogramming and
strongly connected
components.
More examples were
given in lecture to
illustrate the
execution of
algorithms.
Designing computerprograms for abstract
algorithms (H)
Extra creditprogramming
project, senior
outcomes assessmentsurveys
Every semester More practicalproblems for
students to solve
using algorithmslearned in lecture.
Some improvementsimplemented but
more room for
improvement.
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description of
how this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomesand Assessment Plan.
Curriculum Category Content (Semester Hours)
As indicated in the tables in Section 5-B, the credits for this course fall in the advanced category, because of the
rigor and depth of the topics covered. The text book by Cormen et al. is typically used as a graduate-level text bookin many universities.
CORE ADVANCED CORE ADVANCED
Algorithms 3Computer Organization andArchitecture
Data structures
Concepts of Programming
Languages
Software Design
-
8/21/2019 Courses+Outcomes+Assessments 1
23/64
23
COURSE DESCRIPTION
Department and Course
Number
Com S 321 Course Coordinator
Fall 2008
Gurpur Prabhu
Course Title Introduction to Computer Architecture and
Machine-Level Programming
Total Credits 3
Current Catalog Description(3-1) Cr. 3. F.S. Prereq: 229, Cpr E 210 and Engl 250. Introduction to
computer architecture and organization. Emphasis on evaluation of performance, instruction set architecture,
datapath and control, memory-hierarchy design, and pipelining. Assembly language on a simulator. Nonmajorgraduate credit.
Textbook D. A. Patterson and J. L. Hennessy, Computer Organization & Design: The Hardware/SoftwareInterface, Morgan Kaufmann Publishers Inc., Second edition.
Reference Interactive Computer Architecture Tutorial by Gurpur Prabhu
http://www.cs.iastate.edu/~prabhu/Tutorial/title.html
Coordinator Gurpur Prabhu, Associate Professor
Course Outcomes
Students will learn about computer performance, computer design, and tradeoffs between cost andperformance as well as between hardware and software
Students will formulate and solve problems, understand the performance requirements of systems Students will learn to communicate effectively and learn to think creatively and critically, both
independently and with others
Relationship between Course outcomes and Program outcomes:B, C, J
Prerequisites by Topic
1. A High-level Programming Language2. Introduction to Digital Design
Major Topics covered in the Course
1.Introduction: Computer abstractions and technology2. Measuring and Evaluating Performance: Metrics of performance; Amdahls Law; Cost/benefit tradeoffs;
Instruction count, CPI, Clock cycle time; Comparing and summarizing performance
3. Instruction Set Architecture and Assembly Language of MIPS; Signed and unsigned numbers; Representing
instructions - the MIPS instruction set; Instructions for decision making; Supporting procedures - stack pointer;Arithmetic and Logical operations
4. Processor Datapath and Control; Building a datapath for R-type, I-type, and Jump instructions; A simple
implementation scheme; How control is supposed to work; A multicycle implementation5. Memory Hierarchy Design: A framework for memory hierarchies; The basics of caches; Placement,
replacement, and memory interaction policies; Measuring and improving cache performance; FIFO, LRU, write
back and write through policies
6. Enhancing Performance with Pipelining; Overview of pipelining; A pipelined datapath; Data hazardsand forwarding; Data hazards and stalls; Branch hazards
7. Exceptions and Exception Handling: Interrupts and exceptions; Hardware/software interface; Interrupt handlers
-
8/21/2019 Courses+Outcomes+Assessments 1
24/64
24
Laboratory Projects
5 MIPS Assembly Language Programming Exercises, Lab Exam as part of Exam 2
Assessment Plan for the Course
Outcome How Measured When Measured
Improvements
Identified
Improvements
Implemented
Comprehension of
tradeoffs involved in
design choices (H)
Student performance
on quizzes and
exams which aregraded by the course
instructor and not the
TAs, senioroutcomes assessment
surveys
Every semester Students had
difficulties in
formulatingproblems in
computer
architecture and thuscould not solve them.
- More in class
examples are worked
out.- Periodic in-class
activities are
conducted wherestudents work in
groups of two or
three to formulate
and solve problemsin lecture.
Comprehension ofmemory tradeoffsand management
policies
Performance onquizzes andhomework
Every semester Students seemed tohave differentlearning strategies
for these concepts
A visual hands-onJava tutorial isavailable for students
who are visual
learners.
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description of
how this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomes
and Assessment Plan.
Curriculum Category Content (Semester Hours)
CORE ADVANCED CORE ADVANCED
Algorithms
Computer Organization and
Architecture 2
Data StructuresConcepts of ProgrammingLanguages 1
Software Design
-
8/21/2019 Courses+Outcomes+Assessments 1
25/64
25
COURSE DESCRIPTION
Department and Course
Number
Com S 330 Course Instructor
Fall 2008
Soma Chaudhuri
Course Title Discrete Computational Structures Total Credits 3
Current Catalog Description(3-1) Cr. 3. F.S. Prereq: 229, Math 166 and Engl 250.Concepts in discrete
mathematics as applied to computer science. Logic, proof techniques, set theory, relations, graphs, combinatorics,
discrete probability and number theory. Nonmajor graduate credit.
Textbook Discrete and Combinatorial Mathematics (Fifth ed.) by Ralph P. Grimaldi
Coordinators Giora Slutzki, ProfessorJack Lutz, Professor
Soma Chaudhuri, Associate Professor
Course OutcomesTo introduce students to the theoretical foundations of computer science which prepare them for their
study of virtually all subsequent material in the curriculum. Upon completing this course the students
should be able to:
define the fundamental discrete mathematical structures used in computer science reason about these structures and prove rigorously that their reasoning is correct apply them in problem solving and analysis, and know basic problem solving strategies and be adept at using them
Relationship between Course Outcomes and Program Outcomes: A, J
Prerequisite by Topic
1. Two semesters of Programming
2. Two semesters of Calculus
Major Topics covered in the Course
1. Sets, Functions, Asymptotics2. Number Theory3. Logic4. Proof Methods5. Combinatorics6. Discrete Probability7. Recursive Algorithms and Recurrences8. Relations9. Graph TheoryLaboratory Projects
None.
-
8/21/2019 Courses+Outcomes+Assessments 1
26/64
26
Assessment Plan for the Course
Outcome
How Measured When Measured Improvements
Identified
Improvements
Implemented
Reason aboutstructures and prove
their correctness
Performance onhomework and
exams
Every semester Students havedifficulties in writing
proofs
Demonstrate prooftechniques through
examples and show
students how to
generalize and
produce argumentsto covert the cases in
the examples.
Be adept at using
problem-solvingstrategies
Feedback from
Recitation Section
Every semester Some students are
not able to formulatestrategies for new
problems.
Introduce students to
the technique ofreduction where
new problems arereduced to old onesand then apply
strategies used to
solve the oldproblems.
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description of
how this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomes
and Assessment Plan.
Curriculum Category Content (Semester Hours)
As indicated in the tables in Section 5-B, the credits for this course fall in the mathematics category. This has been
the designated category for this course since 1994.
CORE ADVANCED CORE ADVANCED
Data Structures
Computer Organization and
Architecture
Algorithms
Concepts of Programming
Languages
Software Design Mathematics 3
-
8/21/2019 Courses+Outcomes+Assessments 1
27/64
27
COURSE DESCRIPTION
Department and Course
Number
Com S 331 Course
Coordinators
Fall 2008
Giora Slutzki,
Jack Lutz,
Soma Chaudhuri
Course Title Theory of Computing Total Credits 3
Current Catalog Description(Cross listed with Ling.) (3-1) Cr. 3. F.S. Prereq: 228, 229, Com S 330 or CprE 310,
Math 166, and Engl 250. Models of computation: finite state automata, pushdown automata and Turing machines.
Study of grammars and their relation to automata. Limits of digital computation, unsolvability and Church-Turing
thesis. Chomsky hierarchy and relations between classes of languages. Nonmajor graduate credit.
TextbookAutomata and Computabilityby Dexter Kozen
ReferenceElements of the Theory of Computation, by Harry Lewis and Christos Papadimitriou (2nd edition)
Introduction to the Theory of Computation, by Michael Sipser
Introduction to Automata Theory, Languages, and Computation, by John Hopcroft, Rajeev Motwani and Jeff
Ullman.
Coordinators Giora Slutzki, Professor
Jack Lutz, ProfessorSoma Chaudhuri, Associate Professor
Course Outcomes
To introduce the computer science students to the theoretical foundations of computer science. To study abstract models of information processing machines and limits of digital computation. To provide theoretical preparation for the study of programming languages and compilers. To develop the skills of formal and abstract reasoning as needed; for example, when designing, analyzing,and/or verifying complex software/hardware systems.
Relationship between Course Outcomes and Program Outcomes: A, J
Prerequisite by Topic
1. Programming with Data Structures
2. Discrete Computational Structures
Major Topics covered in the Course
1. Introduction. Alphabets and strings, concatenation, languages, operations on strings and
languages, regular expressions and regular languages.
2. Finite-state Automata. Deterministic finite-state automata, non deterministic finite-state automata,subset construction, regular expressions, Kleenes theorem.
3. Push-down Automata. Non deterministic push-down automata, acceptance by final state andempty stack, deterministic push-down automata.
4. Turing Machines. Deterministic Turing machines, recursive and recursively enumerable
languages, non deterministic Turing machines, always-halting non deterministic Turing machines.
5. Grammars and Their Machines. Grammars: regular grammars context-free grammars, phrase-structure and contest-sensitive grammars; transitions between grammars and machines.
Derivations and derivation trees. Simplification of context-free grammars and Chomsky normal
-
8/21/2019 Courses+Outcomes+Assessments 1
28/64
28
form. The Chomsky hierarchy.
6. Properties of Classes languages. Boolean closure properties, regular closure properties, other
closure properties.
7. Properties of languages. Pumping properties of languages and non-membership proofs for regular
and context-free languages.8. Other topics to be decided as time permits.
Laboratory projects
None.
Assessment Plan for the Course
Outcome How Measured When Measured
Improvements
Identified
Improvements
Implemented
To develop skills of
formal and abstractreasoning (A, H)
Student performance
on homework andexams
Every semester Some students have
difficulty extractinguseful methods from
proofs.
For long proofs, an
overview is given inone lecture; the
overview is repeatedbefore the proof in
the next lecture; then
the technique isapplied to an
example with explicitreference to the
proof.
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description of
how this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomes
and Assessment Plan.
Curriculum Category Content (Semester Hours)
As indicated in the tables in Section 5-B, the credits for this course fall in the advanced category, because of the
rigor and depth of the topics covered.
CORE ADVANCED CORE ADVANCED
Data Structures
Computer Organization and
Architecture
AlgorithmsConcepts of ProgrammingLanguages
Software Design Theory 3
-
8/21/2019 Courses+Outcomes+Assessments 1
29/64
29
COURSE DESCRIPTION
Department and Course
Number
Com S 342 Course
Coordinators
Hridesh Rajan
Ting Zhang
Course Title Principles of Programming Languages Total Credits 3
Current Catalog Description(3-1) Cr. 3. F.S. Prereq: 321, 330 or Cpr E 310, either 309, 362 or 363, Engl 250.
Organization of programming languages emphasizing language design concepts and semantics. Study of language
features and major programming paradigms, especially functional programming. Programming projects. Nonmajor
graduate credit.
Textbooks: Essentials of Programming Languages (3rd Edition) by Daniel P. Friedman and Mitchell Wand (MIT Press
2008) Programming Language Pragmatics (3rd Edition) by Michael L. Scott (Morgan Kaufmann, 2009).
Reference The Little Schemer (Fourth Edition) by Daniel P. Friedman and Matthias Felleisen (MIT Press, 1996).
Effective Java (2nd Edition) by Joshua Bloch (Prentice Hall, 2008).
Learning Python (3rd Edition) by Mark Lutz (O'Reilly, 2008)Coordinators
Hridesh Rajan, Assistant Professor Ting Zhang, Assistant Professor
Course Outcomes
The main objective is that students will have a deep, working knowledge of the functional paradigm and the keyideas used in modern programming languages. In more detail the essential objectives for this course are that students
will be able to: Write and modify programs using a mostly-functional style. This means programming that makes effective
use of the abstraction mechanisms of functional languages, such as higher-order functions (functions that
take functions as arguments and return functions as results) to achieve generality and abstraction.
Write and modify programs that make effective use of data abstraction. Modify interpreters to change or enhance their behavior so as to implement various features of
programming languages such as: control flow, variables, recursion, scoping, syntactic sugars, arrays,
parameter passing mechanisms, type checking, objects, classes, and inheritance.
Write programs using such features, and explain, using appropriate terminology, the user-visible behaviorof such programs.
Explain, using appropriate terminology, the data structures and algorithms used in interpreters to implementsuch features. Compare alternatives in the design and implementation of such features.
Relationship between Course Outcomes Program Outcomes: C, H, I, J, K
Prerequisite(s) by Topic
1. Computer architecture and machine-level programming2. Theory of computing
3. File organization and processing
-
8/21/2019 Courses+Outcomes+Assessments 1
30/64
30
Major Topics covered in the Course
1. Formal language theory: regular languages, context-free languages, finite state automata2. Write and modify programs in functional style, introduction to languages such as Scheme and Haskell and
language implementation techniques such as lazy data structures and monads
3. Make effective use of data abstraction4. Learn about language constructs by changing or enhance interpreters to have features such as: control flow,
variables names and bindings, recursion, static and dynamic scoping, syntactic sugars, arrays, parameter
passing mechanisms, continuations, co-routines, type checking, objects, and inheritance
5. Write programs using such features and explain their behavior6. Explain the data structures and algorithms used in interpreters7. Logical programming: Prolog, resolution principles, unification algorithm, search with backtracking, cut
operation, negation as failure
8. Compare alternatives in programming language design and implementationsLaboratory projects
1. Using Scheme, Python, Prolog, Haskell2. Language Design and Recursion: LL(1) parsing
3. Formulating Abstractions with Higher-order Procedures: Curry and Uncurry functions
4. Data Abstraction and Object-oriented techniques
5. Conventional interfaces and symbolic data: list manipulations
6. Java visitors and iterators, multiple representations, and systems with generic operations
Assessment Plan for the Course
Outcome How Measured When Measured Improvements
Identified
Improvements
Implemented
An ability to design,implement, and
evaluate a computer-
based system,
process, componentor program to meet
desired needs.
Student performanceon homework,
projects, and exams
Feedback fromcompanies
Every semester
Students had animperative method of
approaching a
problem.
Carefully stressed theimportance of other
computing paradigms
such as logic and
functional paradigms
An ability to engagein continuing
professional
development.
Student performanceon homework and
exams
Feedback fromcompanies
Every semester Students didnt havea basic framework
for learning new
computer languages.
Taught a module thatlays the framework
An ability to usecurrent techniques,
skills, and tools
necessary forcomputing practices.
Student performancein homework and
exams
Student feedback
during graduating
Every semester Students didnt havemuch chance to
apply their
knowledge about PLtheory to new
mainstream language
Included an exerciseto study current
languages such as
Python, C#, and Java1.7
-
8/21/2019 Courses+Outcomes+Assessments 1
31/64
31
senior assessment proposals.
An ability to apply
mathematical
foundations,
algorithmicprinciples, and
computer sciencetheory in the
modeling and designof computer-based
systems that
demonstratecomprehension of
the tradeoffs
involved in design
choices.
Student performance
in homework and
exams.
Every semester Formal language
theory and recursive
(top-down/bottom-
up) construction offunctions.
Included a module on
LL(1) parsing to
address this issue and
basic previewmodule on regular
languages.
An ability to apply
design and
development
principles in theconstruction of
software systems ofvarying complexity.
Student performance
on programming
homework, and
projects.
Every semester Students didnt know
about functional and
logic programming-
based design styles.
Taught the follow
the grammar
principle which helps
with writingfunctional programs.
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description of
how this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomes
and Assessment Plan.
Curriculum Category Content (Semester Hours)
As indicated in the tables in Section 5-B, the credits for this course fall in the advanced category, because of the
rigor and depth of the topics covered.
CORE ADVANCED CORE ADVANCED
Data StructuresComputer Organization andArchitecture
Algorithms
Concepts of Programming
Languages 2
Software Design 1
-
8/21/2019 Courses+Outcomes+Assessments 1
32/64
32
COURSE DESCRIPTION
Department and Course
Number
Com S 352 Course Instructor
Fall 2008
Lu Ruan
Dimitris Margaritis
Course Title Introduction to Operating Systems Total Credits 3
Current Catalog Description(3-1) Cr. 3. F.S. Prereq: 321, and 362 or 363, Engl 250. Survey of operating system
issues. Introduction to hardware and software components including: processors, peripherals, interrupts,
management of processes, threads and memory, deadlocks, file systems, protection, virtual machines and system
organization, and introduction to distributed operating systems. Programming projects. Nonmajor graduate credit.
Textbook Operating Systems Concepts: 6th Edition (2003)by Silberschatz, Galvin, and Gagne,
John Wiley & Sons
References1. Modern Operating Systems: 2nd Edition by Andrew Tanenbaum, Prentice Hall, 2001.2. Unix Network Programming: 2nd Edition by W. Richard Stevens, Prentice Hall, 1998.
Coordinators Dimitris Margaritis, Assistant Professor
Lu Ruan, Assistant Professor
Course Outcomes
Students will learn about and understand theoretical concepts and programming constructs used for theoperation of modern operating systems
Students will gain practical experience with software tools available in modern operating systems such assemaphores, system calls, sockets and threads.
Relationship between Course Outcomes and Program Outcomes: C, D, H, K
Prerequisite by Topic
1. Computer Architecture2. Programming in C++Major Topics covered in the Course
1. System Structures Overview
2. Processes, threads, and CPU scheduling
3. Process synchronization and deadlocks4. Memory Management and Virtual Memory5. Distributed Systems Structures6. File SystemsLaboratory projects
1. Creating concurrent processes using the fork system call and interprocess communication using pipes2. Process synchronization using semaphores3. Client/Server communication using sockets
-
8/21/2019 Courses+Outcomes+Assessments 1
33/64
33
Assessment Plan for the Course
Outcome How Measured When MeasuredImprovements
IdentifiedImprovements
Implemented
Students had problems
understanding the
concepts of semaphoresand monitors.
Monitoring student
grades in homeworkassigned on the topic.
Every semesterStudents needed more
instruction on the topic.Instructor presented
and discussed solutions
to similar exercises inclass in detail.
Students applying
textbook
synchronizationsolution to
programming problem
involving slightly
different
synchronizationproblem.
Conversations with
students before projectwas due, in class.
Every semester Theoretical concepts
were not understood in
depth.
Additional time in class
was spent on the topics
and more exampleswere presented.
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description of
how this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomesand Assessment Plan.
Curriculum Category Content (Semester Hours)
As indicated in the tables in Section 5-B, the credits for this course fall in the advanced category, because of the
rigor and depth of the topics covered.
CORE ADVANCED CORE ADVANCED
Data Structures Computer Organization andArchitecture
1
Algorithms 1 Concepts of ProgrammingLanguages
Software Design 1
-
8/21/2019 Courses+Outcomes+Assessments 1
34/64
34
COURSE DESCRIPTION
Department and Course
Number
Com S 362 Course Instructor
Fall 2008
Les Miller
Course Title Object-Oriented Analysis and Design Total Credits 3
Current Catalog Description(3-0) Cr. 3. F.S. Prereq: 228 with C- or better, Engl 250. Object-oriented
requirements analysis and systems design. Design notations such as the Unified Modeling Language. Design
Patterns. Group design and programming with large programming projects. Nonmajor graduate credit.
TextbookStructure and Interpretation of Computer Programs, Second Editionby Harold Abelsonand Gerald JaySussmanwith Julie Sussman(MIT Press and McGraw-Hill, 1996).
ReferenceThe Little Schemer (Fourth Edition)by Daniel P. Friedmanand Matthias Felleisen(MIT Press, 1996).
The Java Programming Language (second edition)by Ken Arnold and James Gosling (Addison-Wesley, 1998).
Coordinators Leslie Miller, Professor
Course Outcomes
The main objective is that students will be able to analyze system requirements, and create andjustify object-oriented designs that meet their requirements and that are robust and evolvable. In
more detail, the essential outcomes for this course are that students will be able to:
Analyze system requirements and model problem domains. Evaluate the quality of an analysis, and be able to explain how to improve it. Design and build object-oriented systems. Explain and justify designs based on design principles, patterns, and heuristics. Evaluate the quality of a design, and be able to explain how to improve it. Write object-oriented code to correctly implement a design. Be able to read and write analysis and design documentation in the Unified Modeling Language
(UML).
Be able to read and write object-oriented code, in Java, that uses subclasses, inheritance, abstractmethods, subtypes, and subtype polymorphism.
Relationship between Course Outcomes and Program Outcomes: C, D, H, I, K
Prerequisites by Topic
1. Computer architecture and machine-level programming
2. Theory of computing
3. File organization and processing
Major Topics covered in the Course
1. Introduction2. Procedural Abstraction3. Data Abstraction4. Modularity, Objects, State5. Metalinguistic Abstraction6. Course Summary and Evaluation
-
8/21/2019 Courses+Outcomes+Assessments 1
35/64
35
Laboratory projects
1. Using Scheme
2. Language Design and Recursion
3. Formulating Abstractions with Higher-order Procedures4. Data Abstraction
5. Object-oriented techniques
6. Conventional interfaces and symbolic data7. Java visitors and iterators, multiple representations, and systems with generic operations
Assessment Plan for the Course
Outcome How Measured When Measured
Improvements
Identified
Improvements
Implemented
Evaluate the quality
of a design, and be
able to explain howto improve it.
Student performance
on homework, team
projects, and exams
Feedback fromcompanies and other
courses
Every semester
Too much stress on
completing the
projects.
Moved core design
material to the
beginning of thesemester.
Analyze system
requirements and
model problem
domains.
Student feedback Every semester Confusion between
system sequence
diagrams and
interaction diagrams.
Material on system
sequence diagrams
moved to later in the
semester to allowstudents to more
clearly understand
the role of interaction
diagrams.
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description of
how this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomesand Assessment Plan.
Curriculum Category Content (Semester Hours)
CORE ADVANCED CORE ADVANCED
Data Structures
Computer Organization and
Architecture
Algorithms
Concepts of Programming
Languages 2
Software Design 1
-
8/21/2019 Courses+Outcomes+Assessments 1
36/64
36
COURSE DESCRIPTION
Department and Course
Number
Com S 363 Course Instructor
Fall 2008
Shashi Gadia
Course Title Introduction to Database Management
Systems
Total Credits 3
Current Catalog Description(3-0) Cr. 3. F.S. Prereq: 228 with C- or better, Engl 250. Relational, object-oriented,
and semistructured data models and query languages. SQL, ODMG, and XML standards. Database design using
entity-relationship model, data dependencies and object definition language. Application development in SQL-likelanguages and general purpose host languages with application warehouses, mediators and wrappers. Programming
Projects. Non-major graduate credit.
Textbook Shashi K. Gadia.An Elemental Introduction to Databases. A set of class notes.
Coordinator Shashi K. Gadia, Associate Professor
Course Outcomes Students will learn about largeness of data and why it gives rise to stream-oriented processing and algebraic
languages that are higher level than general-purpose programming language such as Java.
Students will learn about storage and efficient retrieval of large information via algebraic queryoptimization and the use of indexing.
Students will learn about multiple paradigms in databases: relational, object-oriented, and semistructuredand appreciate why XML is a powerful emerging model for databases and its broader impact.
Students will learn how data from multiple heterogeneous sources is integrated.Relationship between Course outcomes and Program outcomes:H, I, J, K
Prerequisites by Topic
1. A High-level Programming Language2. Introduction to Digital Design
Major Topics covered in the Course
1. Introduction:Largeness of information and its implications on organization of disk in terms of blocks in kilobyte range
rather than words consisting of a few bytes. Layered architecture of databases and varieties of users.2. Query languages in different paradigms and hybrid languages
Foundational language relational algebra and how it gives rise to user-oriented language SQL. How SQL is
reincarnated as OQL and XQuery in object-oriented and XML data models. Hybrid language JDBC (JavaDatabase Connectivity).
3. Storage and efficient retrieval of data
Storing information in blocks on a disk. Indexing. Algebraic optimization. Query processing.4. Schema design -Schema design using Entity-relationship model and data
5. Relational, object-oriented, and semistructured (XML) data models
Programming projects.
6. Information integration: Data warehousing
Laboratory Projects
Projects on SQL, JDBC, Object-oriented query, and XQuery.
-
8/21/2019 Courses+Outcomes+Assessments 1
37/64
37
Assessment Plan for the Course
Outcome How Measured When Measured
Improvements
Identified
Improvements
Implemented
Understanding oflargeness in
information
Class discussions Every semester Give more details - Through slowerpaced class
discussion.
Broad impact of
XML
Class discussions Every semester Give more details - A lecture is
exclusively devoted
to XML to put it in
broad perspective- Efficiency issues
surrounding XML
are discussed.
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description of
how this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomesand Assessment Plan.
Curriculum Category Content (Semester Hours)
CORE ADVANCED CORE ADVANCED
Algorithms 0.50
Computer Organization and
Architecture 0.25
Data Structures 0.25
Concepts of Programming
Languages 1.50
Software Design 0.50
-
8/21/2019 Courses+Outcomes+Assessments 1
38/64
38
COURSE DESCRIPTION
Department and Course
Number
Com S 409 Course Coordinator
Fall 2008
Carl Chang
Course Title Software Requirements Engineering Total Credits 3
Current Catalog Description(Dual-listed with 509). (Cross-listed with S E). (3-0) Cr. 3. F. Prereq: Com S 309,
Engl 250, Sp Cm 212.The requirements engineering process, including identification of stakeholders, requirements
elicitation techniques such as interviews and prototyping, analysis fundamentals, requirements specification, and
validation. Use of Models: State-oriented, Function-oriented, and Object-oriented. Documentation for Software
Requirements. Informal, semi-formal, and formal representations. Structural, informational, and behavioralrequirements. Use of requirements repositories to manage and track requirements through the life cycle. Case
studies, software projects, written reports, and oral presentations will be required. Nonmajor graduate credit.
Textbook Mastering the Requirements Process (Suzanne & James Robertson, ISBN: 0-201-36046-2)
References
Managing Software Requirements A unified Approach (Dean Leffingwell and Don Widrig, ISBN: 0-201-61593-2)
UML Toolkit by Hans-erik Eriksson and Magnus Penker. Writing effective use-cases, Alistair Cockburn, ISBN: 0-201-70225-8
Coordinator Carl Chang, Professor
Simanta Mitra, Senior Lecturer
Course Outcomes
1. Students will learn about the Requirements Engineering process.
2. Students will practice requirements analysis, modeling, elicitation, and specification on medium sized projects.3. Students will learn to work with a team on requirements elicitation on medium sized projects and practice soft
skills such as communication, presentation, and asking questions etc.
4. Students will become familiar with requirements management tools (such as Rational RequisitePro).
5. Students will be exposed to latest research in requirements engineering area.
Relationship between Course Outcomes and Program Outcomes: B, D, F, H, I, K
Prerequisite by Topics
1. Software Lifecycle2. Development of Medium sized software projects
3. Proficiency in English
Major Topics covered in the Course
1. Requirements Analysis
2. Requirements Elicitation
3. Requirements Specifications
4. Requirements Validation and Verification5. Requirements Management and Tools
6. Modeling and Modeling tools.
-
8/21/2019 Courses+Outcomes+Assessments 1
39/64
39
Assessment Plan for the Course
Outcome
How Measured When Measured Improvements Identified Improvements
Implemented
Learn about andpractice
requirements
processes (Course
Outcomes 1 and
2)
Studentperformance on
screenshots, actors
and use-cases,
static and dynamic
models of problemdomain
Several timesduring the
semester.
Hard to impress on students thedifference in good requirements
analysis and poor requirements
analysis.
Multiple teamsperformed analysis
for the SAME
project. Later,
findings of
different teams arecompared to drive
home the point.
Team work
(Course outcome
3)Team performancein
- reqs project
- research project
- textbook chapterpresentations
Several times
during semester.
Class has students of vastly
different backgrounds with
different levels of readiness to
absorb information and learn.
Different levels of
complexity for
team projects.
Novice studentsassigned project
where TA andinstructor arecustomers.
Intermediate
students assignedproject where
department staff
and faculty are
customers.
Advanced studentsassigned project
where external
industry
representatives arecustomers.
Students tend to form teams
with their friends or with similarnationality/ethnicity/background
thus diminishing lessons that
can be learnt from team projectsand increasing the differences
with workplace teams.
Teams are imposed
by the instructorwith an eye
towards making the
teams diverse aspossible. Forces
students out of
their comfortzones.
Learn soft and
hard skills as
needed forprofessional
development andUse current
techniques, skills
and tools (Course
outcomes 3 and 4)
Class
Presentations,Project artifacts,
Homeworks,
Final interviews
Semester
Harder to teach soft skills. Class organized
around gathering
experiences asopposed to lecture.
Students learn softskills by
participation and
engaging soft
skills.
Text book is not really designed
as an undergraduate text book.
Students work in
teams to read and
-
8/21/2019 Courses+Outcomes+Assessments 1
40/64
40
Outcome
How Measured When Measured Improvements Identified Improvements
Implemented
Could not find any suitable.Zero to no examples or
questions at the end of chapters.
Also text book very easy toread and lessons to be learnt
from chapters can be missed.
present eachchapter to the class.
Discussion and
question/answersession at the end
of chapter. This
approach allows
more engagement
with material thanby pure lecture.
How Data in the Course is used to assess Program Outcomes
Assessment data from each course is given to the departments undergraduate committee. A detailed description of
how this data is used to assess program outcomes is provided in Appendix A, the departments Learning Outcomesand Assessment Plan.
Curriculum Category Content (Semester Hours)
CORE ADVANCED CORE ADVANCED
Data Structures
Computer Organization and
Architecture
Algorithms
Concepts of Programming
Languages
Software Design 3
-
8/21/2019 Courses+Outcomes+Assessments 1
41/64
41
COURSE DESCRIPTION
Department and Course
Number
Com S 417 Course Coordinator
Spring 2008
Simanta Mitra
Course Title Software Testing Total Credits 3
Current Catalog Description(Cross-listed with S E). (3-0) Cr. 3. S. Prereq: Com S 309, 319, Engl 250, Sp Cm
212. Comprehensive study of software testing, principles, methodologies, management strategies and techniques.
Test models, test design techniques (black box and white-box testing techniques), integration, regression, system
testing methods, and software testing tools. Nonmajor graduate credit. Oral and written reports.
TextbookAditya Mathur, Foundations of Software Testing, Addison-Wesley Professional, April 17, 2008.
References
1. Cem Kaner, Hung Nguyen, jack Falk, "Testing Computer Software", 2nd Edition, John Wiley & Sons, April 1999.(ISBN: 0471358460).
2. Boris Beizer, "Black-Box Testing: Techniques for Functional Testing of Software and Systems", John Wiley &Sons,1995. (ISBN: 0471120944)
3. Boris Beizer, "Software Testing Techniques", second edition, Vannostrand Reinhold, 1990.4. Mark Fewster and Dorothy Graham, "Software Test Automation - Effective Use of Test Execution Tools", ACM
Press and Addison-Wesley, 1999 (ISBN: 0-201-33140-3).
5. Elfriede Dustin, Jeff Rashka and John Paul, "Automated Software Testing: Introduction, Management, andPerformance", Addison-Wesley Pub Co, 1999. (ISBN: 0201432870)
Coordinator Simanta Mitra, Senior Lecturer
Course Outcomes
At the end of the course, a student who passes is expected to have met the following learning objectives.1. is knowledgeable about the basic vocabulary and concepts of this area, knows about the different test
generation and selection techniques and is able to apply this knowledge.
2.
understands the idea of software testability and designing for testability.3. understands how inspections/reviews are conducted and why they are so important at all stages of thedevelopment process. Knows about the V-model.
4. has created and executed tests using testing tools (like JUnit/TestManager). Understands the need forautomation and has used automation tools.
5. has designed and conducted testing on a software project starting from test plan to test report.6. Recorded and managed information about defects found using a defect tracking tool. Debugged and fixed
using IDE and managed different versions of software using source control tool.
7. Knows how to evaluate test cases and has evaluated test cases for the project using coverage tools.8. is able to evaluate the software based on the tests.9. knows about the issues and is able to apply knowledge of how to generate test cases for some domain-
specific testing such as: GUI, OO, Web, Component Testing etc.10. knows about the journals and conferences related to testing and has explored a topic and made a
presentation to the class on this topic and written a report on this - has been exposed to contemporary work
by researchers.
Relationship between Course Outcomes and Program Outcomes: C, D, F, H, I, K
Prerequisite by Topics
1. Software Lifecycle
2. Development of Medium sized software projects3. Proficiency in English
Major Topics covered in the Course
-
8/21/2019 Courses+Outcomes+Assessments 1
42/64
42
1. Introduction to software testing2. Black-box testing3. White-box testing4. Integration testing5. Coverage and Regression testing6. System testing and performance measurement7. Software test automation and tools8. Software quality assurance9. Domain specific issues
a. Interproceduralb. Concurrencyc. Object orientedd. Performancee. Web Basedf. GUI testing
Assessment Plan for the Course
Outcome
How Measured When Measured Improvements
Identified
Improvements
Implemented
Students understand
how to log bugs and
then fix defects on abranch and have
defects follow
controlled bugs life
cycle.(CourseOutcome#7)
Subversion logs,
bugzilla logs.
At the end of the
testing project.
Earlier students had
not been creating
branches to fix bugsand instead were
working on the
trunk. The problem
was figuring out howto create branches
and tags.
Branching and
Tagging were
explained morerigorously and the
testing project
instructions were
made more explicit.
Students needexposure to
contemporary work
by researchers(Course
outcome#12)
Guest presenters,Research project
outcomes.
At the end of thesemester.
Need guest lecturers. Asked departmentexperts on testing to
present. Dr. Samik
Basu presented hiswork to the class.
How Data in the Course is used to assess