Download as pdf or txt
Download as pdf or txt
You are on page 1of 89

BTech CSE with Specialization in Software Development (SD)

Program Handbook

Abstract
This document describes the coursers associated with CarterRadley’s Software Development
BTech CSE program

Dr. Lynn Robert Carter & Martin R. Radley


lynn.carter@carterradley.com
martin.radley@carterradley.com

June 15, 2018

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 1


Table of Contents
Software Development (SD) Program Overview.......................................................................... 4
Curricular Threads .................................................................................................................. 5
Communications and Critical Thinking: ............................................................................... 5
Software Development Professionalism: ............................................................................. 6
Computing: ......................................................................................................................... 8
Design and Theory: ........................................................................................................... 10
Curriculum Schema ............................................................................................................... 11
Credits Required for Graduation: ...................................................................................... 11
Teaching Schedule per Semester....................................................................................... 12
SD Program Curriculum Layout ............................................................................................. 18
Assessment & Grading Policy ................................................................................................ 19
Course Level...................................................................................................................... 19
Program Level ................................................................................................................... 21
Graduation Check ............................................................................................................. 21
Accreditation .................................................................................................................... 22
Continuous and End-of-Course Assessments..................................................................... 22
Course Marks & Grades: ................................................................................................... 24
Passing a Course ............................................................................................................... 25
Program Failure Policy ...................................................................................................... 25
Graduating from the Program ........................................................................................... 27
Year 1 Overview........................................................................................................................ 28
Physics I with Lab .................................................................................................................. 30
Calculus I .............................................................................................................................. 32
Computation & Problem Solving ........................................................................................... 33
Computer Science Professionalism ....................................................................................... 35
Communications I with Lab ................................................................................................... 37
Physics II with Lab ................................................................................................................. 39
Calculus II.............................................................................................................................. 41
Application Development ..................................................................................................... 42

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 2


Software Testing & Tools ...................................................................................................... 44
Communications II ................................................................................................................ 46
Year 2 Overview........................................................................................................................ 47
Calculus III............................................................................................................................. 49
Biology I with Lab .................................................................................................................. 51
Application Design Choices ................................................................................................... 52
Performance ......................................................................................................................... 54
Ethics .................................................................................................................................... 56
Statistics I ............................................................................................................................. 58
Data Structures ..................................................................................................................... 60
Architecture & Design ........................................................................................................... 62
Biology II with Lab ................................................................................................................. 64
Human Factors...................................................................................................................... 65
Year 3 Overview........................................................................................................................ 66
Statistics II ............................................................................................................................ 67
Networking and Security ....................................................................................................... 68
Databases, Client/Server, and Software as a Service (SaaS)................................................... 70
Simulated Internship............................................................................................................. 71
Three Course Elective Sequence – Course #1 ........................................................................ 74
Year 4 Overview........................................................................................................................ 76
Discrete Math ....................................................................................................................... 77
Computer Systems ................................................................................................................ 79
Human/Computer Interactions ............................................................................................. 81
Three Course Elective Sequence – Course #2 ........................................................................ 83
High Performance Engineer .................................................................................................. 85
Innovation ............................................................................................................................ 87
Three Course Elective Sequence – Course #3 ........................................................................ 88

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 3


Software Development (SD) Program Overview
There are two primary reasons why we send our children to university:
• So they become prepared for a sustainable career in a well-paying field.
• To develop them into happy, productive citizens capable of fully participating in their
world.
Maharishi Markandeshwar Deemed to be University’s (MMDU) new Software Development CS
BTech (SD) Program has been carefully designed to produce such graduates. Here’s how:
• First, the primary outcome of the SD program is to produce graduates who will be job-
ready for a specific job-role: software developer with expertise in Java and 1-2 years of
work experience.
• Second, the program immerses students into a simulated work environment where,
from day one, they work as interns on realistic projects to produce real industry
deliverables using real industry processes and tools.
Finally, we know that our students will struggle with their assignments at first, so we mentor
them with professionally trained faculty whose purpose and goal is to help the students
succeed.
Students in the SD Program will get four years of on-the-job training, but in a safe environment
where mistakes are lessons to be learned.
Of course, none of this would matter if the software industry is in decline, however it is not.
Most projections for the software industry call for at least 50% growth in well-paying jobs
requiring significant expertise over the foreseeable future.
The SD program focuses on the five things that every graduate needs to be job-ready for the
entry-level software developer role:
• Knowledge
• Technical Skills
• Soft Skills, primarily communications skills in English
• Behavior Skills
• Experience
Students role-playing as interns acquire each of these by working on realistic projects
throughout their 4 years in the program, producing deliverables and receiving feedback on
those deliverables from faculty.
From their project work students establish a portfolio of projects that they’ve worked on that
they can share with hiring managers during placement, demonstrating the real-world
experience they have acquired during their time in the SD program.
During the program students also receive training on behavior skills. We don’t teach students
how to behave, they learn that behavior has consequences. You choose your behavior, and you

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 4


live with the consequences. From day 1 students work as interns in small teams, forcing them
to interact with others. We teach students how to improve their ability to navigate the world of
human interaction through awareness and analysis of behavior, situation and context. In
addition, students are mentored on their behavior by their faculty, as well as on the content,
volume and quality of their work.
We believe that the SD program is unique in helping students learn the importance of behavior
skills, and how to use them effectively to cope in the infinite variety of situations and contexts
found at work and in our personal lives.
As interns, students are provided with an opportunity to learn and practice what are typically
attributed to a liberal arts education such as logic, rhetoric, grammar, calculus, physics, public
speaking and critical thinking, ensuring that they are prepared to play a role in modern society.
Our experience is that the combination of an immersive, project-based pedagogy combined
with a focus on behavior and other critical thinking skills produces happy, well-adjusted and
job-ready graduates who will be in demand by the software industry and who will be ready and
eager to make their way as citizens in the world.

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

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 5


express more complex concepts and solution approaches, such as architecture and design
decisions. It is often the case with larger applications that the obvious paths lead to dead ends
or serious implementation or operational problems. Expressing what should be done and why it
needs to be done a specific way are both critical. Too often, technical people believe that their
carefully-crafted designs are intuitively obvious and very little effort is made to help others
appreciate them. The result is often an attempt to employ a simpler design, the painful
realization about why the more complex design was needed, the discard of considerable work
returning to what was originally there. This can be avoided when the rationale for the original
design is concisely, more compellingly, and carefully written.
The following thread of courses establish basic foundational knowledge and skills in reading,
listening, writing, speaking, and critical thinking. The thread is specifically designed to move the
student away from the simplistic right answer / wrong answer, true/false, black/white way of
thinking toward a more nuanced appreciation of the inherent complexity of the real world. (If
the solution to a real-world problem appears to be easy, you probably have not thought deeply
enough.) Students need to learn to read for understanding as opposed to only reading to find
the answer to a specific problem. Students need to learn to become a proactive listener and to
develop respectful listening behaviors. The skill of effective note taking is critical and yet most
students are not adept at taking notes. Producing concise statements is another skill that must
be mastered, as is the skill of answering questions and giving presentations. These skills and
behaviors will be developed over the course of the whole program as students work to produce
realistic work products and follow work processes what have been should to bring value and
respect.
Year 1, Semester 1 Communications I
Y1S2 Communications II
Y2S1 Ethics
Y2S2 1) Architecture & Design; 2) Human Factors
Y3S1 Database & Client Server
Y3S2 Internship
Y4S1 H/C Interaction
Y4S2 Innovation
Software Development Professionalism:
Technical lessons of software development are critical but are not, by themselves,
sufficient. Continuous incremental change punctuated by periods of change demand effort to
remain current in the discipline. Coupling this growth with the evermore diverse application of
computers to societal needs requires practitioners of computing to make choices during
currency maintenance activities. (There’s just too much new knowledge to stay current with it
all.) The Computing and Communication threads provide students with foundational problem-
solving tools. There are many more such tools used professionally than it is possible to teach

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 6


during a four-year program. Selecting the correct tools and methods for specific project
typically requires a much deeper appreciation of the client's context, business issues, and host
of other issues that are not traditionally addressed in an undergraduate program. As a result, it
is common for software development practitioners to specialize and invest personal time in the
maintenance and enhancement of their career.
The purpose of the Professionalism thread is to provide students with the required preparation,
so they are able to appreciate the need to make these data-driven decisions in support of their
clients and to enhance their own career opportunities. These are not black or white decision,
where there are right and wrong answer. Effective software development professionals must
properly consider the short-term and long-term consequences as well as the immediate impact
of these decisions on their personal and family life, their employers and the clients they serve,
and more broadly on society and the planet and humanity as a whole. The thread begins with
the introduction of a realistic backstory that introduces the students to their role as interns and
the foundational knowledge and skills to produce work products of value to clients. CS
Professionalism focuses on foundational materials that justifies the course work that follows
while Computation & Problem Solving provide students the experience of working on a real
project in the very first semester. Application Development leverages the first semester
experiences as it slowly covers the basics of the Java programming language and a collection of
project activities that build upon previous work. The course design gives students tasks to
perform and feedback on the work (both positive and negative) is returned. To move forward,
students must resolve any defects or omissions in their work (addressing the negative
feedback) in order to proceed to the next task.
The key principle is the following process: 1) Read and study; 2) Strive to understand; 3)
Experiment; 4) Produce realistic work products; 5) Receive feedback; 6) Reflect; 7) Obtain
coaching and mentoring (if required); 8) Make improvements that resolve the Issues. The
program is designed with facilitated study halls and tutorial activities specifically to support the
idea that students need opportunities to try, to fail, to learn from the experience, to try again,
to overcome obstacles and barriers, to improve, and to build on their successes. Courses must
ensure that students are not only learning testable knowledge, but also the skills and behaviors
required to obtain value from that knowledge.
The following thread of courses is specifically designed to move up students in the program
Bloom’s Taxonomy with respect to the knowledge, skills, and behaviors recognized as
foundational for software development professionals working to establish an effective career.
Y1S1 1) CS Professionalism; 2) Computation & Problem Solving
Y1S2 1) Application Development; 2) Software Testing and Tools;
Y2S1 1) Application Design Choices; 2) Ethics
Y2S2 Architecture & Design
Y3S1 Network & Security
Y3S2 Internship

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 7


