CASCS412 | CAS CS412: MEAN Stack Application Design and Development

CAS CS412: MEAN Stack Application Design and Development

联系我们: 手动添加方式: 微信>添加朋友>企业微信联系人>13262280223 或者 QQ: 1483266981

CAS CS412: MEAN Stack Application Design and Development

About the course

This course provides an introduction to the architecture, development, testing, and deployment

of full-stack web-based applications, primarily in the MEAN stack . Included are technologies

such as non-relational data stores (i .e . mongoDB), RESTful, decoupled applications using

JSON as a data transport, and web sockets . Front-end work is done in Angular, and back-end

work is primarily in Node and Express . You’ll end up learning two languages: JavaScript and

Typescript.

The stack introduces several interesting concepts that you might not have been exposed to yet

in the CS curriculum, including:

Non-relational, document-oriented data stores

Asynchronous, non-blocking programming using Promises and thenables

Architectures using internal application programming interfaces (APIs)

Use of chained and lambda functions

Working with third-party data sources via JSON APIs

Deploying applications in a serverless (cloud) environment such as AWS EC2 and Lambda

Testing decoupled, API-based applications using frameworks such as Mocha/Chai and Postman

Stackover ow’s annual developer surveys (n=57,000 in 2020) shows that JavaScript continues

to be a dominant language in the industry, with Javascript in the #1 position in the Technologies

category. Typescript is #2 in the list of Most Loved Technologies . There is strong industry

demand for full-stack developers . In this context, the course will help prepare you for this

evolving workplace.

Text

We will use Kyle Simpson’s excellent 5-book series You Don’t Know JavaScript (YDKJ), which

is available at no cost from his GitHub repo: https://github.com/getify/You-Dont-Know-JS

Printed copies are also available through Amazon . Kyle is updating his set of books, and it looks

like he’s going to charge for those, but these free, earlier versions are perfectly ne.

Tools

For coding we’ll be using Webstorm, available free at https://www.jetbrains.com/webstorm . Grab

your license at https://www.jetbrains.com/community/education/#students (this is a free license

for everything Jetbrains makes).

I know some of you like to use editors such as Sublime, VS Code, or Atom, however these are

not full integrated development environments (IDEs) and you will quickly nd that they are not

up to the task of building the sort of application we are looking at.

Piazza / GitHub / Gradescope / Zoom (and Blackboard)

We use Piazza as a repository for the slide sets for each class, for homework and lab

assignments, and for announcements . You should be enrolled already, so that when you log on

to the site you’ll see the course listed . Piazza is also our tool for questions and discussions; I’ll

post each week’s lecture materials as PDFs there for your reference . You’ll use Gradescope to

turn in homework, which for the most part will be in the form of lab exercises, and to take any

quizzes that we might take.

Example code, and your project assignments, will be posted on GitHub. I realize that that’s a lot

of tech for just one course, but unfortunately each is good at one thing and not the others.

Homework/Assignments/Quizzes

Assessment is done primarily in short assignments and code reviews . You’ll end up doing eight

or nine coding assignments, starting small and getting larger as we progress . It’s important to

not fall behind, as there will always be another, more complicated, assignment coming, and the

pace during summer is crazy. My goal is to nudge you into a JavaScript way of coding and also

offer some advice on app architecture and structure.

Grades are not negotiable, but if you think that a mistake was made in grading, we’ll take a look

at it together. The course grading scale is numerical:

96-100 A 80-84 B 65-69 C

90-95 A- 75-79 B- 60-64 C-

85-89 B+ 70-74 C+

If your course grade happens to be close to a boundary, such as an 89.5, I’ll bump you up

unless your overall course work for some reason doesn’t justify it.

Note: This is a very large class and given the pace in the summer it isn’t possible to grade each

assignment with any sort of rigor. You’ll be graded mainly on effort, and we’ll go over the

solutions to all of the assignments together in class after their due dates . I’m treating this more

as a workshop than a formal course . That said, it’s really important that you turn in something

for each assignment . We’ll take a quick look to make sure there’s at least some effort there and

not just template code.

Getting Help

We want you to succeed in this class, and if you are stuck on something, reach out for advice

immediately. Your rst question should be on our Piazza forum — that’s usually the fastest way

to get information . There are lots of ways that I can help, but you need to ask . Of ce hours will

be posted on Piazza.

Contacting me and of ce hours

The best way to contact me (apart from Piazza) is by email at perryd@bu .edu . You may also IM

me at perryd@bu.edu (iMessage). Contact info for your TA will be posted on Piazza.

Academic Conduct Code

The University the College take cheating very seriously. Cheating and plagiarism will not be

tolerated in any course . Cases will be referred to the Dean’s of ce and may result in loss of

credit for an exam or assignment or other disciplinary action . Please read the college’s policy at

http://www.bu.edu/academics/policies/academic-conduct-code and, if you have any question as

to whether something you are doing is in violation, please ask me about it.

Programming is a collaborative effort, and I fully expect that you will use resources such as

Google, fellow students, and our own discussion forum to learn the material and do your

assignments . We’ll discuss code and approaches in class, and I’ll occasionally post sample

code on GitHub that you are welcome to use as a starting point . However, I don’t want you to

simply copy entire programs that you nd on the web and turn them in as your own work (that’s

the de nition of plagiarism) . If you do use more than a line or two of someone else’s code

(including mine), make a note in a comment in your program to point to where you got it . Again,

if there’s any doubt, ask me.

发表评论

了解 KJESSAY历史案例 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读