Professional Documents
Culture Documents
Mmu SD Program Handbook 2018
Mmu SD Program Handbook 2018
Program Handbook
Abstract
This document describes the coursers associated with CarterRadley’s Software Development
BTech CSE program
Curricular Threads
The primary mission of the Software Development CS BTech (SD) Program is to achieve defined
outcomes. Curricular Threads represent how course activities, deliverables, feedback and
reflection are strategically woven within and across the SD program to develop, enhance,
practice, and hone professional skills to achieve the SD Program’s outcomes.
The Curricular Threads associated with the SD Program are:
• Communications and Critical Thinking
• Software Development Professionalism
• Computing
• Design and Theory
Each of these Curricular Threads is described in the following sections, with more detail
available in CarterRadley’s Curricular Thread skills taxonomy.
The courses listed for each thread have specific work products and activities averaging at least
one hour a week of intern work dedicated to each of the specified threads.
Communications and Critical Thinking:
Students’ ability to effectively participate in all aspects of the communication process is crucial
for success. In today’s highly competitive world, being just technically correct is not enough.
Professionals must also be able to properly understand both technical and contextual issues
and be able to compellingly explain how a proposed solution will bring both short-term and
long-term value. The Communication and Critical Thinking thread is rooted in the lower division
and covers the outcomes traditionally covered by language arts courses. Many of the more
advanced courses, such as the Architecture and Design course, focus on how to compellingly
Curriculum Schema
Credits Required for Graduation:
No. Credits Description
Credits from lab courses (7 Language Lab, 2 Physics Lab & 2 Biology Lab
11
courses * 1 credit each)
Legend:
• “Lecture” represents the number of hours of instruction per week by professor-level
instructor, whether delivered through lectures, or through in-classroom activities1.
• “Tutorial” represents the number of study hours supervised by faculty (could be
professor level or could be industrial or other qualified professionals) per week.
o Students are required to attend 2 hours of supervised study hall per course/week
and are expected to average 4 hours of unsupervised study activities per
course/week.
• “Practical” represents the number of hours spent in required lab sessions.
• “Credits” represent academic credit hours. Each academic credit hour is equivalent to
three hours of student work per week (1 hour of classroom or direct faculty instruction
and a minimum of two hours out of class student homework), typically delivered over a
15-week academic semester.
Teaching Schedule per Semester
1st Semester
Teaching Schedule
S.
No. Course No. Course Title (Hours)
1 CSD-101 Calculus I 3 2 0 4
2 CSD-102 Physics I 3 2 0 4
4 CSD-103 Communications I 3 2 0 4
1
The term is within quotation marks because we do not typically use lectures in the program. While there may be
short activities that look like lectures from time to time, in general we flip the course and have the student come to
class prepared by watching videos, articles, examples, and other artifacts designed to help the student move forward.
We believe time with the professors is too precious to spend it with the professor reading slides or the textbook to the
students.
Teaching Schedule
S.
No. Course No. Course Title (Hours)
6 CSD-105 CS Professionalism 3 2 0 4
Total 15 10 4 22
2nd Semester
Teaching Schedule
S.
No. Course No. Course Title (Hours)
1 CSD-106 Calculus II 3 2 0 4
2 CSD-107 Physics II 3 2 0 4
4 CSD-108 Communications II 3 2 0 4
Total 15 10 4 22
Teaching Schedule
S.
No. Course No. Course Title (Hours)
4 CSD-203 Ethics 3 2 0 4
6 CSD-205 Performance 3 2 0 4
Total 15 10 4 22
4th Semester
Teaching Schedule
S.
No. Course No. Course Title (Hours)
1 CSD-206 Statistics I 3 2 0 4
Teaching Schedule
S.
No. Course No. Course Title (Hours)
Total 15 10 6 22
5th Semester
Teaching Schedule
S.
No. Course No. Course Title (Hours)
1 CSD-301 Statistics II 3 2 0 4
Total 15 10 2 21
Teaching Schedule
S.
No. Course (Hours)
Course Title
No.
Lecture Tutorial Practical Credits
Total 6 4 28 22
7th Semester
Teaching Schedule
S.
No. Course No. Course Title (Hours)
5 CSD-405 Human-Computer 3 2 0 4
Interaction
Total 15 10 2 21
Teaching Schedule
S.
No. Course No. Course Title (Hours)
5 CSD-410 Innovation 3 2 0 4
Total 15 10 2 21
2
The concepts of outcomes (what can the learner do by the time of graduation) and objectives (what has the learner
been enabled to typically accomplish within 3 to 5 years of graduation) are defined by ABET.
3
https://www.indiatimes.com/news/india/80-of-engineers-who-graduated-from-indian-colleges-in-2015-are-not-
employable-249796.html
4
http://blog.hackerearth.com/2014/02/90-indian-engineering-candidates-employable-why.html
5
http://www.abet.org/about-abet/
6
A curricular thread is a sequence of activities and experiences designed to move a learner from novice to competency
over an entire program, especially those that required higher-level Bloom’s Taxonomy attainment.
7
http://www.bloomstaxonomy.org/Blooms%20Taxonomy%20questions.pdf
Figure 1 provides a high-level view for the production of the needed assessment data. Student
Outcomes and Program Objectives are found inside the box labeled Program within the box
labeled Objectives and Outcomes. Until we have certified faculty and have established the
sources and processes for defining and assessing program outcomes and objectives, our plan is
to use Continuous Assessment data as the basis for 60% of the course grade and End of Course
Assessment data for the remaining 40% to start and to shift to the 50%, 25%, and 25%
described below as faculty are certified and outcomes are defined.
Continuous Assessment
Courses consist of a number of activities that typically produce work products, some may be in-process artifacts and the remainder may be
final deliverables that are similar to those that professionals would produce. (Some lower division courses may employ more traditional
“homework” assignments, quizzes, and exams in lieu of profession work products, but they will demonstrate what they know and what they
can do with what they know.) In addition, students produce Engineering Notebooks, Lab Notes and Reports, and a Professional’s Portfolio,
documenting their work and providing evidence of their capabilities. These deliverables and artifacts are submitted regularly, are reviewed
and assessed, and they are returned with feedback designed to facilitate improvement as the course progresses. The assessment includes
percentage grades as specified here.
Weighted Average Grade Individually Graded and Recorded Individually Graded and Recorded
Contributes to 50% of the Course Grade Contributes 25% to Course Grade Contributes to Course Grade (must
and Course Outcome Grade (must pass each item to pass the course)
pass each course outcome to pass and Program Graduation (must pass
the course) and Program Outcomes each in order to graduate)
8
https://www.cmu.edu/teaching/designteach/syllabus/checklist/grading.html
Failure to achieve course quality levels places the student on academic probation where the
student must achieve passing criteria for all courses the next semester and the student must
clear the deficiency by means of using one or more of actions a. – e. listed above to avoid
expulsion from the program.
Students should not remain on academic probation for more than one semester. Students on
academic probation more than one semester are subject to review by an academic committee
and possible expulsion from the program.
Students who are required to retake a course or retake a course final assessment must also pay
the course fees current for the course and course final assessment at the time of the re-taking.
4 1
Physics I explores the basics of physical science: how to use hardware and software tools to
measure basic observable phenomena, how to record, reason about, and draw logical
conclusions from the data, and how to write up each of these properly so others can benefit
from your work (e.g. make entries into an engineering notebook).
The goal of this class is to produce students good enough in Newtonian Physics to be able to
work with a physicist who needs equations modeled/automated. Given the equations, the
programmer should be able to figure out how to implement some models using a math tool like
MATLAB or Mathematica (we’ll be using the free tool - Octave) or other programming
languages as appropriate.
Units and Performance Objectives: Following are the various phenomena studied in this class:
• Units, Measurements & Errors – Fundamental physical quantities and base units, SI and
other international systems of units, inter-conversion of units, measurement of lengths,
triangulation method, parallax method, accuracy and precision, systematic errors,
random errors, absolute & percentage errors, propagation of errors.
• Motion Along a Straight Line – Determining when an object acts as a point-like particle
and when it must be treated as a collection of such particles; reason about a particle’s
initial location, its final location, displacement, and how displacement and final location
may change over time.
• Vectors – Mathematical principles of commutative and associative laws help us
measure, record, and reason about concepts such as position, velocity, and acceleration.
• Motion in Two and Three Dimensions – How vectors can be used to model particles in a
two and three-dimension coordinate system and convert back and forth between the
coordinate system’s representation and the vector’s.
• Force and Motion – Forces can be modeled as a vector and may be a collection of
components. Newton’s first and second laws give us insights about how to deal with
real world issues such as the relationship between net force on an object, its mass, and
acceleration. When we enhance the model by adding in friction, we need to distinguish
between static and kinetic situations and consider the direction and magnitude of the
frictional force. Understand the various situations and methods of determining the
center of mass.
• Kinetic Energy and Work – Understand and apply the relationship between a particle’s
kinetic energy, mass, and speed.
• Potential and Conservation of Energy – Understand and apply the differences between
a conservative and a non-conservative force, the important aspects of a conservative
force, the gravitational potential energy in a particle-Earth system.
4 -
Calculus I introduces the intuitive, numerical and theoretical concepts of limits, continuity,
differentiation and integration. Students will study extrema, curve sketching, and applications
involving algebraic, exponential, logarithmic and trigonometric functions. This course makes
use of extensive use of GUI based software to solve problems. The intended audience of this
course is CS majors specializing is software development.
Units and Performance Objectives: Following are the various topics studied in this class
• Functions and Models – Students become skilled working with functions as both
abstract and applied real world models and can demonstrate how functions can be
composed with others to develop new functions to solve more complex problems.
Students will practice using computers and other tools to explore and more deeply
understand these functions and the implications of these models in solving real-world
problems.
• Limits and Derivatives – Students will be able to demonstrate an effective
understanding the basics of limits (e.g. tangents, velocity problems), limits of functions,
continuity, asymptotes, derivatives, rates of change, and derivatives as a function.
• Differentiation Rules – This unit explores the most commonly used differentiation rules
that facilitate effective solutions to the more common real-work problems (e.g.
polynomials, exponentials, product and quotient rules, trigonometric function rules, the
Chain Rule). Students will explore these rules and through practice become skilled at
using them.
• Applications of Differentiation – This unit build upon the foundation laid so far to
support the common applications of these concepts and rules from the real world (e.g.
minimums and maximums, the Mean Value Theorem, sketching curves, optimization
problems).
• Integrals – The final unit of this class explores areas and distances, the Definite Integral,
the Fundamental Theorem of Calculus, Indefinite Integrals, and the Substitution Rule).
Books:
• Calculus: Early Transcendentals, Metric Version. Stewart, James. 7th Edition,
ISBN-13: 978-81-315-2105-2
ISBN-10: 81-315-2105-2
4 -
4 -
This class provides a solid foundation of the most basic Computer Science and Software
Development vocabulary, concepts, tools and ways of thinking, working, and behaving as we
introduce and explore the concepts and behaviors of professionalism. This is accomplished by
means of realistic work on several projects, the most significant being to help a client specify
and design an innovative calculator for professionals working to produce spacecraft to explore
Mars and mine the Asteroids.
Performance Objectives: As a result of successfully completing this course, students will be able
to:
• Explore a topic, develop a simple taxonomy of the topic from credible sources, and
explain the topic and the taxonomy.
• Properly use the basic vocabulary, concepts, and mental models of Computer Science to
meaningfully discuss, in general, what distinguishes true professionals in software
development from hackers and others who are just good programmers.
• Read, understand, and begin to use basic UML formalisms in the study of design
documents and in communication with other software professionals.
• Discover and explain the basic consequences of simple design choices.
• Create useful Engineering Notebook entries and Mind Maps for both future reference
and for documenting the creation of Intellectual Property.
• Discuss the pros and cons of various standard intellectual properties schemes and
compellingly argue for both sides for each.
• Describe the relevance of various Computer Science sub-domains to modern
professional work and why these are of societal importance.
• Begin to develop the ability to find information relevant to a task, evaluate the
credibility of the source of the information, understand key aspects of the information,
summarize that understanding, and effectively communicate that understanding to
others.
In this class, students work on the following projects:
Science and Engineering Calculator Project for critical space mission professionals - The
project has each intern working in small groups to explore the failure of the Mars Climate
Orbiter (MCO) and the root causes of the failure. From this understanding and a video from
a client, the students will work in small groups to develop and document the requirements
for a suite of potential products, one of which is a calculator.
Professional Role Models in Software Development Web Site – To support current and
future interns launch their careers, this project requires each student to find two role models
4 -
This college level writing class experience simulates a real-world business environment in which
the student is expected to write compositions required various business scenarios. This class
emphasizes identifying rhetorical modes, reading, planning, writing, and revising of
compositions, including the development of critical and logical thinking skills. This class requires
writing a minimum of five compositions that stress analytical, evaluative, and
persuasive/argumentative writing, with at least one in-class presentation.
Performance Objectives:
• Write for different professional audiences using the appropriate voice and language in a
given cultural context.
• Write a variety of business documents that aid in the search and application of jobs.
• Write paragraphs that use proper structure, function, order, and cohesion.
• Format a document in Microsoft Word and Google Docs using MLA documentation
style.
• Follow the writing process, which involves brainstorming, outlining, drafting, revising,
and editing, to create effective business communications.
• Participate in collaborative writing, revising, and editing, using Google Docs, with their
classmates/teams.
• Read and analyze assigned scholarly and/or Web articles that present various
arguments.
• Conduct online research using basic research skills.
• Use critical reading skills to identify key phrases and positions/attitudes of the job
descriptions.
• Use rhetorical modes in writing and editing business documents.
• Set up a Twitter account and use its available tools to build a professional brand.
• Recognize the rhetorical functions of Twitter.
• Design a PowerPoint presentation using fundamental design and presentation skills.
• Create a presentation using screencast software.
In this class, students work on the following projects:
Prepare to Apply for a Job. The goal of this project is for the student to learn how to employ
reading and writing strategies during the process of applying for a job. This project is divided
into multiple tasks:
• Task 1: Students write an Informational Process letter to their management that
describes their plan for applying for a job.
4 1
Physics II focuses on the application of knowledge and skills acquired in Physics I to other fields
of physical sciences which drive the modern world:
• How to assess problems using appropriate conceptual frameworks
• How to solve problems by applying physical models
• How to investigate experimentally, how to measure and evaluate what we observe, and
how to draw and communicate conclusions in a lucid way.
The primary objective is to understand the fundamentals of technology involved in the
production of modern day state-of-the-art systems like communications systems, display
technologies, microwave devices, etc., in order to write software which is effective, error free
and flows logically.
Units and Performance Objectives: Following are the various phenomena studied in this class:
• Electric Field and Potential – Understand the nature and properties of electric charge,
determine electric fields from given charge configurations, use Gauss’ Law to determine
fields from continuous charge distributions, and calculate potentials and electrostatic
potential energies.
• Electric Current and DC circuits – Understand the basics of electric current, resistance,
resistivity, solve problems of DC electric circuits and design circuits for specific purposes.
• Charges in motion and Magnetic Field – Establish relationship between moving charges
and magnetic field, ascertain the genesis of magnetic fields, understand the underlying
principles of some magnetic devices
• Magnetic Materials & Earth’s Magnetism – Understand the magnetism in matter, apply
the knowledge of earth’s magnetism to develop navigation software, GPS, etc. Be able
to explain the working of devices based on magnetic materials like computer data
storage devices.
• AC circuits and Electromagnetic Induction – Understand and apply the concepts of
alternating current and voltages that power up almost all of our electrical and electronic
devices to design and troubleshoot real life circuits, understand the fundamental
principles of electromagnetic induction and apply them to solve problems related to
power generation
• Electromagnetic Wave – Gain insights into the backbone of modern communication
systems for writing effective software for communication systems.
• Interference & Diffraction Waves – Identify phenomenon displayed solely by waves and
calculate microscopic quantities like wavelengths and frequencies of light sources
conveniently by applying concepts of interference and diffraction.
4 -
Books: Calculus: Early Transcendentals, Metric Version. Stewart, James. 7th Edition,
ISBN-13: 978-81-315-2105-2
ISBN-10: 81-315-2105-2
4 -
This class provides a solid foundation for programming using Object Oriented Programming
(OOP) methods and Java. This class adds programming vocabulary, concepts, tools, critical
thinking skills, and professional ways of working and behaving to the foundations established in
the program’s first semester.
Performance Objectives: As a result of successfully completing this course, students will be able
to:
• Implement small to medium-sized Java applications employing Test-Driven
Development when given appropriate basic UML design documents.
• Design and implement small console-based I/O java applications and applications that
read and write files.
• Design and implement small to medium-sized event-driven Java applications using
JavaFX.
• Continue to grow an understanding of UML formalisms in the study of application
design and in communication with other software professionals.
• Understand and implement basic encapsulation in order to enhance opportunity for
reuse and to simplify code and make it easier to understand.
• Continue to produce Engineering Notebook entries for future reference and for
documenting the creation of Intellectual Property.
• Continue to add compelling evidence to one’s professional portfolio.
In this class, students work on the following projects:
Science and Engineering Calculator Project for critical space mission professionals – The
project has each intern working in small groups to explore how to implement four individual
solutions to the calculator project. The first calculator is an integer calculator. The second is a
double calculator with square root added. The third enhances the calculator by means of the
addition of error terms to measured values. (For example, how does one add and multiply
values in the form of mmmm±eee.) The final enhancement is to improve the expression of the
results so that meaningless digits beyond the point of significance (as defined by the error
term) are not displayed.
Tool for implementing Finite State Machines (FSMs) to enhance Java Applications – This
project uses tables to represent finite state machines and makes it possible for these tables to
drive the execution of the finite state machine as part of a Java application. These table-driven
machines can serve as recognizers as well as other tools making it easier to used FSMs as part
of an application.
Excel spreadsheet data analysis – This project provides the knowledge and the practiced skill to
4 -
In this class students are immersed in two realistic testing simulations; one as a Software
Developer, and the other as a Tester who is part of a System Test Team.
Performance Objectives: As a result of successfully completing this course, students will be able
to:
• As a Software Developer:
o Define and implement Unit Tests
o Implement Test Suites
o Use Test tools for executing Unit Tests
o Use tools for Defect Management
o Define and collect Unit Test Metrics
o Generate Unit Test Reports
o Define the Entry and Exit criteria for Unit Test
• As a System Tester:
o Define the scope and strategy for the Application under Test
o Identify the Test Approach and Techniques
o Estimate the Test Effort
o Create a Baseline Test Plan
o Define and collect Test Metrics
o Design Tests
o Build Test Suites
o Define the Entry and Exit criteria for all levels of Testing
o Use Test tools for Test Management, execution and Defect Management
o Generate Test Reports
o Close the Test
4 -
This college level writing class expands and refines the objectives of Communications I. As with
Communications I, this class simulates a real-world business environment in which the student
writes compositions required by various business scenarios. The course introduces writing
research-based analytical, evaluative, and persuasive/argumentative compositions using
rhetorical and research strategies.
Performance Objectives: As a result of successfully completing this course, students will be
able to:
• Recognize and analyze the rhetorical features of any composition piece.
• Respond to authors of different types of composition by writing an essay in the
appropriate tone with consideration of the audience.
• Make effective use of rhetorical techniques.
• Write unified, coherent and well-developed analytical/rhetorical essays
• Write a researched argument using at least 8 scholarly/peer reviewed sources, with the
option of using some non-scholarly web sources as additional support.
• Use the library’s public access catalog to locate books and articles, including use of the
online article databases.
• Use MLA or APA documentation style appropriately per the assignment requirements.
• Read critically, outline, and summarize complex analytical essays/articles.
• Apply a well-formed process when completing writing assignments to facilitate quality
results in a timely manner.
• Write grammatically correct sentences.
In addition, students:
• Capture effort information about their project work in a spreadsheet Effort Log.
• Record information about their project work and experiments, capturing notes and
other data and evidence about their work performed in an Engineering Notebook.
• Maintain their personal Professional Portfolio, which provides concrete evidence that
shows what the student has actually done and can be used to convince employers that
the students have the knowledge, skills, and capabilities they say they have.
• Give and Receive 360-degree feedback. Students follow a process where they learn how
to give and receive feedback about each other’s behavior and performance in the
course in a positive and professional manner.
Books: None
4 -
Calculus III continues the intuitive, practical, numerical and theoretical development of mathematic
problem solving. This course makes use of extensive use of GUI based software to solve problems.
The intended audience of this course is CS majors specializing in software development.
Units: Following are the various topics studied in this class
• Infinite Sequences and Series (sequences, series, the Integral Test and Estimate of Sums,
the Comparison Test, alternating series, absolute convergence and the Ratio and Root
test, power series, Taylor and Maclaurin Series)
• Vectors and the Geometry of Space (three-dimensional coordinate systems, vectors, the
dot product, the cross product, equations of lines and planes, cylinders and quadric
surfaces)
• Vector Functions (vector functions and space curves, derivatives and integrals of vector
functions, arc length and curvature, motion is space: velocity and acceleration)
• Partial Derivatives (functions of several variables, limits and continuity, partial
derivatives, tangent planes and linear approximations, the Chain Rule, directional
derivatives and the gradient vector, maximum and minimum values, Lagrange
Multipliers)
• Multiple Integrals (double integrals over rectangles, iterated integrals, double integrals
over general regions, double integrals in polar coordinates, applications of double
integrals, surface area, triple integrals in cylindrical coordinates, triple integrals in
spherical coordinates, change of variables in multiple integrals)
Performance Objectives:
• Use the dot and cross products to find projection vectors, area of parallelogram, volume
of parallelepiped, to derive out line and plane equations in the 3-space.
• Use vectors to study about curves in the 2-space and 3-space; compute a tangent
vector, the arc length parameterization, unit tangent and normal vectors, the
curvatures, and trajectories.
• Compute the limits of the functions with more than one variable, partial derivatives,
maxima and minima of functions of two variable, maxima and minima of functions of
two or three variables under a constraint using Lagrange multipliers.
• Set up and compute double integrals in the rectangular and polar coordinates, triple
integrals in the rectangular, cylindrical and spherical coordinates, know how to do some
applications of double and triple integrals.
Books:
4 1
Biology I explores the concepts of biological systems, mechanisms, and process and the relevance
of these to individuals and society. The intern develops a foundational appreciation for the role
of science and engineering to biology as well as the importance of information processing,
analytical methods, and tools.
The goal of this class is to lay the foundation for interns with enough breadth and depth in biology
to serve as software developers, information scientists, and big-data analysts to researchers,
developers, and operators in all major aspects of biological activities.
Units and Performance Objectives: Following are the various phenomena studied in this course:
• The Study of Life – Darwinian evolution, biological taxonomies and classification
schemes, the relationships between various classes of biological entities (e.g. symbiosis
from predation to commensalism).
• The Chemical Foundation of Life – Atoms, isotopes, ions, molecules, water, and carbon.
• Biological Macromolecules – Synthesis of biological macromolecules, carbohydrates,
lipids, proteins, and nucleic acids.
• Cells - Cellular structures, functions, metabolism, respiration, photosynthesis, cell
communication, and cell reproduction.
• Genetics – Meiosis and sexual reproduction, Mendel’s experiments and heredity,
inheritance, DNA structures and functions, genes and proteins, gene expression, and
biotechnology and genomics.
Books:
• Rye, C., Wise, R., Jurukovski, V., DeSaix, J., Choi, J., Avissay, Y. (2017). Biology. OpenStax,
Rice University. ISBN-13 978-1-947172-02-9 (http://cnx.org/content/col11448/1.10)
• Essentials of Cell Biology, by O'Connor, C. M. & Adams, J. U. Cambridge, MA: NPG
Education, 2010. (https://www.nature.com/scitable/ebooks/essentials-of-cell-biology-
14749010/contents)
• Essentials of Genetics. Miko, I. & Lejeune, L., eds. Cambridge, MA: NPG Education, 2009
(https://www.nature.com/scitable/ebooks/essentials-of-genetics-8/contents)
4 -
Application Design Choices continues the introduction to application development that began
with Application Development in the second semester of the first year. The key aspects of the
course are the continued focus on the core aspect of the Java language and how they provide a
solid foundation for the creation of applications and for the engineering of very large and
complex systems. Upon a quick review of the material covered one might conclude that this is a
Data Structures class, and it is true that some foundational building blocks of data structures are
introduced in this course, but the purpose is to provide a solid coverage of the Java language and
the critical resources and libraries at the heart of the language, such as the Java Collections
Framework.
The design of the course continues with projects and topics introduced in prior courses, such as
the Calculator project and the Excel project allowing the interns to work with more complex
applications and designs due to the familiarity earned from previous work in the Application
Development course and the Software Testing and Tools course.
Units and Performance Objectives: Following are the various topics studied in this class
• Lifecycles – Lifecycle models from Royce to RUP to Scrum with demonstration of current
best practices in the class projects
• Process – Understanding and managing complexity and change with a demonstration in
the class projects
• Design – UML models and the flow from requirements to maintainable code; required
use in each class project
• Recursion – Basics of recursion to more advanced methods with backtracking with
practical application in at least one class project
• Sorting and Searching – A gentle introduction to Big O and performance formalisms; use
of Big O analysis to predict the impact of scaling up in at least one class project
• The Java Collections Framework – Understanding and basic implementation skill on a
set of classes and interfaces that implement commonly reusable collection data
structures and it provides both interfaces that define various collections, classes that
implement them, and the benefits of the enhancements brought by Java 8 and Java 9.
• Basic Data Structures – The use of the basic data structures to solve common data
analysis problems (e.g. stack, maps, hash tables).
• Tree Structures – Further expansion of the Java language support to tree structures and
common problem solutions.
• Generic Classes – Lay the foundation of the mechanisms and tactics to create general
purpose APIs and Libraries within the language.
4 -
The performance class builds upon the first-year’s coverage of Java to explore how to measure
performance, the various factors that influence it, and the extent to which design and language
choices can bring value. In addition to further work with Java, interns in this class will learn the
C programming language from the most widely used text, will compare and contrast the
performance of similar and different algorithms in both Java and C, and will explore the root
causes for the results they are seeing.
Units and Performance Objectives: Following are the various topics studied in this class
• Ability to write simple programs in C as defined by Kernighan and Ritchie.
• Compare and contrast the performance of the UNumber Java unlimited precision library
with the standard BigDecimal library.
• Compare and contrast a straightforward implementation of Conway’s Game of Life in
Java and C, analyze the performance characteristics, and explore and document the
reasons for the results.
• Research ways to enhance both the Java and the C implementations of Conway’s Game
of Life using the unique features of each language, analyze the new performance
figures, and document the results of these experiments.
In this class, interns work on the following projects:
Project 1 – Performance benefits of the use of the BigDecimal library over the UNumber library.
This project requires individuals to develop an approach to assess the performance of two
different APIs, to perform the assessment, to analyze the results, to write up the results, and to
present the results in both a written and presentation form. This project is a blend of individual
and small team (two to three members) activities. The project will have several deliverables,
where the later deliverables provide opportunities for the interns to address issues in their earlier
work as they move forward on the project.
Project 2 – Naïve implementations of Conway’s Game of Life with performance analysis and
conclusions. This project requires each student to learn the C programming language in order to
test the assertion that it is possible to write code in C that outperformed Java. The measure of
performance will be the maximum frame-rate the application can generate. The students will
compete with one another in terms of speed of their C programs, but the grade will be based on
the quality of the C code based on a provided assessment rubric.
Project 3 – Graphical User Interface (GUI) Dictionary with improved searching – A study of the
performance benefits of replacing the default string operators with a better alternative as well
as replacing the default linear search algorithm with tree and hash table methods on a large data
set. (In order to use this large data set, enhancements to the application will be required.
4 -
This course explores typical ethical problems professionals face, how professional societies
address these issues, and how to recognize when something innocent is turning into something
awkward and wrong, if not illegal. Interns explore cases from recent events (less than two years
old) as an integral part of the class to ensure currency and relevance. This project-based class
puts interns in positions to help senior managers and technical professionals tackle various
slippery-slope scenarios in a realistic context.
Units and Performance Objectives: Following are the various topics studied in this class:
• Able to list and knowledgably discuss the common foundational aspects of professional
behavior recognized in the ethical and code of conduct policies of professional societies,
such as the ACM, IEEE, and others relevant to ACE. This includes, but is not limited to,
the expectations of the behavior of these professional as well as the quality, timeliness,
value, and other relevant attributes of the work products produced.
• Provide practical insights into common professional ethical dilemmas in software
development.
• Establish a solid foundation for reasoning about ethics and analyzing the consequences
of decisions and actions both in the near and long term and why they may differ.
• Practice the use of critical thinking skills, especially in complex situations with multiple
stakeholders and differing goals, objectives, and so forth.
• Explore recent ethics issues, appreciate the underlying dilemmas, and be able to
compellingly describe and represent the potentially conflicting perspectives.
• Strategic success in a hyper-competitive world
In this class, interns work on the following projects:
Project 1 – Establish a meaningful Corporate Professional Ethics Policy – Interns for ACE are asked
to survey professional engineering societies, compare and contrast their ethical policy
statements, identify the key concepts that are relevant to ACE, and produce a draft policy
statement for management’s review and suggestions for improvement.
Project 2 – Create a corporate ethics handbook – Each member of the team is expected to
produce at least one example of an ethical problem drawn from the current events no more than
two years old. Given this problem, each intern is expected to produce an ethics handbook article
of at least three pages at the quality level appropriate for Wikipedia as well as a three-minute
video presentation. Both of these must explain the nature of the ethical dilemma, how it starts
or initially appears to be reasonable and how it morphs into something that is clearly
unacceptable.
Project 3 – Ethical Dilemmas: On the edge - Current events that could lead to ethical challenges
4 -
For many, statistics is just another branch of mathematics. For many business professionals and
scientists, statistics is a critical decisions support tool that empowers and enable complex and
key decisions to be made without relying on opinions and politics. We begin the course with
several scenarios where development teams and management what to be able to analyze
historical data in order to make informed decisions. The R language is perfect for tasks such as
these, so this first course in statistics bounces between a set of business questions that need to
be answered and building up the capabilities to reason about those questions leveraging
historical data.
With the advent of modern calculators, statisticians face the upside and the downside of these
new tools. Suddenly, large numbers of people could enter data into these calculators and
compute a wide array of complex statistical results. Some learn quite painfully, that computing
a statistical result is not the same as knowing whether or not the result is significant.
We believe that a careful blend of solid statistics with real world applications in a mutually
supportive manner provides the learner with the basis to understand not just the “what” and the
“how”, but also the “why”. For many, statistics was just another tool box of math and techniques
with no real motivation beyond, “Trust us. You’ll be happy you learned this someday.” With our
approach, you learn about the need and the means of addressing it at the same time producing
a better professional decision maker and better statistician at the same time.
Units and Performance Objectives:
• Collecting the data – Fetching information from various sources in order provide a
robust collection of data upon which to base analysis and decision making
• Preparing the data – Normalizing data, filling in missing data, correcting coding errors
• Annotating the data – Adding additional information to the data
• Structuring the data – Generating descriptive statistics about the data
• Modeling the data – Assessing the extent to which the data aligns with various models
and determine whether or not the data supports various key decisions
• Visualizing the data – Display the data in various graphical, tabular, and other forms to
help tease out insights
• Laying out the results – Produce the supporting evidence in final form for formal
decision making and publication
In this class, interns work on the following projects:
Project 1 – Improving Quality of Life: A client software development firm has a wealth of
performance data and they want to know: “Can this data be used to help improve basic planning
and decision making at the individual and team level?”
4 -
This course balances the theoretical development of data structures with the growing societal
need for quality. Traditionally, studies of data structures have been focused on enhancing
performance due to the limits of memory and CPU performance. With small hand-held devices
running with gigabytes of main memory (closing in on a terabyte of secondary storage) and multi-
cored CPUs (moving from two toward four and higher), the traditional focus of data structures is
changing.
The course starts with a focus on software quality broadly, the concept of recognizing recurring
problems and sets of solutions for each with varying pros and cons, and how establishing
interfaces with encapsulated implementations gives future developers the tools they need to
build ever-more complex and sophisticated solutions.
Units and Performance Objectives: Following are the various topics studied in this class
• Software quality and how it can be assessed
• Interfaces, encapsulation, and containers
• Analysis of algorithms using Big-O
• Classical data structures (stacks, queues, sets, lists, tables, trees, graphs)
• Iteration and recursive solutions
• Searching and sorting (including hashing)
In this class, interns work on the following projects:
Project 1 – Enhanced dictionary API using generics: Leveraging work from Application Design
Choices, this project explores improving speed by means of more effective data structures and
algorithms.
Project 2 – Adding programmability to the calculator project: The Calculator project that has
been a recurring thread in this program has a new requirement, programmability. Questions
about what the language should be like and how the facility should work make this project very
realistic.
Project 3 – Conway’s Game of Life employing sparse storage
In addition, interns:
• Produce work produces that require further development on the Computing curricular
thread.
• Capture effort information about their project work in a spreadsheet Effort Log.
• Record information about their project work and experiments, capturing notes and
other data and evidence about their work performed in an Engineering Notebook.
4 -
From the original paper Programming in the Small versus Programming in the Large, there has
been a struggle to leverage the benefits other domains have had separating high-level design
from the detail. The seminal work at CMU’s Software Engineering Institute’s Architecture project
gave us many good concepts, but it is not clear that many of the advocated processes and
methods are effectively transferable to mainstream senior system architects and designers.
This course surveys the results from the SEI and other advancements, including frameworks, and
other emerging approaches, such as DevOps and how quality attributes such as continuous
delivery with security depends on careful architectural decisions.
Units and Performance Objectives:
• Software Quality: quality attributes, trade-offs, inflection points, and assessments
• Software Frameworks: Assessing architectures, architectural patterns and reference
models, architectural structures and views, choosing and architecture versus building
your own, implementing an architecture.
• Design Patterns: What is a design pattern? What value does a design pattern bring?
How does one use a design pattern? Survey and prioritize the currently popular design
patterns for Java based on relevance to what typical software developers do.
• Processes: Agile versus DevOps (and DevSecOps) with a focus on issues of quality and
sustainability.
In this class, interns work on the following projects:
Project 1 – Scaling up: Interns are provided a description of a personal tool that helps them keep
track of what they do, how much they produce, and how much time is spent. Issues of personal
information privacy and security is raised as an issue as the requirements grow to support teams,
teams of teams, organizational information usage, and professional usage. How can this project
accomplish all of these goals as the number of users grows dramatically larger?
Project 2 – Continuous deployment: Interns are asked to design an end-to-end DevSecOps
process to support Project 1 complete with software architecture and design decisions as well as
the pipeline design, deployment, and sustainment.
In addition, interns:
• Produce work produces that require further development on the Communications and
Critical Thinking curricular thread.
• Produce work produces that require further development on the Software Development
Professionalism curricular thread.
4 1
Biology II builds upon the foundation of Biology I with a deeper focus on projects relevant to
current and emerging societal needs (e.g. Computational Biology, Healthcare Informatics, etc.)
The goal of this class is to produce interns with additional depth and breadth to strengthen their
understanding and skills while they develop material for a major project.
Units and Performance Objectives: Following are studied in this course:
• Infectious disease and vaccines – The processes and mechanisms common in biological
systems that enable infectious disease, how immunology and vaccines counter them,
and how computational methods support healthcare workers.
• Cancer – The development, causes, mechanisms, and treatment of cancers with a focus
on how computation is shaping future treatments.
• From Drug Discovery to Design and Creation – The process, procedures, techniques, and
tools of modern medicine are being transformed by means of recent computational
advancements.
• Environment biosafety, bio-resources, and biodiversity – The benefits, impacts,
obligations, and conflicts in managing a global ecosystem.
In this class, interns work on a major project of their choosing which provides them an
opportunity to explore issues in the design and implementation of a computational solution to a
real-world problem In addition, interns:
• Capture effort information about their project work in a spreadsheet Effort Log.
• Record information about their project work and experiments, capturing notes and
other data and evidence about their work performed in an Engineering Notebook.
• Maintain their personal Professional Portfolio, which provides concrete evidence that
shows what the intern has actually done and can be used to convince employers that
the interns have the knowledge, skills, and capabilities they say they have.
Books:
• Rye, C., Wise, R., Jurukovski, V., DeSaix, J., Choi, J., Avissay, Y. (2017). Biology. OpenStax,
Rice University. ISBN-13 978-1-947172-02-9 (http://cnx.org/content/col11448/1.10)
• Essentials of Cell Biology, by O'Connor, C. M. & Adams, J. U. Cambridge, MA: NPG
Education, (2010) (https://www.nature.com/scitable/ebooks/essentials-of-cell-biology-
14749010/contents)
• Essentials of Genetics. Miko, I. & Lejeune, L., eds. Cambridge, MA: NPG Education, (2009)
(https://www.nature.com/scitable/ebooks/essentials-of-genetics-8/contents)
4 -
This project-based course will survey human factor problems from a number of domains as a
starting point to consider the design of user interfaces in desktop, mobile, and web applications.
This highly interactive class requires analysis of standard problems as well as problems individual
bring to the course from recent events. The focus of projects can be to influence product design,
organizational processes and procedures, public policies, and other mechanisms that shape and
guide our lives.
Units and Performance Objectives: Following are the various topics studied in this class
• Problems and how we study and learn about them
• The impact and influence of instant global communication
• Perception
• User interfaces
• Safety
• How automation has changed the way we work, think, and live
In this class, interns work on the following projects:
Project 1 – Tailoring a user interface for desktop and mobile operations
Project 2 – Use of automation to enhance data capture
Project 3 – Human Factors Research project
In addition, interns:
• Produce work produces that require further development on the Communications and
Critical Thinking curricular thread.
• Capture effort information about their project work in a spreadsheet Effort Log.
• Record information about their project work and experiments, capturing notes and
other data and evidence about their work performed in an Engineering Notebook.
• Maintain their personal Professional Portfolio, which provides concrete evidence that
shows what the intern has actually done and can be used to convince employers that
the interns have the knowledge, skills, and capabilities they say they have.
Books:
• Krug, Steve. Don't Make Me Think, Revisited: A Common-Sense Approach to Web
Usability, 3rd Edition. ISBN-13: 978-0321965516.
• Norman, Don. (2013) The Design of Everyday Things: Revised and Expanded Edition.
ASIN: B00E257T6C.
4 -
This second course in statistics builds upon the first semester course with a pair of projects and
research into statistics to support both.
Units and Performance Objectives:
• Building applications that leverage (explicitly or implicitly) statistical analysis by
integrating modules from various sources
• Self-directed tool discovery, evaluation, and implementation
• Explore Python as “glue code”
In this class, interns work on the following projects:
Project – Improving Quality of Life: The project continues with additional requirements to
explore integrating components from other solutions by means of the use of Python.
In addition, interns:
• Capture effort information about their project work in a spreadsheet Effort Log.
• Record information about their project work and experiments, capturing notes and
other data and evidence about their work performed in an Engineering Notebook.
• Maintain their personal Professional Portfolio, which provides concrete evidence that
shows what the intern has actually done and can be used to convince employers that
the interns have the knowledge, skills, and capabilities they say they have.
Books:
• Kabacoff, Robert (2015). R in Action. Manning Publications Co., USA. ISBN:
9781617291388.
• Wheeler, Donald J. (2000). Understanding Variation: The Key to Managing Chaos. 2nd
Revised Edition. SPC Press. ISBN-13: 978-0945320531.
• Additional assets available on the Internet:
https://cloud.google.com/appengine/docs/standard/python/datastore/stats
http://people.duke.edu/~ccc14/sta-663-2017/index.html#
4 -
Building secure and reliable code requires more than just careful coding, especially in a
networked world. This course performs an interrelated survey of topics in computer
networking and computer security as many of the benefits of computing comes from the
networking of individuals and a wide array of computing and information resources. At the
same time, these connections to so many different people and resources is also the major
source of the security problems we face.9
During this course, interns will work on three projects in parallel with the expectation that
benefits will come from the juxtaposition of these projects. The first focuses on a survey of
current computer networking, the problems each is designed to address, the pros and cons in
those areas of overlap, and typical structures and common uses. The second focuses on a
survey of current best practices in computer security and processes in system development and
operations (e.g. DevOps). The third project is a proof of concept demonstration of containers
and the linking cloud servers, a desktop, and a mobile device.
Units and Performance Objectives:
• Networks: Wide Area Networks, Local Area Networks, and others (Bluetooth, ad hoc
networks, and Near Field Networks)
• Networking Hardware: routers, switches, bridges, etc.
• Security Overview: security trends, threats, countermeasures, and processes.
• Security Best Practices: survey of professional security standards, including DevOps and
DevSecOps.
In this class, interns work on the following projects:
Project 1 – Survey of current and emerging networking trends: Given a high-value problem
domain of the intern’s choosing, survey the current and emerging trends in hardware, systems,
and software and produce a recommended implementation approach.
Project 2 – Survey of current and emerging security trends: Given the same problem domain
as Project 1, survey the current and emerging trends in computer security from the perspective
of architecting, designing, implementing, and operating a high-value system considering all
significant threat vectors (including but not limited to intrusions, man-in-the-middle, and
insiders). The result of this study will be a report, recommended implementation approach.
Project 3 – Proof-of-concept demonstration: Leveraging all that has been learned, link together
cloud servers, laptops/desktops, and mobile devices in a demonstration of as many of the best
9
A computer that is not networked and which has no mechanism to access files or information streams from external sources is
one of the most secure computers we can imagine.
4 -
22 -
10
Typically one semester (4-months) or one semester plus a summer semester (6-months).
4 -
11
Isolated electives courses that are not designed to fit together to provide both breadth and depth are not offered in
the SD Program.
4 -
The mathematic of computers, by their very nature, is fundamentally different from the
continuous mathematics of calculus. While the double precision floating point values are
precise-enough for many engineering applications, they are still a sequence of discrete values
and the discontinuous aspects make them unsuitable for advancements of number theory that
depend upon continuous values and the properties that between any two real values, there are
an infinite number of rational and irrational values, which is clearly not true when one has just
128 bits (or any other fixed number of bits) to represent a value.
It is unusual to find a discrete mathematics course in a program’s fourth year. This does not
mean that the concepts, vocabulary, and principles of Discrete Mathematics have not been
introduced, developed, or used in the first three years. Quite the contrary is true. We have
introduced these things when the practical topics being addressed required these discrete
mathematic concepts (such as induction in Applications Development). By the fourth year,
most of the interns will have matured to the point that a more formal treatment of Discrete
Mathematics will provide some lasting benefit as opposed to being just another theory course
to be survived (and mostly forgotten in the rush to learn enough to make a living).
This Discrete Mathematics course strives to walk an awkward balance between a solid
introduction to the topic from the theory perspective while still providing useful tooling and
insights to modern software developers.
Units and Performance Objectives:
• Boolean Functions and Computer Arithmetic
• Logic
• Number Theory and Cryptography
• Sets and Functions
• Equivalence and Order
• Induction, Sequences, and Series
In this class, interns work on the following projects:
Project 1 – Cryptography: What is the mathematics of cryptography? Why does it work and
why should people believe that it can protect information? How should it be implemented and
why?
Project 2 – Relational Databases: How is it that relational databases provide performance
enhancements over naïve approaches? What are the characteristics of the underlying methods
for the non-SQL databases that allow them to bring value?
Project 3 – Logistics, Scheduling, and Game Theory: Explore the application of Discrete
4 -
The nature of programming is changing because computers are changing. Even our low-cost
mobile devices have multiple computing cores and yet most programmers know little about
how the new generations of computers work, let alone how to make these designs safe, secure,
and reliable.
This introductory course explores two aspects of computing architectures: the first is the bits,
bytes, and “words” that form the fundamental building blocks of computers, and how they are
structured and used by processors, networks, and other computing engines. The second is a
study of the logical frameworks that have developed to address and deal with the explosion of
the size of applications in terms of their own internal complexity and then the emergent
complexity when people link and network subsystems together in ways the original designers
have never considered.
This course provides the learner with several project-based threads over the semester designed
to provide hands-on experience with the real issues that confront new and developing
programmers. The course is not designed to produce software architects, but to give insight
about what such professionals do, what they produce, and how developers can leverage the
work of such architects to the benefit of their organization and the clients they serve.
• Units and Performance Objectives: The course is designed to expose the learners to key
aspects of programming that goes far beyond that which is typically taught in modern
programming courses. The following topics are covered, and it is the objective of the
course that by means of the exploration and study of these topics, a much deeper
appreciation and understanding about computing and the production of high-quality
code will result.
• Data Representation: How data is represented and issues with these various solutions
has been a topic thread across a number of courses in this program. In this course we
dig deeper into other data representations in current and emerging use.
• Assembly Language: Machine languages and their direct representation as a
programming language used to be a key part of any serious programmer’s repertoire.
The popularization of C and the dramatic growth in main memory and CPU
performance, the pressure get every possible benefit from a system has been reduced.
These advancements have not eliminated the benefit of understanding what is really
going on and there are still aspects of programming that requires working at as close to
the hardware as possible.
• Memory Management: While many personal phones have more main and secondary
memory than most corporate mainframe computers of the 1980s, there will never be
enough memory or CPU power to do everything that everyone wants fast enough and
4 -
With computers being at the heart of so many things we use and with which we interact each
day, it is important to recognize how to imagine, design, implement, and evaluate such systems
to be used by typical humans who have little or no interest in computing.
Units and Performance Objectives:
• History of Human/Computer Interaction
• Ideation and Communication
• Fundamental Design Processes
• Visual Design
• Prototyping
• Evaluation
• Reflection and Improvement
In this class, interns work on the following projects:
Project 1 – Intern Project: Interns select one of the projects they are implementing in the
program and focus on the HCI aspects of the user-interface as the concrete realization of the
deliverables called out in this course. A rigorous mentor-led, peer-review process, is at the
heart of the iterative process of implementing the profession design and demonstration
deliverables.
In addition, interns:
• Produce work products that require further development on the Communications and
Critical Thinking curricular thread.
• Produce work products that require further development on the Computing curricular
thread.
• Produce work products that require further development on the Design and Theory
curricular thread.
• Capture effort information about their project work in a spreadsheet Effort Log.
• Record information about their project work and experiments, capturing notes and
other data and evidence about their work performed in an Engineering Notebook.
• Maintain their personal Professional Portfolio, which provides concrete evidence that
shows what the intern has actually done and can be used to convince employers that
the interns have the knowledge, skills, and capabilities they say they have.
Books:
4 -
The second course in the elective sequence moves the project team toward the production of a
minimal viable product (MVP) while striving to produce enough of the MVP to convince
management and prospective clients that the product development work is worthy.
Interns, whether working individually or in teams, are expected to have new insights and
appreciations about what is required to bring value to clients. Leveraging those new insights,
interns produce an environment designed to support the project, they establish a backlog of
user stories, and they work to implement the backlog using an iterative development and
deployment process.
Units and Performance Objectives:
• Implementing software using an agile approach
• Continuous implementation and deployment using a risk-based approach
• Establishing and maintaining leadership and client engagement using agile methods
• Assessing for and documenting technical debt
In this class, interns work on the following projects:
Project 1 – Minimum Viable Product Tooling: Leveraging the experiences from the first course
in the sequence and the Internship, the interns will refine their definition of the project (with a
special focus on the Minimum Viable Product and Risk Mitigation), define and document the
processes (with a focus on iterative implementation and deployment), methods, tools, and
plans required for their team to implement to implement the MVP while honoring their
processes and methods, and remain engaged with ACE leadership and any potential clients.
Project 2 – Backlog: In parallel with Project 1, the team will establish the project backlog (e.g. a
set of user stories consistent with the new definition of done). During the course, the definition
of the backlog will be refined and enhanced based on experiences obtained and lessons
learned.
Project 3 – Iterative Implementation and Deployment: Using the processes, methods, and
tools from Project 1 and the backlog from Project 2, the team will implement the project
backlog in a manner consistent with the documented processes and the plans.
Project 4 – Architecture: As Project 3 unfolds, the team will reflect on their experiences, their
growing insight about the project, any technical debt they are incurring, and produce a
proposal for architectural improvements as required to address technical debt and concerns
about non-functional quality attributes that might not be adequately addressed in the current
vision of the MVP.
In addition, interns:
4 -
Being a successful software developer over one’s entire professional career requires balancing
key aspects of life. The exact set depends upon your career choice, your interests, and your
skills. One aspect that is crucial is your ability to make commitments and then honor your
professional commitment with quality, within budget, and on if not ahead of schedule. The
most critical skill is that of recognizing the difference between novel and familiar work in each
new project; leveraging your past experiences to avoid known problems; take advantage of
processes, methods, and tools that have been shown to be helpful for you; use those processes
that help you avoid variation and which generate good results; and gather, analyze, and use
personal historical data to support the production of plans and schedules as well as track
progression as needed to enhance predictability, quality, and performance.
Units and Performance Objectives:
• The basis for a successful career
• Finding the routine in new work
• Applying the lessons from Deming, Juran, and Crosby to your work (We know! You are
not in the field of manufacturing.)
• The basis for useful historical data: a repeatable process
• Useful schedule and quality data
• Statistical Process Control for an individual
In this class, interns work on the following projects:
Project 1 – Intern Project: Interns select one of the projects they are implementing in the
program and focus on quality and predictability of the production of the deliverables called out
in the project plan. A rigorous mentor-led, peer-review process, is at the heart of the iterative
process of implementing the project deliverables.
In addition, interns:
• Produce work products that require further development on the Software Development
Professionalism curricular thread.
• Produce work products that require further development on the Computing curricular
thread.
• Capture effort information about their project work in a spreadsheet Effort Log.
• Record information about their project work and experiments, capturing notes and
other data and evidence about their work performed in an Engineering Notebook.
4 -
Common wisdom seldom results in sustainably successful companies. Few computing firms
that were considered best-of-class one and two decades ago exist today, or if they do, they are
just a mere shadow of their previous glory. Creating a healthy environment for high-quality,
high value products and services is not easy.
Innovation may be a simple concept, but the implementation and sustainment of this concept is
something else altogether.
Units and Performance Objectives:
• Survey of innovation in computing
• The attributes of innovation in computing
• The key aspects of an environment that facilitates and enables innovation
• Establishing and sustaining a healthy innovative environment
• Putting the concepts into practice
In this class, interns work on the following projects:
Project 1 – Intern Project: Interns select one of the projects they are implementing in the
program or selects a project from a set the professor provides. A rigorous mentor-led, peer-
review process, is at the heart of the iterative process of implementing the project deliverables
in alignment with the concepts and principles from the course.
In addition, interns:
• Produce work products that require further development on the Communications and
Critical Thinking curricular thread.
• Capture effort information about their project work in a spreadsheet Effort Log.
• Record information about their project work and experiments, capturing notes and
other data and evidence about their work performed in an Engineering Notebook.
• Maintain their personal Professional Portfolio, which provides concrete evidence that
shows what the intern has actually done and can be used to convince employers that
the interns have the knowledge, skills, and capabilities they say they have.
Books:
• Mehta, Kumar. (2017) The Innovation Biome: A Sustained Business Environment Where
Innovation Thrives, 1st Edition. River Grove Books. ISBN-13: 978-1632991560.
• Moore, Geoffrey A. (2014). Crossing the Chasm: Marketing and Selling Disruptive
Products to Mainstream Customers, 3rd Edition. Collins Business Essentials.
ASIN: B00DB3D81G
4 -
By the end of the second course in the sequence, interns (working individually or on teams) will
have a much deeper appreciation of what is required to deliver a Minimum Viable Product in
the context of real-world constraints on time and resources. The definition of project success
shifts to “What can you show us that you and your team have accomplished that will impress us
and convince us that you are a truly valuable ACE resource?” Knowing a great deal is not
enough. What are you actually able to do and what can you compellingly show and explain to
others.
This third course is about demonstrating your professionalism, the quality of your work, your
ability to work well with others, and the extent to which you and your team can deliver such
work on-time, within budget, over and over again.
Units and Performance Objectives:
• Architectural assessments, with a focus on non-functional quality attributes, and the
capability to use the assessment results to bring value to your firm and your client.
• Refactoring code as required to address and reduce technical debt.
• Improving predictability and quality by means of data gathering, reflection, process
improvement, and personal improvement efforts.
In this class, interns work on the following projects:
Project 1 – Architectural Assessment: Continuing the analysis of technical debt and non-
functional quality attributes, the team refactors (as required) their code base.
Project 2 – Planning for Success: In parallel with Project 1, the team will establish the project
backlog (e.g. a set of user stories consistent with the new definition of done). During the
course, the definition of the backlog will be refined and enhanced based on experiences
obtained and lessons learned.
Project 3 – Iterative Implementation and Deployment: Using the processes, methods, and
tools from Project 1 and the backlog from Project 2, the team will implement the project
backlog in a manner consistent with the documented processes and the plans.
In addition, interns:
• Produce work products that require further development on the Computing curricular
thread.
• Capture effort information about their project work in a spreadsheet Effort Log.
• Record information about their project work and experiments, capturing notes and
other data and evidence about their work performed in an Engineering Notebook.