Y4S1 Computer Systems
Y4S2 High Performance Engineer
Computing:
The first pair of courses in the Computing thread, Computation and Problem Solving; and CS
Professionalism, introduces students to information processing, clients, work products, and
some basic formalisms and how the web, scripting, spreadsheets, and simple databases bring
value to people striving to solve problems. These computational foundations are then used in
subsequent courses to provide more vocabulary, principles, concepts, and standard problems
and solutions that move students toward the program’s goal. The “Computing and Problem
Solving,” exposes students to the fundamental computation ideas of data, representations,
operations, and how these things come together to solve real-world problems. The essence of
this course is its practical nature. Students are given a set of real problems drawn from current
industry, science, and business, and are asked to solve the problems by hand while gathering
data about time, effort, and defects. Students are then introduced to the concept that
automation can - when done properly - improve all three. By the end of the thread, in High
Performance Engineering, the data that has been gathered will be used to explore current
capabilities and areas for improvement. They will come to appreciate how a bad solution can
actually do more harm than good. Students will be introduced to a set of key principles, such as
“thinking before coding” and "testing before developing.”
The second pair of courses in the thread, Applications Development and Software Testing and
Tools, expands the complexity of the kinds of problems that can be solved by means of a
computer, through the use of an object-oriented programming language and that testing is an
integral part of the software develop process. Key to this expansion is the notion that there are
many potential solutions. Without some way to capture the requirements and the solution
choices, human foibles will lead to problems as these solutions get larger and more complex.
The third pair of courses (Application Design Choices and Performance) shows students that
choices of representation and algorithm are important. The use of a concatenation operator in
Java has significant performance problems and knowing when to use and when not to use this
built-in operation is critical. Similarly, choices of basic data structures and algorithms are
equally critical. The notion of documenting design choices and rationale is emphasized along
with considerable direct experience with performance trade-offs to build the case that these
decisions can be important.
The first six courses in the thread establish a solid foundation in a single programming
language, Java, as this is one of the few type-safe languages that are widely used that also
provides solid support for creating reusable libraries. It takes time to build the sophistication
required to appreciate the rationale behind generics, interfaces and abstract classes, and
experience has shown that a single class in this topic tends to just teach the syntax without
really allowing the student to appreciate the principle. The Performance course introduces the
students to the basics of the C programming language as defined in the seminal book by
Kernighan and Richie. This light-weight introduction to C will be followed by other courses than

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 8


build upon and enhance the understanding of this language.
The fourth pair of courses in the program (Data Structures and Architecture & Design) leverages
the basic insights and understandings of the foundations of computing in general and data
structures in particular, and exposes students to more complex operations, methods, and data
structures that may be more appropriate for providing significantly enhanced performance.
Students will experiment with basic and more advanced data structures and design patterns to
more fully appreciate how computers work, how data structures are implemented, and the
trade-offs made between designs and implementations. Woven into this fourth pair of classes is
a more formal algorithm analysis approach.
From the eight foundational courses come more advanced pairs of courses that expose the
student to more advanced concepts and provide more opportunities for practice and skill
development. The Networking & Security course help the students appreciate the good work
that has been done before as well as the risks and consequences of not fully appreciating or
preparing for the unethical acts of others. Students explore the latest advances and the most
recent threats in this course and develop a new appreciation for the latest strategies,
frameworks, design patterns, and implementation approaches that have been shown to be
effective. The “Database and Client/Server” course expands the realm of solutions in new
directions, including “Software as a Service” and “Cloud-based solutions”. The more
sophisticated the problem, the more the demand to contain costs, enhance quality, ensure
security, and protect privacy. These courses expect students to develop the capacity to learn
from the experiences of others as well as from their own experiences. Things are changing so
quickly, employers can’t afford employees who are unable to be creative, insightful, innovative,
or unable to see the logical consequences associated with any particular approach, method,
attitude, or behavior.
Two crucial aspects of the Software Development program are the internship in the second half
of the third year and the two three-course elective sequences in the third and fourth
years. The six-month virtual internship is developed in conjunction with employers to provide
the interns with a combination of a safe and supportive environment while they experience
working on real projects for clients who want and need high-quality solutions. In parallel with
the internship, the interns work to demonstrate satisfaction of a set of Basic Performance
Assessments (BPAs) that are a requirement for successfully completing the internship and being
eligible for graduation. The skills required to clear the BPAs should have been developed prior
to the internship, so most interns will quickly clear them. Those who encounter issues will be
provided mentoring and coaching support as required to overcome the barriers blocking their
progress and clear problematic BPAs.
The fourth year digs even deeper in two critical directions. The Computer Systems course and
the Human/Computer Interaction course provides an even deeper dive into the latest trends in
computing as it explores the standard problems of memory management and scaling up to deal
with thousands to millions of users. In addition, the course explores the expanding complexity
of modern computers with multiple CPU cores, each able to support numbers of parallel
threads of execution to the additional computing power of GPUs and other computational

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 9


engines (to support VR, AI, etc.) The final semester concludes the program with the High
Performance Engineering Course and the final courses for the two elective sequences. These
courses are designed to provide rock solid evidence of the new capabilities the students have
acquired and provide them with processes, methods, and tools to help them continue to
develop and mature as software development professionals.
Y1S1 1) Computation and Problem Solving; 2) CS Professionalism
Y1S2 1) Application Development; 2) Software Testing and Tools;
Y2S1 1) Application Design Choices; 2) Performance;
Y2S2 1) Data Structures; 2) Architecture & Design;
Y3S1 1) Networking & Security; 2) Database & Client/Server;
Y3S2 Internship
Y4S1 1) Computer Systems; 2) H/C Interaction;
Y4S2 1) High Performance Engineering; 2) Elective;
Design and Theory:
Successful software development requires students to be able to use the logic and mathematics
of the real world as primary problem-solving tools. The Design and Theory thread provides
students with these capabilities spread over the following thread of courses.
The Computing and Problem Solving and CS Professionalism courses introduce several
motivations for students to explore and become familiar with the theory. The courses introduce
students to several computing applications in modern society where quality and performance
are critical. Being able to produce system applications is not just a matter of rote learning,
memorizing and recalling a small set of standard answers to a set of standard questions. While
we provide students with the basic building blocks of computing, problem solving, and
professionalism, we are also helping them develop a more realistic vision for what computing
is, why it is important, and why solutions must be carefully designed, implemented, operated,
and maintained.
The second pair of courses course in the design and theory thread extends the informal and
practical aspects of the theory by introducing the concepts pre-conditions and post-conditions
as a key part of the Java documentation and how it is used in testing. The notion of finite state
machines, their role in requirements, design, and implementation, and how basic UML state
charts bring value is developed.
The third pair of course in the thread, Application Design Choices and Performance introduces
the concepts of loop invariants and the basic and practical aspects of proof of correctness that
are often overlooked by the approaches that many use to teach the topic. Regular expressions
are introduced and are used in conjunction with the data structures that are developed in the
class. Key elements of computer science theory are reinforced by means of their use in UML
diagrams provided to the students in the early courses and produced by the students to explain

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 10


their designs in the later courses.
The fourth pair of course, Data Structures and Architecture and Design is a major expansion of
this thread. Since the basic data structure concepts have already been introduced in previous
courses, these two course addresses this topic from an analysis of performance perspective,
where we define performance in terms of correctness, speed, and resource utilization. The
basic ideas of proof of correctness are refined and reinforced in each assignment as it makes
sense to do so. In addition, the notion of NP-completeness is introduced, and the basic proof
approach is used to evaluate various graph algorithms. The Architecture and Design course
integrates the major themes of the thread and provides the student the opportunity to practice
resolving problems that tend to only surface is large or complex systems. In smaller
applications, many very talented programmers are able to bulldoze their way to a working
solution without employing the proven best-practice processes, methods, and techniques.
When applications grow in size and when work needs to be spread over a number of workers,
brute-force methods tend to be less effective or predictable. Developing these insights and the
skills to employ the proper methods and techniques for these larger applications is crucial.
The remaining courses in the thread provide additional practice with the foundational concepts
as well as opportunities to dig more deeply in some specific topics, providing more insight into
the use of theory and its application to real-world problems. The internship verifies and
validates that these design and theory lessons have been properly learned and the student can
compellingly demonstrate this accomplishment.
Y1S1 1) CS Professionalism; 2) Computation and Problem Solving
Y1S2 1) Application Development; 2) S/W Testing and Tools
Y2S1 1) Application Design Choices; 2) Performance
Y3S1 1) Network & Security; 2) Database & Client/Server;
Y3S2 Internship
Y4S1 1) Computer Systems; 2) H/C Interaction

Curriculum Schema
Credits Required for Graduation:
No. Credits Description

140 Credits from courses (35 courses * 4 credits each)

Credits from lab courses (7 Language Lab, 2 Physics Lab & 2 Biology Lab
11
courses * 1 credit each)

15 Simulated Internship Spring Semester

7 Simulated Internship Summer Semester

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 11


173 Total Credits Available for Program Completion

160 Total Credits Required for Graduation

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)

Lecture Tutorial Practical Credits

1 CSD-101 Calculus I 3 2 0 4

2 CSD-102 Physics I 3 2 0 4

3 CSD-102-L Physics I lab 0 0 2 1

4 CSD-103 Communications I 3 2 0 4

5 CSD-104 Computation & Problem 3 2 0 4


Solving

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 12


1st Semester

Teaching Schedule
S.
No. Course No. Course Title (Hours)

Lecture Tutorial Practical Credits

6 CSD-105 CS Professionalism 3 2 0 4

7 CSD-120 Language Lab I 0 0 2 1

Total 15 10 4 22

2nd Semester

Teaching Schedule
S.
No. Course No. Course Title (Hours)

Lecture Tutorial Practical Credits

1 CSD-106 Calculus II 3 2 0 4

2 CSD-107 Physics II 3 2 0 4

3 CSD-107-L Physics II lab 0 0 2 1

4 CSD-108 Communications II 3 2 0 4

5 CSD-109 Application Development 3 2 0 4

6 CSD-110 Software Testing & Tools 3 2 0 4

7 CSD-121 Language Lab II 0 0 2 1

Total 15 10 4 22

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 13


3rd Semester

Teaching Schedule
S.
No. Course No. Course Title (Hours)

Lecture Tutorial Practical Credits

1 CSD-201 Calculus III 3 2 0 4

2 CSD-202 Natural Science I 3 2 0 4

3 CSD-202-L Natural Science I lab 0 0 2 1

4 CSD-203 Ethics 3 2 0 4

5 CSD-204 Application Design Choices 3 2 0 4

6 CSD-205 Performance 3 2 0 4

7 CSD-220 Language Lab III 0 0 2 1

Total 15 10 4 22

4th Semester

Teaching Schedule
S.
No. Course No. Course Title (Hours)

Lecture Tutorial Practical Credits

1 CSD-206 Statistics I 3 2 0 4

2 CSD-207 Natural Science II 3 2 2 4

3 CSD-207-L Natural Science II lab 0 0 2 1

4 CSD-208 Human Factors 3 2 0 4

5 CSD-209 Data Structures 3 2 0 4

6 CSD-210 Architecture & Design 3 2 0 4

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 14


4th Semester

Teaching Schedule
S.
No. Course No. Course Title (Hours)

Lecture Tutorial Practical Credits

7 CSD-221 Language Lab IIII 0 0 2 1

Total 15 10 6 22

5th Semester

Teaching Schedule
S.
No. Course No. Course Title (Hours)

Lecture Tutorial Practical Credits

1 CSD-301 Statistics II 3 2 0 4

2 CSD-302 Elective Sequence 1-1st 3 2 0 4


course

3 CSD-303 Elective Sequence 2-1st 3 2 0 4


course

4 CSD-304 Network & Security 3 2 0 4

5 CSD-305 Database & Client Server 3 2 0 4

7 CSD-320 Language Lab V 0 0 2 1

Total 15 10 2 21

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 15


6th & Summer Semester

Teaching Schedule
S.
No. Course (Hours)
Course Title
No.
Lecture Tutorial Practical Credits

1 CSD-350 Simulated Internship I 3 2 22 15

2 CSD-351 Simulated Internship II 3 2 6 7

Total 6 4 28 22

7th Semester

Teaching Schedule
S.
No. Course No. Course Title (Hours)

Lecture Tutorial Practical Credits

1 CSD-401 Discrete Math 3 2 0 4

2 CSD-402 Elective Sequence 1-2nd 3 2 0 4


course

3 CSD-403 Elective Sequence 2-2nd 3 2 0 4


course

4 CSD-404 Computer Systems 3 2 0 4

5 CSD-405 Human-Computer 3 2 0 4
Interaction

6 CSD-420 Language Lab VI 0 0 2 1

Total 15 10 2 21

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 16


8th Semester

Teaching Schedule
S.
No. Course No. Course Title (Hours)

Lecture Tutorial Practical Credits

1 CSD-406 Project Success 3 2 0 4

2 CSD-407 Elective Sequence 1-3rd 3 2 0 4


course

3 CSD-408 Elective Sequence 2-3rd 3 2 0 4


course

4 CSD-409 High Performance 3 2 0 4


Engineer

5 CSD-410 Innovation 3 2 0 4

6 CSD-421 Language Lab VII 0 0 2 1

Total 15 10 2 21

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 17


SD Program Curriculum Layout

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 18


Assessment & Grading Policy
Our goal is to establish an undergraduate program where graduation from the program assures
a floor of competence across three areas:
• Achievement of student outcomes,
• Enablement of program educational objectives
• Verifiable acquisition of job-ready skills2.
We have come to believe that trying to express this by means of a list of course grades and a
weighted Grade Point Average (GPA) is not effective, especially if the grades are assigned on a
curve. According to many studies, a large fraction of BTech graduates are unemployable3,4 even
though their GPA’s suggest the opposite. The focus of the SD Program is to provide our
graduates with the knowledge, skills, behaviors and experiences required of entry level
software professionals, and we assess their work and their performance in alignment with the
best practices advocated by ABET5.
We have seen undesirable student behaviors, such as poor attendance, failure to come to class
prepared, being risk adverse in the courses they take, and employing questionable practices
(e.g. cramming for exams) in order to achieve a high GPA. Traditional college programs
assumed that students came to school “to be educated in the knowledge of enduring value”
and it was some other organization’s responsibility to teach job skills and professional
behaviors. Grading schemes are designed with that in mind. Today, however, we see a rising
number of students with good GPAs and yet many have significant holes in their knowledge and
lack many critical skills required to be classified as “job ready”.
To provide clearer insight into a graduate’s actual capabilities and competencies, the SD
Program measures and reports on the following data points:
• Course Level. Recording separate scores for each work product or exam question at the
course level that contributes insight into the progress toward achievement of a Student
Outcome and/or the enablement of a Program Educational Objective.
• Program Level. Making it clear to the students that the evidence they capture and have
available for sharing from their portfolios will be important to their graduating in a
timely manner if there are any issues with the evidence that their grades support in
terms of achievement of outcomes and enablement of objectives.
Course Level
Grading at the course level should focus on the extent to which a student’s work and behaviors
demonstrate achievement of stated course outcomes (e.g. What do the students know and

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/

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 19


what can they actually do with that knowledge by the end of a course?), and progress toward
realizing course goals and objectives (e.g. To what extent have they added the competencies
they will need to be successful in future courses in the program and, following that, in their
career?).
The SD Program is designed to achieve program-level outcomes and enable program-level
objectives by assigning segments of curricular threads6 designed to accomplish and enable
them. In general, early segments of the various curricular threads are about developing and
demonstrating competencies at the lower-level of Bloom’s Taxonomy7 and the more advanced
courses should be where learners develop the higher-level competencies.
Outcomes-based accreditation, such as that employed by ABET for professional engineering
and computing programs, requires evidence of Student Outcome achievement and Program
Educational Objective enablement that usually can’t be compellingly demonstrated if the only
data available are course grades. The problem is that course grades do not have adequate fine-
grained detail and they average, even if weights are used, the things of importance with other
things that might not be important, masking the extent to which the student has actually
achieved an outcome or enabled an objective.
To measure the extent to which student outcomes have been achieved carefully crafted
assignments and/or exam questions are needed, and the assessment marks given for those
specific assignments/questions need to be recorded individually along with the course grade
for future analysis during the Graduation Check. Other graduation requirements (such as class
attendance information) must also be captured and recorded individually.
Many programs try to devise and use a single measure to address the wide number of factors
required for graduation assessment. In CarterRadley’s opinion, this is a serious mistake.
Consider the requirement that students must attend classes. We can agree that attendance
can be used to teach students that there are consequences that flow from not being present or
prepared, and we applaud efforts to include this as a factor for assessing student performance.
What does not make sense, however, is to assign it a weight and average it in with the other
knowledge, skill, and behavior measures into a single number for the entire course and all of
the outcome and objective segments it covers. If all you have is a course score of 75, it is
impossible to know to what extent attendance was or was not an issue as well as any of the
other outcomes or objectives that have been allocated to that class.
If a student fails to attend enough of the class sessions to pass a class, it does not matter how
well the student did in their work for the other items the student completed and submitted.
Doing well (including perfect) on a final examination, if there is one, must not be able to “make
up for” the failure to attend enough class sessions. Therefore, if a single score is going to be
used as the only data point, attendance must be weighted higher than the final exam to ensure
that the failure to attend enough classes with be more than enough to counter an excellent

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

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 20


performance on the exam. We believe this makes no sense.
We advocate listing all of the factors, individually, that must be accomplished in order to pass
the course as well as demonstrate progress toward realizing Student Outcomes, enabling
Program Educational Objectives, and satisfying other requirements for program graduation. In
general, failure to achieve a passing grade in a course means the student must retake the
course. We are not advocating forcing a student to retake a course if they obtain a passing
grade for the course, but fail to achieve a passing mark for a course outcome. The SD program
addresses each program outcome thread numerous times, and as long as the student can
provide evidence of achievement of the program outcome and enablement of the objects
through successful completion of the third year Simulated Internship course, students should
be allowed to move forward.
For policy items such as attendance, each course should have a separate specific assessment
mark. For outcomes and objectives, it is probably the case that many activities or questions
from this and other courses should contribute to these assessments. We recommend not
having too many of these assessments points from any one course. It is better to have a wide
array of courses supporting an outcome and/or objective, especially if they are from the third
or fourth year. The goal is redundancy (so that there is no single point of failure) and a
progression over time from foundational concepts in the first year (e.g. lower-level activities
from Bloom’s Taxonomy), through breadth and depth enhancing activities in the second and
third year, to honing and polishing activities (higher-level activities from Bloom’s Taxonomy)
during the internship and in the fourth year.
Program Level
Each of the program’s student outcomes, program educational objectives, job-ready skills, and
other required measures will also be assessed in parallel with the course grades using the
individually assessed, marked, and recorded items from each course contributing to that
outcome or objective. These assessment items come from the various marks given to the
tailored course activity deliverables (e.g. projects, papers, presentations, demonstrations,
examinations) created specifically for this assessment purpose. We do not expect that a course
grade will be a part of these assessment items, as courses address too many different concepts,
capabilities, and skills to provide the required evidence. Being excellent in 9 out of the 10 key
aspects of a course may be good enough to earn a score above 90% (e.g. an “A”), but if the one
key aspect that was not learned is a required student outcome and the student failed to
achieve it elsewhere, the student should not be eligible for graduation until this issue is
resolved. Using GPAs from course grades alone will not, however, provide us with the fine grain
detail we need to recognize this situation.
Graduation Check
Given how common the GPA-method for assessing student performance is, we do not advocate
removing it from the process of assessing whether or not a student is eligible to graduate. We
do, however, advocate a careful “graduation check” to ensure that all University, School, and
Program policies have been satisfied. A GPA is not adequate for any of these policy checks,

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 21


since it can’t tell you if all of the required courses have been taken, adequate attendance has
been achieved, and so forth by checking a GPA alone.
For the BTech in Computer Science with a Specialization in Software Development, we require
the additional policy that all essential Student Outcomes and Program Educational Objectives
be assessed with results at a satisfactory level through successful completion of the Simulated
Internship course. Should the gathered evidence from the Simulated Internship course suggest
this is not the case for one or more Outcomes or Objectives, an independent assessment of the
student’s portfolio and an oral exam about the material in the student’s portfolio will be used
to clarify the situation.
Students who pass most of the Graduation Check assessments, but fail the portfolio review
with oral exam for those items not passed by means of their coursework, will be given another
semester of guided study to address the issues and will be given another opportunity to have
their portfolio reviewed and pass another oral examination.
Accreditation
Capturing actual outcome and objective data from each student from all of their coursework
and then correlating it with actual (although qualitative) data from surveys after graduation
provides much better data to support our program’s continuous improvement efforts than
what other universities typically use. Making all of these key elements that ABET believes are
crucial for continuous improvement an integral part of the graduation process will make our
graduates that much more competitive in the marketplace.
Continuous and End-of-Course Assessments

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 22


Figure 1: Assessment

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.

Knowledge Objectives and Outcomes Policies


Foundational Breadth Depth Course Program Attendance Other
Basic concepts, Leverages Leverages What the student What the student Has the student What other
theory, vocabulary, knowledge knowledge should be able to should be able to attended enough of policies are of
notations, etc. that (e.g. variation (e.g. useful, do with (e.g. do with (e.g. the course activities this kind (e.g.
define the foundations on a theme) but subtle produce useful produce useful to earn a passing plagiarism,
deliverables) and deliverables) and grade? If not, even cheating, hazing,
of a topic. It may build to expand details) to
what has been what has been perfection in every physical violence
upon even more basic what is expand what
enabled by (e.g. enabled by (e.g. other dimension and against others,
foundational known is known to career objectives) career objectives) assessment will not etc.)?
knowledge. toward its full the finest the course the course be good enough to
span. useful detail. activities by the activities by the result in a passing
end of the course. end of the program. grade.

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)

End of Course Assessment


Courses typically end with the completion of a major project, a set of projects, or some other kind
of assessment (e.g. oral presentation with Q&A, written and/or oral examination, etc.) The result is
weighted and merged with the Continuous Assessment items to produce a course grade and
specific Objectives and Outcomes are individually assessed and individually recorded to ensure
that each has been achieved and enabled.

Knowledge Objectives and Outcomes


Foundational Breadth Depth Course Program
Basic concepts, Leverages Leverages What the student What the student
theory, vocabulary, knowledge knowledge should be able to should be able to
notations, etc. that (e.g. variation (e.g. useful, do with (e.g. do with (e.g.
define the foundations on a theme) but subtle produce useful produce useful
deliverables) and deliverables) and
of a topic. It may build to expand details) to
what has been what has been
upon even more basic what is expand what
enabled by (e.g. enabled by (e.g.
foundational known is known to career objectives) career objectives)
knowledge. toward its full the finest the course the course
span. useful detail. activities by the activities by the
end of the course. end of the program.

Weighted Average Grade Individually Graded and Recorded


of both the Knowledge and the Objectives and Contributes to the Course Grade
Outcome items, (must pass each course outcome to
Contributes to 25% of the Course Grade pass the course) and Program
Objectives and Outcomes

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 23


Course Marks & Grades:
At the end of each semester student deliverable scores are added, normalized to 100% (based
on the “weight”/importance of each deliverable) and reported as grade points and grades using
the grading scale recommended by Carnegie Mellon University’s Eberly Center8 as shown in
Table 1.
Table 1: SD Program Percentage to Grade Points and Grade Mapping

Percentage of Marks Range Grade Grade Point Definition


95.00 100.00 A 4.00
Excellent
90.00 94.99 A- 3.67
86.00 89.99 B+ 3.33
83.00 85.99 B 3.00 Good
80.00 82.99 B- 2.67
76.00 79.99 C+ 2.33
73.00 75.99 C 2.00 Satisfactory
70.00 72.99 C- 1.67
65.00 69.99 D+ 1.33
Passing
60.00 64.99 D 1.00
0.00 59.99 R 0.00 Failure
Once a course has been completed, a record will be produced with the following information,
as shown in Figure 2:
A course grade as a percentage produced using a weighted average of the knowledge
development activities and the doing activities including behaviors, professionalism, etc. as
established from:
• Continuous assessment
• End of course assessment
• A list of specific individual program policy compliance items (e.g. attendance), each with
a percentage grade. The grade must not be an average. It must be an assessment of just
that policy item.
In addition, as the SD Program matures the following information shall also be captured for
each course completed:
• A list of specific individual course outcome enablement and/or achievement items from
specific work products, deliverables, homework assignments, quiz questions, exam
questions, reports, projects, etc. each with a percentage grade. Do not average these
marks. It must be a list of assessments for each work product and/or specific item that
contribute to the various course outcomes.

8
https://www.cmu.edu/teaching/designteach/syllabus/checklist/grading.html

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 24


• A list of specific individual program outcome enablement and/or achievement items
from specific work products, deliverables, homework assignments, quiz questions, exam
questions, reports, projects, etc. each with a percentage grade. Do not average these
marks. It must be a list of assessments for each work product and/or specific item that
contribute to the various program outcomes.
• A list of specific individual program objective enablement items, each with a percentage
grade. Do not average these marks. It must be a list of assessments for each work
product and/or specific item that contribute to the various program outcomes.
Passing a Course
To successfully pass a course, the course % Marks (See Figure 2) must be ≥ to 60%.
Program Failure Policy
SD program students who do not demonstrate understanding, show skill, produce quality work,
exhibit professional behaviour, or who do not meet defined outcomes for one or more courses
in a semester will be subject to the following:
• They will receive a Detailed Mark Certificate (DMC) with Numerical and Letter Grades
based on their performance (See Figure 2). Their DMC will be updated upon successful
completion of required actions (see next list item) to resolve their identified academic
issues.
• Students will be required to perform one or more of the following actions to remedy the
courses in question based on the faculty’s judgement:
o Retake the course. The cost of retaking the course shall be established annually by
university policy.
o Retake the course final assessment. The cost of retaking the course final assessment
shall be established annually by university policy.
o Rework and submit enhanced versions of key course deliverables clearly
demonstrating that instructor feedback has been addressed and the deliverables
have improved.
o Other remedies, as determined appropriate by faculty.

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 25


Figure 2: Sample SD Program DMC Transcript Layout

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 26


Graduating from the Program
Failing to pass a course can result in a delay in graduation, depending on which course is failed,
and the number of courses failed. If subsequent courses are strongly dependent on a particular
course (e.g. Calculus II is strongly dependent on Calculus I) a student’s progress may be blocked.
It may be possible for a student to continue with courses that are not dependent on the failed
course and fill in the next semester with an elective or two, if available, but there is no
guarantee this will always be possible. Students facing such issues need to meet with the
Program Director and work out a plan for moving forward.
To graduate from the SD Program a student must complete ALL of the following:
• Successfully passed 160 Cumulative Course Credits with % Marks of 60% or better in
each course.
• Have a Cumulative Grade Point Average (GPA) that is greater than or equal to 1.4,
where the Cumulative GPA is computed by dividing the sum of the Total Grade Points by
the sum of the Credits for courses passed.
• Demonstration of skills acquisition through successful completion of the Simulated
Internship course.
• A check of all policy items is made to see if they pass the minimum thresholds. (Policy
items are not used for determining honors or high honors.)
To graduate from the program without a special evaluation by an academic committee, all of
the graduation items listed above must exceed the minimum thresholds.
To graduate with honors, all must exceed the following honors thresholds:
• Honors (3.00 Cumulative GPA)
• High honors (3.50 Cumulative GPA)
The Bachelor of Technology Degree Course shall extend over a minimum period of four
academic years. Each academic year shall be divided into two semesters. Each semester will be
18 weeks in duration.
The first and subsequent semester examinations shall be open to a regular student who:-
• has passed the requisite qualifying examination,
• is of good character;
• has remained on the rolls of the college of this university for the semester preceding the
examinations;
• has attended not less than 75% of the total number of lectures/ Tutorials delivered in
each subject/paper(s). This requirement shall be fulfilled separately for each course of
study.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 27


Year 1 Overview
In the first year of the program students begin their transformation into professionals by having
them work on projects. The projects start small and simple, and require the students to learn
some basic lessons for success:
• Be sure to know what “done” and “success” look like, otherwise you will probably do a
lot of work without getting a good result.
• Don’t wait until the last minute to begin your work – this approach won’t lead to
success.
• You choose your behavior, you live with the consequences. We find that many students
exhibit poor behavior, such as bunking classes or not turning in assignments, and then
expect the university to not hold them accountable. Sadly, many universities
accommodate them, resulting in graduates who are not prepared for industry where
they will be held accountable for their work.
• Don’t copy. Do your own work so you can learn from what you have done. For many
students, marks is all they care about, so the SD program has implemented some
techniques for getting students to do their own work, get feedback and improve based
on what they’ve learned.
• Lifestyle matters. Some students stay up late every night, and then wonder why they are
too tired to get their work done during the day. SD students are coached to manage
their time wisely, and not just during class time.
• Feedback is your friend. Students are introduced to behavior skills and are asked to give
and receive feedback on each other so they can begin to sense how they are perceived
by others.
Typically, these require unlearning habits learned in school, and for many students these habits
die hard.
In addition, Students take the first of four years’ worth of:
• Assessments resulting in a calibration of each student’s industry readiness and progress.
• Professional communications training designed to help the student quickly gain
confidence in successfully completing program assignments (since the SD program is
completely in English) and become fluent in English by the time they graduate.
The primary role of the professor/teacher/mentor is to create an environment where learning
and development is facilitated. In the SD program this is accomplished by means of the mentor
actively engaging with the interns, asking questions, listening to their answers, asking follow-up
questions to that intern and others to verify what we are hearing. The primary purpose is to
identify issues, recognize barriers, and diagnose barriers to progress. Lectures, if that is the
only effective source of information, are recorded and made available on demand, whenever
the intern needs the information. The same is true about textbooks, information on the
Internet, and other resources interns need to facilitate their learning.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 28


Another key role of the professor/teacher/mentor is to provide feedback to each intern on the
work products they have produced. It is unfortunate that so many educators believe that
grades (marks) are feedback. We strongly disagree. Upon seeing a mark of 68 on a paper, what
can the intern actually learn or benefit from that information? Feedback occurs when items on
the paper are circled or highlighted and information in the form of an explanatory text is given
about what is good or bad about the item and how the intern might consider making changes in
order to improve the quality and/or the impact of their work. Without this feedback, we
consider assigning marks or grades to a paper to be mostly meaningless.
Feedback must be timely! If more than a couple of days pass from the submission of a work
product and the feedback, most of the opportunity for the intern to learn from their experience
is lost. When feedback is timely, interns can compare and contrast the feedback with what they
were thinking when they produced the deliverable. The gap between what the intern thought
they were doing and the feedback provided about what the professors see is critical. When an
intern is surprised by the gap, they question what they were thinking and that leads to real
learning. The longer the delay, the more likely the intern will fail to remember what they were
thinking and the less likely they will be able to draw real value from the feedback.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 29


Physics I with Lab
Classroom Labs Credits: 5

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 30


• Angular Motion – Given the understanding of the characteristics of a rigid body, identify
the angular position of a specific rotating rigid body and an external reference line. Be
able to apply the relationship between angular displacement and the initial and final
angular positions as well as the average angular velocity, angular displacement, and the
time interval for that displacement to solve problems. Given that smooth rolling is a
combination of pure translation and pure rotation, apply the relationship between
center-of-mass speed and the angular speed of a body to solve problems.
• Oscillatory Motion and Waves – Understand how simple harmonic motion is a part of
the underlying physical phenomenon of modern day technology and hence study the
basic concepts related to it, develop mathematical formulation to analyze and solve
problems involving oscillatory motion, forced vibrations and damped oscillations
• Waves – Waves are central to communication technology. It is essential to understand
the mathematics involved in analysis of different waveforms and hence to be able to
model the case of waves on a string, derive expressions for speed and energy of waves
and apply it other waves like sound and solve related problems.
Books:
• Fundamentals of Physics, Volumes 1 & 2 by Halliday, Resnick and Walker. 10th edition

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 31


Calculus I
Classroom Labs Credits: 4

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

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 32


Computation & Problem Solving
Classroom Labs Credits: 4

4 -

This class introduces students to problem-solving approaches and tools, professional


communications and professional behavior. Students work in small groups to encourage
collaboration and cross teaching, and to provide a background for introducing discussions and
assignments on communications and behavior.
Performance Objectives: As a result of successfully completing this course, students will be able
to:
• Model and solve problems using spreadsheets, simple spreadsheet macros and
websites.
• Perceive scientific problem solving as a viable and exciting career that they can achieve
and enjoy.
• Solve business problems through simple modeling and automation
• Use the Web to do basic research.
• Become self-aware of their own behavior and aware of how others perceive behavior.
• Behave appropriately in a professional environment and understand the consequences
of not behaving professionally.
• Create and deliver short, easy documents and presentations that are well organized,
compelling and supported by evidence.
• Use appropriate tools and processes to develop, test and complete their projects.
• Interact, collaborate and communicate effectively with their instructors and fellow
students.
• Give and receive 360-degree feedback.
In this class, students work on the following projects:
Effort Logging (using Spreadsheets). This project introduces students to cells and cell
formulas, simple dashboards and data analysis.
There are three parts to the effort-logging project:
• Students log their individual effort in a spreadsheet created by a classmate.
• Students update their effort logging so that all members of their small team use the
same spreadsheet to collect their daily effort data, producing reports and analyzing the
resulting data.
• Students aggregate the data from their batch, producing reports and analyzing the data.
Develop a Personal Website. Students create simple, static, linked Web pages that contain
personal information (picture, contact information, brief biography, hobbies and interests). This
project introduces students to HTML and a simple HTML editor.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 33


Develop a Customer Website. Students plan and implement a customer's oil well mapping Web
application prototype using Google Maps. This project introduces students to basic data types
and programming concepts using JavaScript and the Eclipse integrated development
environment (IDE) editor.
Update Customer’s Website. Students update their Customer Website by using cascading style
sheets (CSS) to facilitate a consistent look and feel across the external customer's Web pages,
and to make future website changes much quicker and easier to apply. A late change by the
customer emphasizes the importance of using CSS since the change will be tedious and time
consuming if each page needs to be modified manually.
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 class in a
positive and professional manner.
In addition, students:
• 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.
Books:
• Macdonald, Mathew. Creating a Website: The Missing Manual, 4th Edition

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 34


Computer Science Professionalism
Classroom Labs Credits: 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

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 35


whose career provide insight and guidance on how the firms interns should go about their
own career planning and implementation.
Intellectual Property Issues in Software Development – At a time of significant growth in
software develop as a major economic force, many young professionals seem to feel that
sharing of information and files is just a part of the new culture. Unfortunately, without some
form of intellectual property rights, the creators of the bulk of this new economic growth will
not earn a return on their investment and they will be forced to find other work. This project
has the interns digging deeply into the issue, explore the pros and cons, and write up the
results for others to consider.
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.
Books: None

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 36


Communications I with Lab
Classroom Labs Credits: 4

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 37


• Task 2: Students write an Operational Definition Argument on the meaning of key
phrases from relevant job descriptions they find on industry job sites.
• Task 3: Students write their bio/cv/resume to get a clear idea of their current skill set so
they can compare it to skills identified on industry job sites they would like to get and
help establish their professional and personal goals.
• Task 4: Students write cover letters that will engage a hiring manager, including brief
stories for each claim made in their cover letters.
• Task 5: Students identify criteria they will use to evaluate their strengths and
weaknesses with regard to this project and write a self-assessment letter that
documents the results of their self-evaluation.
Market Yourself Professionally. The goal of Project 2 is for students learn how to write a well-
reasoned and researched position argument about an issue or controversy in the computer
sciences, as well as establish their professional character (ethos) and brand-based on their
position. This project is divided into multiple tasks:
• Task 1: The company asks the students to help it decide whether it should take on a new
client based on the type of business the client is in. How should the student respond?
• Task 2: Students create their professional online presence to help them keep current in
the software industry, to network and to engage in conversations with thought leaders,
and to help with marketing when they are looking for new employment opportunities.
• Task 3: Students create a ‘visual resume’ to show why they should be hired and areas in
which they excel.
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.
Books:
• None

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 38


Physics II with Lab
Classroom Labs Credits: 5

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 39


• Laser and Optical Fiber – Select appropriate equipment by applying knowledge of the
types and characteristics of Lasers and Optical fibers.
• Atoms & Nuclei – The history of atoms dates back to 4th century BC but could not gain
traction till 17th century due to inadequate experimental techniques. Here we revisit
landmark theories and experiments to understand the properties and nature of atoms
and nuclei, establish theories and apply them to calculate, predict and model various
physical situations ranging from the atoms to stars, understand the phenomena like
fission, fusion, mass defect, etc. and their applications to devices like nuclear reactors.
Books:
• Fundamentals of Physics, Volumes 1 & 2 by Halliday, Resnick and Walker, 10th edition

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 40


Calculus II
Classroom Labs Credits: 4

4 -

Calculus II continues the intuitive, practical, numerical and theoretical development of


integration, inverse functions (exponential, logarithmic and inverse trigonometric functions),
techniques of integration (e.g. integration by parts, integration using software tools, and other
standard methods), and further applications of integration and modeling from the real world
(including differential equations, parametric equations, and polar coordinates). 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.
Performance Objectives:
• Applications of Integration – Students will become skilled working with applied real-
world applications. Students will practice using computers and other tools to explore
and more deeply understand integration and the implications of using these tools in
solving real-world problems.
• Inverse Functions – Students continue to explore exponential, logarithmic and inverse
trigonometric functions and their applications in the real world.
• Techniques and Further Application of Integration – This unit furthers the applicability
of integration by means of the standard techniques, such as integration by parts,
trigonometric integrals, and how various computer libraries and tools enable practical
solutions to more complex real-world problems.
• Differential Equations – This unit focuses on modeling real world problems in ways that
can lead to solutions using both analytic as well as computational methods.
• Parametric Equations and Polar Coordinates – The final unit of this class explores
curves defined by parametric equations, Bézier curves, areas and lengths in polar
coordinates, conical sections, and practical problem solving using these concepts.

Books: Calculus: Early Transcendentals, Metric Version. Stewart, James. 7th Edition,
ISBN-13: 978-81-315-2105-2
ISBN-10: 81-315-2105-2

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 41


Application Development
Classroom Labs Credits: 4

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

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 42


programmatically read data from an Excel spreadsheet, process and analyze it, produce results,
and/or creates a new resulting spreadsheet.
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.
Books:
• Big Java Early Objects by Horstman, ASIN: B01D2R7UZ0

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 43


Software Testing & Tools
Classroom Labs Credits: 4

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

In this class, students work on the following projects:


As a Software Developer. Students role-play as a developer on a small team for a software
consulting company. Students are provided with the base-code of a software product,
requirements for some new features, a product defect list, and product release criteria.
Students will update the product code, unit test their updates using professional tools and
processes and, when done, release the updated product code to the Test group for System
Testing.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 44


As a System Tester. Students role-play as part of a System Testing team. The team receives an
updated software product and release notes from the software developers, test the received
product using professional tools and processes, and generate a test report to management
describing the state of the product.
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.
Books: None

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 45


Communications II
Classroom Labs Credits: 4

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

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 46


Year 2 Overview
Year two of the program builds upon what was accomplished in year one. We continue to offer
courses that are problem-based and outcome-focused. The structure of courses continues to
follow the pattern of three days each week of mentor-driven discussions and activities intended
to draw out questions, confusion, and doubts from the interns from the readings, videos,
tutorials, problem sets, and other activities the interns may have during the “flipped classroom”
model we employ.
We believe the primary role of the professor/teacher/mentor is to create an environment
where learning and development is facilitated. The is accomplished by means of the mentor
actively engaging with the interns, asking questions, listening to their answers, asking follow-up
questions to that intern and others to verify what we are hearing. The primary purpose is to
identify issues, recognize barriers, and diagnose barriers to progress. We believe lectures, if
that is the only effective source of information, should be recorded and be made available, on
demand, whenever the intern needs the information. We believe the same is true about
textbooks, information on the Internet, and the other resources the interns need to facilitate
their learning.
We believe another key role of the professor/teacher/mentor is to provide feedback to each
intern on the work products they have produced. It is unfortunate that so many educators
believe that grades (marks) are feedback. We strongly disagree. Upon seeing a mark of 68 on a
paper, what can the intern actually learn or benefit from that information? Feedback occurs
when items on the paper are circled or highlighted and information in the form of an
explanatory text is given about what is good or bad about the item and how the intern might
consider making changes in order to improve the quality and/or the impact of their work.
Without this feedback, we consider assigning marks or grades to a paper to be mostly
meaningless.
Feedback must be timely! If more than a couple of days pass from the submission of a work
product and the feedback, must of the opportunity for the intern to learn from their experience
is lost. When feedback is timely, interns can compare and contrast the feedback with what they
were thinking when they produced the deliverable. The gap between what the intern thought
they were doing and the feedback provided about what the professors see is critical. When an
intern is surprised by the gap, they question what they were thinking and that leads to real
learning. The longer the delay, the more likely the intern will fail to remember what they were
thinking and the less likely they will be able to draw real value from the feedback.
Courses in the second year will dig more deeply into aspects of the material. There will be more
opportunities for pair and small group activities. Many things they experienced in the first year
will come back in a larger and more complex form. Work the interns have done before will need
to be updated and reused. Problems with those deliverables will need to be corrected before
they can be successfully used in the second-year courses. We believe interns need to realize
that there are consequences from shallow thinking and a failure to properly prepare for work
has consequences.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 47


The program continues to focus on the behaviors, attitudes, and practices of being a
professional and this is reinforced by the behaviors of the faculty and others supporting the
program. Role models are critical and differentiate powerful learning experiences from what
many interns experience.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 48


Calculus III
Classroom Labs Credits: 4

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:

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 49


• Calculus: Early Transcendentals, Metric Version. Stewart, James. 7th Edition,
ISBN-13: 978-81-315-2105-2
ISBN-10: 81-315-2105-2

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 50


Biology I with Lab
Classroom Labs Credits: 5

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)

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 51


Application Design Choices
Classroom Labs Credits: 4

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 52


• Graphical User Interfaces – A deeper dive into JavaFX, threads, and parallel processing.
In this class, interns work on the following projects:
Project 1 – Science and Engineering Calculator Project for critical space mission professionals –
This is the third semester where interns have worked on this project. In this semester, interns
extend their calculator from working with built-in double floating-point values to unlimited
precision decimal values, add in support for units and the conversion between common units
(such as those that led to the Mars Climate Orbiter crash), and an assessment of the design and
implementation benefits of shifting from the build-in double data type of Java to an unlimited
precision math library, UNumber. Key to this project will be using the features of Java to build
upon the work of others by means of extending a class, learning how to use an assembly-
language-like API to do computations, and ways to use mathematics to determine how to
significantly improve performance.
Project 2 – Graphical User Interface (GUI) Dictionary – An application that provides access to a
large set of words and introduces access to the operating system’s file structure for “user
friendly” error messages and exception handling. Given a Java application written using Swing,
the interns will be asked to rewrite the application in JavaFX and improve the user interface.
Project 3 – Recursive Solvers with Backtracking – A graphical maze runner implemented using
jpeg graphic elements is to be rewritten using the recent enhancement of the Java character set.
In addition, the iterative solution algorithm is to be replaced with a recursive solver using
backtracking. A simple implementation of a Sudoku Player and Solver needs to be rewritten so
that it uses the Model-View-Controller architecture.
In addition, interns:
• Produce work produces that require further development on the Software Development
Professionalism curricular thread.
• Produce work produces that require further development on the Computing curricular
thread.
• Produce work produces 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:
• Big Java Early Objects by Horstman, ASIN: B01D2R7UZ0
• Algorithm Design by Kleinberg, ISBN-13: 978-9332518643 (There is low cost international
edition) For the Faculty, not the students

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 53


Performance
Classroom Labs Credits: 4

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 54


In addition, interns:
• Produce work produces that require further development on the Computing curricular
thread.
• Produce work produces 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:
• The C Programming Language by Kernighan and Ritche, Second Edition, ISBN-13: 978-
0131103627
(https://archive.org/details/CProgrammingLanguage2ndEditionByBrianW.KernighanDen
nisM.Ritchie)
• Algorithm Design by Kleinberg, ISBN-13: 978-9332518643 (There is low cost
international edition) for the faculty, not the students

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 55


Ethics
Classroom Labs Credits: 4

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

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 56


in software development. Interns reach out to other interns at universities around the world to
discuss/debate current trends that could become ethical issues. The project starts by
establishing/updating the publicly available web page with this year’s focus. In the first year, each
intern then select at least two schools with computing programs, identifies the professor in
charge of a course that addresses ethics, and invites the professor to engage in this project. In
subsequent years, interns reach out to schools approached previously (whether or not they
participated) in an effort to engage this year by means of a reflection survey, an effort to improve
the project, the design of this year’s project, and the project implementation. Each team will
identify at least one new school each year to be invited to participate.
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 Software Development
Professionalism 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:
• Naagarazan, R. S. (2006). Ethics and Human Values. New Age International (P) Limited,
Publishers, India. ISBN-13: 978-81-244-2301-3.
• Martin, Mike (2000). Meaningful Work: Rethinking Professional Ethics. Oxford University
Press, USA. ISBN-13: 978-0195133257.
• Paul, Richard and Linda Elder (2009). The Miniature Guide to Critical Thinking: Concepts
and Tools, 6th Edition. Foundation for Critical Thinking. ISBN-13: 978-0944583104.
(Kindle version is available.)
• Goldratt, Eliyahu M. and Cox, Jeff (2014). The Goal: A Process of Ongoing Improvement.
30th Anniversary Edition. North River Press. ISBN-13: 978-0-88426-274-8. (Kindle version
is available.)

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 57


Statistics I
Classroom Labs Credits: 4

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?”

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 58


Project 2 – Worth the cost: A new machine tool will significantly improve performance of what
had been a serious bottle neck in the manufacturing process. Not everyone is convinced that the
total throughput will improve as much as others believe.
Project 3 – Retaining Community College Interns: A senior executive of the firm is a member of
a Community College Board and is concerned about the number of college interns who start their
education and then fail to graduate. He read a recent doctoral dissertation that claims that it can
predict retention and help guide efforts to get interns enrolled until they graduate. The executive
wants an assessment of this work and wants to see if our local school might be able to benefit
from the ideas.
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.
• Goldratt, Eliyahu M. and Cox, Jeff (2014). The Goal: A Process of Ongoing Improvement.
30th Anniversary Edition. North River Press. ISBN-13: 978-0-88426-274-8. (Kindle version
is available.)

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 59


Data Structures
Classroom Labs Credits: 4

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 60


• 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:
• Lewis and Chase (2013). Java Software Structures: Designing and Using Data Structures,
4th Edition, Addison-Wesley, 2010, ISBN: 0136078583

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 61


Architecture & Design
Classroom Labs Credits: 4

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 62


• 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.
• 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:
• Bass, Len; Clements, Paul; Kazman, Rick. (2012). Software Architecture in Practice, 3rd
Edition. SEI Series in Software Engineering. ISBN-13 978-0321815736.
• Bloch, Joshua. (2017). Effective Java. 3rd Edition. Addison-Wesley Professional. ISBN-13
978-0-13-468599-1.
• Bass, Len; Webr, Ingo; Zhu, Liming. (2015). DevOps: A Software Architect’s Perspective,
1st Edition. SEI Series in Software Engineering. ISBN-13 978-0134049847.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 63


Biology II with Lab
Classroom Labs Credits: 5

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)

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 64


Human Factors
Classroom Labs Credits: 4

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 65


Year 3 Overview
The third year of the program builds upon the previous years with problem-based courses and a
continued focus on outcomes. The structure of courses continues to follow the pattern of three
days each week of mentor-driven discussions and activities intended to draw out questions,
confusion, and doubts from the interns from the readings, videos, tutorials, problem sets, and
other activities the interns may have during the “flipped classroom” model we employ.
In the third year of the program the students may choose two from the following list of three-
course elective sequence topics:
• Sequence A: Project Management
o Course 1: Traditional Project Management
o Course 2: People Management
o Course 3: Managing Project Risk
• Sequence B: Mobile Application Development
• Sequence C: Big Data
• Sequence D: Medical Informatics
The second half of the third year (the Spring and Summer semesters) are utilized by a Simulated
Internship experience that provides an even more realistic work environment and project
workload. Upon completion of the Simulated Internship each student will receive a report
providing feedback on the student’s strengths and areas for improvement as measured against
the list of Basic Performance Assessment (BPA) areas defined as outcomes for this program.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 66


Statistics II
Classroom Labs Credits: 4

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#

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 67


Networking and Security
Classroom Labs Credits: 4

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 68


practices as is possible.
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.
• 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:
• Long, Fred; Mohindra, Dhruv; Seacord, Robert C.; Sutherland, Dean F.; Svoboda, David.
(2013). Java Coding Guidelines: 75 Recommendations for Reliable and Secure Programs,
1st Edition. SEI Series in Software Engineering. ISBN-13 978-0321933157
• Peterson. Larry L.; Davie, Bruce S. (2011). Computer Networks, 5th Edition. Morgan
Kaufmann. ISBN-13: 978-0123850591.
• Bryant, Randal E.; O’Hallaron, David, R. (2016). Computer Systems: A Programmer’s
Perspective, 3rd Edition. Pearson. ISBN-13: 978-9332573901.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 69


Databases, Client/Server, and Software as a Service (SaaS)
Classroom Labs Credits: 4

4 -

Units and Performance Objectives:


• Survey of current database options: ranging from SQL to no SQL
• Survey of current architectural options: ranging from client/server to Software as a
Service.
In this class, interns work on the following projects:
Project 1 – Survey of database technology: Which would be best for a specified project and
why.
Project 2 – Survey of implementation strategies: Ranging from client/server to Software as a
Service and make a recommendation for a specified project.
Project 3 – Demonstration Project: Architect and design a Software Development Program
Office project information management system for planning, tracking, and managing projects in
real-time.
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:
• Elmasri, Ramez and Navathe, Sham. (2011). Fundamentals of Database Systems, 6th
Edition. Addison-Wesley. ISBN-13: 978-0-136-08620-8
• Yadav, S. C. (2009). An Introduction to Client/Server Computing. New Age International.
ISBN-13: 978-8122426892.
• Ruparelia, Nayan. (2016). Cloud Computing. MIT Press. ISBN-13: 978-0262529099.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 70


Simulated Internship
Classroom Labs Credits: 22

22 -

In the Simulated Internship students role-play as software developer interns at a fictional


company called ACE Computer Enterprises (ACE). ACE is a global leader in providing software
development and engineering solutions to a variety of industries. The company employs
hundreds of software professionals across the globe and has a strong reputation as a quality
provider and thought-leader in the software domain.
The Simulated Internship is a four to six-month10 full-time experience where interns are
expected to demonstrate, and are assessed on, their ability to produce professional
deliverables (code, documents and presentations) and to exhibit professional behavior.
Interns working in small teams (4 - 5 per team) are given projects to work on by their
management (role-played by faculty), and enough project documentation and background
material for them to make progress and/or to exhibit professional behavior in difficult or
uncertain circumstances.
Each intern’s ability to work successfully in this simulated work environment is assessed against
CarterRadley’s Basic Performance Assessment (BPA) skills taxonomy.
Core Java knowledge is a pre-requisite as the Internship is targeted as Java-Based Projects
Units and Performance Objectives:
As a result of successfully completing their simulated internship, students will be able to:
• Meet the minimum requirements for demonstrating competency against the skills
identified in the Basic Performance Assessment (BPA) taxonomy.
• Analyse requirements and create professional quality code, documentation and
presentations
• Demonstrate ability to use professional tools
• Demonstrate ability to use professional processes and behaviours
• Give and receive feedback on deliverables and behaviour, both their own and other’s.
Interns work on the following Projects in their internship:
Project 1 – DellaFX – An Issue and Action Item Logging and Tracking Manager. DellaFX
DellaFX is a product developed and marketed by ACE. Its target user group consists of anyone
who regularly uses a computer with a need to manage issues and action item for a team. DellaFX
is a standalone, single user, memory resident application.
DellaFX is implemented in ten individual iterations where interns learn: Planning Poker; Test-

10
Typically one semester (4-months) or one semester plus a summer semester (6-months).

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 71


Driven Development; Design, Code, and Test Peer Reviews; Using basic UML Models;
Predictability, Self-Assessment, Reflection, and Continuous Improvement.
Project 2 – SuDoKu Player/Solver –
An ACE client wants a SuDoKu game player and solver for their catalog of games. This SuDoKu
player must be at least as good as what can be found in on-line stores, so the project begins
with a quick scan of real games in order to understand the competition and to help the team
come up with a compelling user interface design as well as high quality software design and
implementation.
In addition, the client will be taking over the maintenance of the game when development is
finished, so the ACE development team will need to define an acceptance process that includes
assessment of the external documentation, the internal documentation (including the JavaDocs),
as well as the comments.
The SuDoKu project starts with the interns being handed a brief specification, with some design
notes, for the SoDoKu player with an optional solver. Specified requirements include:
• Reading in a set of games from a text file in a very human friendly format, so it is easy to
load up the game with all of the puzzles from a book of SoDoKu puzzles and play them
without damaging the book.
• Providing the payer with optional hints about which moves are possible
• Preventing invalid moves.
• Displaying the solution.
• Show where the player made a move that precludes a win.
The interns are asked to figure out the user interface, implement the game, and polish it into a
game that real people will enjoy playing.
Project 3 – Online Merchandising Store
An ACE customer is a popular Spare Parts Store that wants to expand its business by going
“online”. The Store has several physical outlets, which are very popular and crowded. However,
customers face the problem of going to the physical outlets and ordering manually. Store
management feels that hosting a website, which can cater to the needs of these customers, will
reduce crowding at the outlets, while actually increasing business. This will also lead to higher
customer satisfaction because customers can order spare parts from the comfort of their home
or office. Furthermore, the Store can manage its transactions and inventory more efficiently.
Apart from order management facilities website should support features like “E-mail Us”, “Group
Chat” facility through which multiple users/visitors can chat with each other. The website should
also host a “Discussion Board” in which users can post new questions on available topics and can
also post replies to existing questions.
Store management also encourages the development team to add more features to the website,
which will merge well with the requirements of the Store. However, since several competitors
are expected to go online very shortly and management wants to be the first of the block, it is

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 72


vital that the project is completed within stipulated time.
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:
• None.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 73


Three Course Elective Sequence – Course #1
Classroom Labs Credits: 4

4 -

The Software Development Program provides electives in three-course sequences to provide


specialization breadth and depth into a software development topic to bring real value and
experience to a graduate’s career. Each student may choose two three-course electives from a
list of available specializations.
This course description is a template for the first course of these three-course elective
sequences. The first course is taken in the first semester of the third year and lays a foundation
for activities in the Internship that follows in the second semester of the third year and the
Summer session between the third and fourth year, and the second and third courses in the
elective sequence that follow in the fourth year.
The essence of this first course is to lay a solid foundation to understand both the technical and
the business/societal needs the three-course sequence is addressing, to introduce the intern to
the foundational concepts, notations, and basic tools at the heart of the topic. It is common for
interns to pick up a new programming language in this first elective course and to use that
language in conjunction with a basic tool or two to produce simple and yet foundational work
that provides insights about the nature of the topic. Interns are also called upon to research
the current state-of-the-practice as they strive to define a compelling project that will serve as
the vehicle for the three-semester sequence.
These elective courses fall into two categories11:
1. For teams. Groups of interns (four to six is optimal) are assigned to work together as a
team. Each individual intern on each team is expected to demonstrate basic
competencies and to produce basic individual work products. As the size of the team
grows, additional sophistication and complexity of the work products will be required
and again, all members of the team must be able to demonstrate their personal
accomplishments as well as the team’s.
2. For individuals. This variation is designed for projects to be performed by an individual
intern
Units and Performance Objectives:
• Survey a new problem space.
• Identify key concepts, vocabulary, processes, methods, and tools and produce a
demonstration of more than just a basic understanding of each.

11
Isolated electives courses that are not designed to fit together to provide both breadth and depth are not offered in
the SD Program.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 74


• Produce an annotated bibliography and given an oral defense that gives support to the
notion that the intern has more than just a basic understanding of the current best
practice in the domain.
• Sketch out a project plan making clear who is responsible for what.
In this class, interns work on the following categories of projects:
Project 1 – Individual/Business/Societal Value – From initial vision statement (from problem(s)
solved, target customers, competitive product analysis (from the status-quo to truly
competitive products), high-level user stories, context for success, and production and delivery
of a compelling presentation with supporting documentation.
Project 2 – Technical Risk Assessment and Mitigation – What are the barriers to project
success? (e.g. Do you know the most common programming language and tools used?) What
can you do to mitigate these risks? (e.g. How will you convince others that the programming
language, tools, concepts, and notations will not be a barrier?)
Project 3 – Minimum Viable Product Design – Based on the previous two objectives, define
what now appears to be the Minimum Viable Product, explain why you believe this is the MVP,
and sketch out the design and demonstrate actual running code that gives evidence of risk
reduction efforts.
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:
• As we work to flesh out these templates, we will provide the initial reading set that will
be used by the interns and their teams to produce their annotated bibliography.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 75


Year 4 Overview
The first three years of the program has provided a solid foundation and the practical
experience need to address most all of the program’s outcomes. A critical component of the
second half of the third year was the Simulated Internship, where each student worked in a
simulated yet realistic work environment and receives a report providing feedback on the
student’s strengths and areas for improvement as demonstrated during the internship.
The fourth-year builds upon the previous years’ knowledge and skills with a greater focus on a
specialization or two and more practical professional experiences designed to enhance each
student’s portfolio in parallel with numerous opportunities to address any areas of
improvement identified and documented in the resulting report mentioned above. The
structure of the courses continues to follow the pattern established in the previous years, but
students are provided with more flexibility and freedom in the study halls should evidence
warrant it.
In the fourth year of the program, the students continue with the second and third courses in the
three-course elective sequences that provide them with more hands-on experience that goes
beyond just testable knowledge to the professional level of skill using professional tools and
processes.
The fourth year of the program builds upon the internship in a manner similar to the way a
medical school residency builds upon the internships in a teaching hospital. Graduates from this
program, due to this structure and the focus on professional processes, methods, and tools as
well as a solid foundation of theory with practical experience, will be well positioned to move
quickly (in a manner of a few weeks) into serious software development positions and produce
true value for their employer. Because of the care and attention to what the students are
actually able to do at each step in their program, they will not need the months to years of
additional training so many other graduates require. The consistent and recurring focus on
producing client meaningful value and honest peer review and reflections will significantly
reduce the drama that so many freshers experience in their first job that pushes them to jump
from one job to another, causing untold harm to their employers and the clients.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 76


Discrete Math
Classroom Labs Credits: 4

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

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 77


Mathematics in logistics (e.g. supply chains), Scheduling, or in Game Theory as it relates to the
intern’s career interests.
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:
• Bender, Edward A. and Williamson, S. Gil. (2004) A Short Course in Discrete
Mathematics. Dover Publication; Dover Books on Computer Science. ISBN-13: 978-
0486439464 The version being recommended for this course is a free updated copy
that can be found at http://cseweb.ucsd.edu/~gill/BWLectSite/
• Albertson, Michael O. and Hutchinson, Joan P. (1988) Discrete Mathematics with
Algorithms. John Wiley & Sons. ISBN 0-471-84902-2. A free copy of this book can be
found at: https://www.macalester.edu/~hutchinson/book/book.html
• Turner, Raymond. (2011) Discrete Mathematics via Relational Databases. Found at:
https://www.academia.edu/1739363/DISCRETE_MATHEMATICS_VIA_RELATIONAL_DAT
ABASES
• Jackson, Matthew O. (2011) A Brief Introduction to the Basics of Game Theory. Found
at: https://ssrn.com/abstract=1968579

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 78


Computer Systems
Classroom Labs Credits: 4

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

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 79


cheap enough. The tradeoffs between speed and space will continue to be challenging
and the standard problems and their solutions need to be understood so they can be
leveraged as opposed to needlessly reinvented, and then typically not as well as the
current best practice implementation.
• Scaling Up: In a world where popularity can suddenly take you from hundreds of users
to hundreds of thousands of users in what seems to be a blink of an eye. While many
seems to only be concerned with higher order factors, even linear and constant factors
can be a serious issue.
• Modern Computation: CPUs today often have multiple cores, and in some systems,
each core can support more than a single thread of execution. In addition, the CPU is
not the only processor in many computer systems, video sub-systems (and others) often
employ very powerful processors of a very different kind and what they can do can be a
total game-changer, provided you understand and know how to take advantage of these
devices.
In this class, interns work on the following projects:
Project 1 – Memory Manager
Project 2 – I/O Programming
Project 3 – Individual demonstration
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.
• 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:
• Bryant, Randal E.; O’Hallaron, David, R. (2016). Computer Systems: A Programmer’s
Perspective, 3rd Edition. Pearson. ISBN-13: 978-9332573901.
• The C Programming Language by Kernighan and Ritche, Second Edition, ISBN-13: 978-
0131103627.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 80


Human/Computer Interactions
Classroom Labs Credits: 4

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:

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 81


• Norman, Don. (2013) The Design of Everyday Things: Revised and Expanded Edition.
ASIN: B00E257T6C.
• Shneiderman, Ben; Plaisant, Catherine; Cohen, Maxine; Jacobs, Steven. (2009).
Designing the User Interface: Strategies for Effective Human-Computer Interaction. 5th
Edition. Pearson. ISBN-13: 978-0321537355.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 82


Three Course Elective Sequence – Course #2
Classroom Labs Credits: 4

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:

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 83


• 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:
• As we work to flesh out these templates, we will provide the initial reading set that will
be used by the interns and their teams to produce their annotated bibliography.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 84


High Performance Engineer
Classroom Labs Credits: 4

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 85


• 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:
• Humphrey, Watts S. (2005). PSPsm: A Self-Improvement Process for Software Engineers,
1st Edition. SEI Series in Software Engineering. ISBN-13: 978-0321305497.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 86


Innovation
Classroom Labs Credits: 4

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

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 87


Three Course Elective Sequence – Course #3
Classroom Labs Credits: 4

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.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 88


• 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:
• As we work to flesh out these templates, we will provide the initial reading set that will
be used by the interns and their teams to produce their annotated bibliography.

Copyright © 2017-2018 CarterRadley, LLC. All Rights Reserved. 89

You might also like