#like. i get it. object oriented coding etc etc
Explore tagged Tumblr posts
pinkadillydoo · 1 year ago
Text
friendship ended with pyMEL, now maya.cmds is my new best friend
0 notes
shallowseeker · 7 months ago
Text
On the whole, as a character, Dean has great gut instincts.
He's stellar at remembering a person's MO/objective, and his hackles raise when things don't add up.
(ex: with Metatron; he didn't trust Naomi for shits and giggles; he "trusted" her because Metatron's actions didn't make sense)
But the point of his character is that he's human. Even though Dean gets it right a lot of the time, he's not a perfect seer. He's gonna be wrong sometimes, especially when he's been pushed to duress.
(ex. Dean trusted Gadreel "Ezekiel", and the he got used as a pawn in Crowley's war to takeHell from Abaddon etc etc.)
And because his instinct are usually so good, getting it "wrong" is is so, so painful for Dean.
////
On this note...
We got God himself tellin' us...
Like, do you ever just sit back and think about how Dean went wholesale into Chuck's bucket of shit there at the end?
And what that probably did to Dean's psyche?
Like, I mean: owch. It's like an infected splinter he can't pull out.
This was a moment there in 14x20 that Dean turned his back on everything he stood for. Dean is usually the one telling us that destiny and authority figures are bullshit.
And yet, you get this line of Dean's, falling in line:
"We got God himself telling us..."
Tumblr media
14x20
///
Aside// I feel like... it just took so much for Chuck to get Dean here, you know? This is what leads to Dean's full-blown existential crisis.
"I used to think what we did mattered." etc etc:
Tumblr media
14x20
///
Pick up the gun, Dean...
And then when Dean can't pull the damn trigger, we get Chuck showing his true colors.
Dean is faced with an intense sense of betrayal AND an unspeakable sense of failure.
Tumblr media
14x20
///
At first, Dean's not totally paralyzed with his anger and grief, right? At first, Dean goes on the attack against Chuck:
Tumblr media
14x20
//
Tumblr media
14x20
//
BUT THEN. Oh, THEN.
Tumblr media
"Stop— STOP!"
14x20
///
Jack dies.
And even in that moments after Jack's death, Dean's not dealing with it.
He doesn't quite believe his eyes.
Jack's dead in front of him, and something in Dean is clinging to: "Maybe it's NOT true, because Chuck said the gun was the ONLY way."
Dean's clinging to this as a grief-delaying tactic.
Tumblr media
14x20
Dean's brain: Maybe Jack's not actually dead...
//////
I was wrong. And it hurts.
It's a multi-whammy, too. Dean is faced with many uncomfortable truths that are too painful to directly look at:
(a) Even with all that happened (Mary, innocent civilians getting killed by Jack's team-up with Heaven), Dean didn't want Jack dead. For a moment, he thought he did. He thought he wanted this "shell" of Jack neutralized. But now that he's faced with it, it couldn't be clearer to him just how much he didn't want that. (b) Dean is also faced with the fact that Cas was right not to fall in line with Chuck's plan. Chuck was a snake in the grass. Despite Dean telling Cas to get on board, Cas didn't. Now, Dean feels guilty and maybe even foolish for swallowing Chuck's lie. He even verbally announced that it was "the only way." Here's what Dean said earlier in the episode:
Tumblr media
Dean facing that? That hurts!
It speaks to how low Dean's mental health and resilience was that he even got on board with a destiny-oriented plan in the first place.
///
Protective mechanisms
So... Dean puts protective mechanisms in place. Otherwise, he'd fall apart. (Will eventually fall apart, actually. In just a few eps’ time.)
And despite everything, Dean's looking to Cas for spouse-coded support in this grief:
Tumblr media Tumblr media Tumblr media
Reeling, Dean tries to keep his eyes on Cas and Jack.
////
Yet!
It's too painful to admit that he was wrong about Chuck. I think this is what Dean means when he later says he "couldn't admit he was wrong."
Tumblr media
14x20
Here in 14x20, Dean starts having diarrhea of the mouth, babbling about how he always knew Chuck was a danger.
We see that in addition to being devastated by his losses... he feels like a fool.
It's not his fault Chuck betrayed him. Or that Chuck backed him into a murder-suicide sacrificial corner re: The Equalizer.
But Dean feels like he got duped. (Cas got duped, too, calling his father in the first place. Dean will eventually be sympathetic to that deep down, I think, taking that context into account. Cas didn't exactly lone wolf this time. Cas went to his own father, and that father betrayed all of them.)
Dean is usually THE GUY to see through destiny-style bullshit.
And here, he didn't. It hurts!
//
And... Losing Jack like that. It's just so horrible. Dean doesn't know what to say. So, he rambles.
It's painful to watch him try to cover, but it's also interesting to me that, at least until Belphagor arrives, Dean and Cas ARE talking to one another.
They're instinctually looking to one another for (grudging) support.
Tumblr media Tumblr media
14x20
///
Tumblr media
14x20
Like how Dean was in denial over Jack being dead ("I thought only the gun could..."), in our 15x01 script, we see more evidence of this sense of delayed grief: "maybe we get him back."
///
What does it take to get Dean hooked on revenge?
I guess my point with this post is about the wound of Chuck's betrayal. This was a huge blind spot for Dean, It was an uncharacteristic, grief-induced bowing to authority...
It did something remarkable to him. In a bad way.
It got Dean hooked on the thought of revenge.
I think it's this sense of overwhelming failure re: Chuck and of feeling like a fool that pushes him into it. Dean has usually been the one telling the audience that revenge is bullshit.
(Whether that's John's revenge, or Sam's revenge, or even Gabe's revenge in Unfinished Business):
Tumblr media
13x20
///
And like, that's something, isn't it? For Dean to take up revenge, something had to go bad wrong.
Later in season 15, Dean accepts soulless Jack back into the house without a thought. Then, he expresses some wariness about the heart-eating and Bilie's plan:
SAM: Jack, you… you ate their hearts? JACK: I… I had to. DEAN: And you let him? [CAS nods.] DEAN: Hmm. 15x11
...
CAS: Billie kept him hidden in the Empty until Chuck went off world. JACK: She let me out when it was safe. DEAN: Safe to what? Eat a bunch of angel hearts? JACK: Safe to do what I have to. The hearts, they were just the beginning. They made me strong, but I-I’m not strong enough. I… If I do exactly what she says, if I follow her plan, then I’ll get stronger and… I’ll be able to kill God. 15x11
But ultimately? Dean goes along with it. :( Dean, Cas, and Jack all do. They're been beaten down in ways we've rarely seen on the show. (It's usually not all of them at once!)
///
Dean & Cas backslide, turning their backs on the very things they have stood for:
Dean and Cas are both backsliding after Jack returns, and that is so... interesting to me. Because why?
Tumblr media
The STRESS of Jack's death and his re-emergence have them focusing on things that go against their idealized value systems.
They get hyperfocused on revenge and destiny:
Tumblr media
//
It's like the grief has got them both so turned around that they can't see straight!
//
Tumblr media
15x12
//
Anyway, Jack's death was a deep wound...
They want Jack back; they want the threat of Jack's murderer neutralized.
And like Revenge!John, like DemonBlood!Sam, like Godstiel, like MOC!Dean, like NaturalBornKiller!Mary...
Dean loses sight of the things he'd been trying to protect in the first place.
In his own words:
Tumblr media
Sam gives him grace. After all, Sam's been there.
Sam not only pulled a gun on Dean but even accidentally ax-murdered him in a fit of Taurus-temper during one of Gabe's endless Tuesdays in Mystery Spot.
///
So... What does it take to truly "ruin" Dean?
We think about all that Dean's been through and how rarely he gets in line for revenge.
It makes this particular pain very special.
So, what does it take to get Dean on a revenge kick?
Well.
Jack Kline, for starters.........
Everything related to Jack. Jack taking on "Dean's" Michael-burden in Ouroboros, Jack killing Mary, and the murder OF Jack.
Jack is the difference-maker when it comes to "ruining" Dean.
Jack is the trump card.
The Equalizer intended to make Jack's death "the thing Dean wouldn't survive."
//
And see, like.
Chuck wants Dean to lose it:
He WANTED Dean's life to fall apart.
You remember Dean sassily saying, "Guess your life isn't so perfect, after all, Eight-Pack Mommy"????
That's Chuck.
Chuck looks at Dean's life, his happiness, his loved ones... and although he greedily scrolls through Dean's life, even living vicariously through it at times, there's something dangerously bitter hidden underneath that interest:
SAM: Wait, wait... Dean... Dean, no. Listen! [Back in the room where Chuck and Amara are] CHUCK: You hear that? AMARA: What? CHUCK: Dean. Brought to the edge of doubt. His sense of duty, his rage winning out in the end.
Chuck wants to crack him, to break him.
///
DEAN: I don't want to do this, but this is everything! SAM: No, it's not!
Dean doesn't want this. He doesn't!
////
Acting on our free will is a group effort
...and here, we see that in full view.
Rarely is Sam the one lending this kind of support. But it's because of the support Sam's been given in the past that he's in a position to support in return.
And Chuck is pissed. He doesn't get it. He doesn't get how them banding together to support each other during their worst moments is what makes them able to escape his clutches.
[Dean uncocks the gun and puts it away. Meanwhile, the door to the storeroom explodes and Chuck/Amara comes storming out] CHUCK: Are you kidding me?! After everything, all that, you... you did it again! 15x17
When Dean can't resist giving into despair, his family picks up the slack.
DEAN: [Fuck] you, Chuck. CHUCK: No, [fuck] you. You know what you do with broken toys? You throw them out. ... CHUCK: I mean... have fun watching him die. [Chuck points at Jack, who doubles over in pain] CAS: Jack. JACK: Help me! DEAN AND SAM: Jack, Jack, Jack. DEAN: Hey. [Jack's eyes glow gold, and golden light breaks through cracks in his skin] DEAN: Jack!
15x17
///
Tumblr media
Cas supports Sam earlier in this very episode, which in turn enables Sam to support Dean.
As a family, they borrow support from one another.
The group support ends with Dean rising from the ashes of his existential crisis. He has renewed energy, ready to fight for Jack.
(Aside// In the next episode, 15x19, it's Sam who will lose hope, and Dean and Jack will try and lend their strength to him.)
@spnscripthunt-inactive
39 notes · View notes
honourablejester · 2 months ago
Text
Racial Pantheons in D&D
Since I’ve been talking about some of my favourite published gods recently, I wanted to just take a minute to explore some of my feelings around the idea of racial pantheons.
By which I mean, the idea of having an orc pantheon or a dwarf pantheon or an elven pantheon, etc.
I have … complicated feelings about this. Not because I object to the concept, but because the way it’s been done, specifically with D&D, feels odd.
I’m not talking about the whole ‘your species is evil because you were created by an evil god who baked evil into your DNA’ thing, because thankfully we’re already starting to move past that. Though it’s still a bit sticky when it comes to things like the 5e orc and drow and deep dwarf pantheons. But. Howandever. This is a problem that people are working on fixing.
The thing that’s catching me is less that, and more …
There’s no human pantheon? Usually. In most settings. There’s no specifically labelled racial ‘human’ pantheon. Gods aren’t human gods the way gods are orc gods or dwarf gods. If you understand what I mean? What you have is racial pantheons, and then you have the main pantheon, and it’s not said that the main pantheon is the ‘human’ pantheon, but it’s sort of how the world is coded? The racial pantheons are worshipped by members of that race, whereas the human pantheons are worshipped by everybody. They’re the big cosmic forces. They’re the night and stars and magic and murder, the big concepts.
And that has something of a built-in implication of importance. Which itches at me.
There’s also … Most of the stories about racial pantheons are built around two main themes: looking after their chosen race, and going to war with the gods of that race’s enemies. The main pantheon, the human pantheon, is over here upsetting the course of death and destroying chunks of reality and doing grand cosmic fuck ups, while the main thing you know about the elven and orc pantheons is that they’re at war with each other. They’re not … They might have a god or two who get to do big important things, plot sort of things, but the bulk of the racial pantheons are there to give characters of that race more than one potential god to worship.
And it’s not … it’s not a unique problem. It’s more a facet of the general tendency in published settings to just sideline non-human races generally. Compare how many human nations there are in a given setting to how many anyone else’s nations there are. The world is run by humans, with everyone else operating out of enclaves. And if you have mixed-race areas, they’re almost always majority human with a token member of a couple other races mentioned among NPCs.
The worldbuilding for published settings is extremely human-oriented. If there’s a race with multiple cultures, multiple languages, multiple sets of deities, it will be the humans, while all other races get a mono-culture. And the racial pantheons are very much a reflection of this as well. Their deities are reflections of the, usually single, culture of the species, and if there are other cultures within that species … well, they’re usually evil, and they’re broken off into their own subrace with their own much smaller and more evil pantheon. (See the duergar and drow).
It's an old problem, of course, the legacy of fifty years of writing. The game is evolving as we go, but some of the older settings have some older conceptualising built in. But this part of it, the human-centrism, I feel like it doesn’t get examined as much? People are aware of the issues with ‘drow are born evil because Lolth’ or ‘orcs are born evil because Gruumsh’, but I’m not sure how much awareness there is that …
The problem is not necessarily that there are racial pantheons, or even which of those pantheons are evil or not, but rather the fact that we’re still using those pantheons and the cultures they represent to put whole species into a single labelled box that is separate from the assumed and unspoken majority.
I like a lot of the racial pantheons. I like using deities and religion to explore cultures in a fantasy setting. But a lot the time, I often feel like the non-human pantheons are kind of … tacked on? Much as the species they represent. They’re not intergrated into the worldbuilding the same way. They’re not tied to big cosmic keystones. Their people don’t have huge areas where they’re the predominant species or culture. And they don’t get to have differences in those cultures. Not without those different cultures being sort of culled out and relabelled, usually on a racial/species/subspecies level.
In a lot of cases, I’m assuming this is largely not intentional. Well. Anymore. But it does create some unspoken assumptions about the state of the world and the relative importance of various peoples within it. Which, if that is not the set of assumptions you’re going for, might need looking at.
(If you are explicitly going for a divinely favoured and mandated human-centric world, carry on).
Essentially, I don’t mind the existence of the racial pantheons, and I quite like a lot of them. But I think if we were going to do that, there should also have been a specific human pantheon, and it should have been separate from the main cosmic-keystone pantheon. Have one big abstract concept pantheon, and then all the ‘looking after a specific people and representing various aspects of their culture’ pantheons below it.
And, on that note, it possibly should be based on culture rather than species. So individual species have room to have multiple pantheons and therefore multiple cultures. And you can have interesting crossovers where single cultures/pantheons can have adherents of multiple species, loosen out the worldbuilding and let species integrate with each other more. But I can also see the argument for species having ‘creator’ deities who’s whole job is specifically to look after their people. That being said, having both is a good solution there. More options is always better than fewer.
Just. The way things are currently in published settings niggles at me sometimes. If you enjoy a dwarf deity, and your character is not a dwarf, while it might not be specifically forbidden to worship them, the worldbuilding is not set up in a way to make you feel like that might be a common and casually accepted thing. The worldbuilding is set up to reinforce divisions on a species level, to encode cultures on a species level, and to create a silent assumption of a dominant species, to whom the previous restrictions do not apply.
It's starting to shift. The changes in the perception of the drow and the orcs are starting to shift things. But I think there is an underlying structure that goes a bit further than who is being directly labelled as evil. You know?
Though, yes. Changing that is an excellent start.
16 notes · View notes
noneuclydianpotato · 4 months ago
Text
Guh, aight I suppose I should get off my butt and get to making that other info dump I said I would do in the other one.
Alright class, now with that out of the way, today I will be talking about Void magic and a little bit of how I interpret the Void as a whole. I will also be giving a small overview about Script’s symbiote/close companion, Apth! There will be a test, and yes, it’s worth 70% of your grade.
Now there is better way to start off this by talking about the ambiguously-gendered person(???) of the hour, Apth! Some info below.
Name: Apthos (Apth for short)
Age: Uhhh very very old
Gender: no
Pronouns: Any and all (Script uses he/him personally. Apth doesn’t mind any use of pronouns or non-use of pronouns too!)
Orientation: Aroace
Likes: Script, quiet time, watching Script tinker with stuff, waffles (Script likes them too btw), knitting
Dislikes: Being called a parasite, parasites (host defense instinct), coffee, seeing Script hurt emotionally, or seeing him hurt physically
Active Abilities:
-Shapeshifting
-Damage reflection
-Fluid-like body
-Able to use Script’s abilities and strength
-Mostly indestructible (There are a few ways to harm the symbiote directly, I’ll get into those later on.)
Passive Abilities:
-Able to regenerate their host’s body
-Able to resurrect their host should they die, thus granting them a form of immortality
-Stops physical aging when their host hits adulthood
-A complete immunity to diseases, corruptions, etc.
-Increaed physical strength and speed
-Access to Void magic (however the host is forever tainted by the void.)
Apth is very protective of Script and very carin towards him, often to Script’s detriment as Apth often enable’s Script’s addictions in order to keep him stable. They know that they shouldn’t be allowing Script to destroy himself in such small ways, but they also don’t want to see him upset either. So if a cigarette or a drink is able to keep him stable, then it can allow it for now. But if they could they would absolutely cut Script off and get that poor old man some therapy instead.
Apth also despises parasitic organisms, not so much out of a personal grudge, more so out of a instinctual response to protect their host (ie Fresh and other kinds of parasites similar to him). Same goes with beings carrying a kind of disease or form of corruption (ie Nightmare.) While Apth does feel a disdain towards these beings, they tend to keep it to themselves.
That’s all I will say for now. I don’t want to make this longer than it’s already going to be.
The Void
The Void, at least the way interperate it, is many things. A beginning of all life be it physical, metaphorical, or hell even digital. It represents the absence of anything while also representing the limitless potential of what could be.
On the other hand, it also represents the inevitable end of everything. No matter what it is, or how long it lasts - it will eventually return to nothing. Eventually, ideas will get worn out and discarded, life eventually decays, and code can always be deleted. However, this is what allows new life to be born.
However that is my interpretation of it, not saying that it is at like this. I just never really see anyone play into the whole Void thing.
But with that aside, now you get the jist of the power Script uses. He’s practically using a force of nature that allows him to do some busted stuff.
Void-Borne Abilites:
-Creation of objects, coding, and creatures
-Destruction/Erasure of objects, coding, and creatures
-Body contortion (like some body horror type stuff)
-Reality warping (doesn’t use)
-Reality shaping (doesn’t use either)
-Reality Anchoring (using himself as a kind of anchor point in reality and thus disabling any kind of reality alteration.)
-Time manipulation (limited to only slowing time.)
-Fourth wall awareness
Now that’s not all of them, there two more that I will explain in a bit more depth.
Void Beast
Void Beast is a form Script takes when he is overwhelmed by his Void magic, often caused by extreme emotions. In this case, it’s rage. Void magic is very sensitive to emotions, even more than typical magic is, and the slightest shift in mood can be dangerous. Should his rage and pain get the better of him, that’s when you get the beast. An impossibly tall multiversal extinction event that is almost unstoppable… almost.
You see, if someone where to somehow get through to Script, or if Script calms down, he loses his Void Beast form as it’s only fueled by his anger. Once out of this form, both Script and Apth are exhausted and are left practically defenseless for a time, and yes, the transformation is incredibly painful.
Second, are what I like to call Commandments. Think of them as if a God came down, placed it’s hand on your head, and simply said like ‘yeet’ or something and you would just get absolutely flung at the speed of light. They’re effective words of power that force a certain effect on a creature be it human, monster, or anything else. If it ‘lives’ in any stretch of the word, it can be affected by a Commandment.
Commandments
-Begone - Kicks whoever Script’s touching out of the universe he’s in, and renders them unable to enter the universe he’s in until he leaves it. The effect ends once he leaves it, so if he returns to said universe the affected individual won’t be kicked out unless Script does it again.
-Cease- Renders the affected individual unable to move, use abilities, or speak unless Script allows it. They are only able to breath, blink, and move their eyes around.
-Sleep- Knocks the affected subject tf out for three hours. Can be resisted.
-Fade- Wipes the affected subject from existence completely, going to far as to make it unable for them to exsist again. All memories, pictures, traces, and objects related to said individual are erased too.
Alright I’ll call it there, I’ll make another one of these that’ll act as a tying up loose ends post as-well-as a extra facts for anything I missed.
Thank you for stopping by and be safe
Also 15 notes on my last comic page holy-
11 notes · View notes
sunless-not-sinless · 1 year ago
Text
shitGPT
for uni im going to be coding with a chatGPT user, so i decided to see how good it is at coding (sure ive heard it can code, but theres a massive difference between being able to code and being able to code well).
i will complain about a specific project i asked it to make and improve on under the cut, but i will copy my conclusion from the bottom of the post and paste it up here.
-
conclusion: it (mostly) writes code that works, but isnt great. but this is actually a pretty big problem imo. as more and more people are using this to learn how to code, or getting examples of functions, theyre going to be learning from pretty bad code. and then theres what im going to be experiencing, coding with someone who uses this tool. theres going to be easily improvable code that the quote unquote writer wont fully understand going into a codebase with my name of it - a codebase which we will need present for our degree. even though the code is not the main part of this project (well, the quality of the code at least. you need it to be able to run and thats about it) its still a shitty feeling having my name attached to code of this quality.
and also it is possible to get it to write good (readable, idiomatic, efficient enough) code, but only if you can write this code yourself (and are willing to spend more time arguing with the AI than you would writing the code.) most of the things i pointed out to the AI was stuff that someone using this as a learning resource wont know about. if it never gives you static methods, class methods, ABCs, coroutines, type hints, multi-file programs, etc without you explicitly asking for them then its use is limited at best. and people who think that its a tool that can take all the info they need, and give it back to them in a concise, readable way (which is a surprising lot of people) will be missing out without even knowing about it.
i got it to write tic-tac-toe (the standard babee) in python (the lang i have to use for uni ;-; (held at gunpoint here)). my specific prompt was "write me a python program for tictactoe that is written in an object oriented way and allows for future expansion via multiple files"
it separated it into three files below (which i think would run, but i never actually ran any of this code. just reading and judging)
Tumblr media Tumblr media Tumblr media
why does board use display instead of __str__ and __repr__?
why is the board stored as 1d instead of 2d? thats just confusing
why does it never early return aside from check_winner? (not a big issue here but kept on choosing to never early return when i asked it to add more methods)
why is there no handling of non-number user inputs?
why are non-int inputs truncated instead of telling the user that they should input ints only?
why is display implemented like that?
why are so many lines so bloody long (wide)?
why is there a redundant self.check_winner() after the while loop in TicTaacToe.play()? and if it wasnt redundant then you could finish the game without there being anything printed telling you that the game is finished?
why is the only comment useless? (this comment wouldnt be useless if it was a doc comment tho, but it aint a doc comment. speaking of, why is there no doc comments?)
these are the more immediate things i saw, but there are other things that are bad here.
whenever i write * this is where it updated the api without changing any usage of the api.
so i ask it to change board.display into __str__ and __repr__, it changes it to __str__*, it does not add a __repr__. asking it to add a __repr__ 1) removes the __str__ and 2) gives me this (the other methods are unchanged)
Tumblr media
what. the. fuck. this would imply that board takes in an argument for the boardstate, but it clearly doesnt. after 4 more asks it finally has both __str__ and __repr__, without fixing the fact its implying board takes an optional arg, so i get it to add this arg. anything that needs to print the board still calls display btw.
the reasoning it gave for using display over the repr and str magics was this
While using __str__ and __repr__ is a more idiomatic approach in Python, choosing to have a separate display method can still be a valid choice, especially if the display logic is more complex or if you want to keep the __str__ method for a more concise or formal representation of the object.
which, erm what? why would __str__ be for a concise or formal repr when thats what __repr__ is for? who cares about how complex the logic is. youre calling this every time you print, so move the logic into __str__. it makes no difference for the performance of the program (if you had a very expensive func that prints smth, and you dont want it to run every time you try to print the obj then its understandable to implement that alongside str and repr)
it also said the difference between __str__ and __repr__ every damn time, which if youre asking it to implement these magics then surely you already know the difference?
but okay, one issue down and that took what? 5-10 minutes? and it wouldve taken 1 minute tops to do it yourself?
okay next implementing a tic-tac-toe board as a 1d array is fine, but kinda weird when 2d arrays exist. this one is just personal preference though so i got it to change it to a 2d list*. it changed the init method to this
Tumblr media
tumblr wont let me add alt text to this image so:
[begin ID: Python code that generates a 2D array using nested list comprehensions. end ID]
which works, but just use [[" "] * 3 for _ in range(3)]. the only advantage listcomps have here over multiplying is that they create new lists, instead of copying the pointers. but if you update a cell it will change that pointer. you only need listcomps for the outermost level.
again, this is mainly personal preference, nothing major. but it does show that chatgpt gives u sloppy code
(also if you notice it got rid of the board argument lol)
now i had to explicitly get it to change is_full and make_move. methods in the same damn class that would be changed by changing to a 2d array. this sorta shit should be done automatically lol
it changed make_move by taking row and col args, which is a shitty decision coz it asks for a pos 1-9, so anything that calls make_move would have to change this to a row and col. so i got it to make a func thatll do this for the board class
what i was hoping for: a static method that is called inside make_move
what i got: a standalone function that is not inside any class that isnt early exited
Tumblr media
the fuck is this supposed to do if its never called?
so i had to tell it to put it in the class as a static method, and get it to call it. i had to tell it to call this function holy hell
like what is this?
Tumblr media
i cant believe it wrote this method without ever calling it!
and - AND - theres this code here that WILL run when this file is imported
Tumblr media
which, errrr, this files entire point is being imported innit. if youre going to have example usage check if __name__ = "__main__" and dont store vars as globals
now i finally asked it to update the other classes not that the api has changed (hoping it would change the implementation of make_move to use the static method.) (it didnt.)
Player.make_move is now defined recursively in a way that doesnt work. yippe! why not propagate the error ill never know.
Tumblr media
also why is there so much shit in the try block? its not clear which part needs to be error checked and it also makes the prints go offscreen.
after getting it to fix the static method not being called, and the try block being overcrowded (not getting it to propagate the error yet) i got it to add type hints (if u coding python, add type hints. please. itll make me happy)
now for the next 5 asks it changed 0 code. nothing at all. regardless of what i asked it to do. fucks sake.
also look at this type hint
Tumblr media
what
the
hell
is
this
?
why is it Optional[str]???????? the hell??? at no point is it anything but a char. either write it as Optional[list[list[char]]] or Optional[list[list]], either works fine. just - dont bloody do this
also does anything look wrong with this type hint?
Tumblr media
a bloody optional when its not optional
so i got it to remove this optional. it sure as hell got rid of optional
Tumblr media
it sure as hell got rid of optional
now i was just trying to make board.py more readable. its been maybe half an hour at this point? i just want to move on.
it did not want to write PEP 8 code, but oh well. fuck it we ball, its not like it again decided to stop changing any code
Tumblr media
(i lied)
but anyway one file down two to go, they were more of the same so i eventually gave up (i wont say each and every issue i had with the code. you get the gist. yes a lot of it didnt work)
conclusion: as you probably saw, it (mostly) writes code that works, but isnt great. but this is actually a pretty big problem imo. as more and more people are using this to learn how to code, or getting examples of functions, theyre going to be learning from pretty bad code. and then theres what im going to be experiencing, coding with someone who uses this tool. theres going to be easily improvable code that the quote unquote writer wont fully understand going into a codebase with my name of it - a codebase which we will need present for our degree. even though the code is not the main part of this project (well, the quality of the code at least. you need it to be able to run and thats about it) its still a shitty feeling having my name attached to code of this quality.
and also it is possible to get it to write good (readable, idiomatic, efficient enough) code, but only if you can write this code yourself (and are willing to spend more time arguing with the AI than you would writing the code.) most of the things i pointed out to the AI was stuff that someone using this as a learning resource wont know about. if it never gives you static methods, class methods, ABCs, coroutines, type hints, multi-file programs, etc without you explicitly asking for them then its use is limited at best. and people who think that its a tool that can take all the info they need, and give it back to them in a concise, readable way (which is a surprising lot of people) will be missing out without even knowing about it.
40 notes · View notes
snowcodes · 2 years ago
Note
hi. i had a very similar experince to trying to look through the code camp scams and everything online and not living near anything useful. if you can find an online real college thats what i did, granted its a community college and an associates but. other than that, don't sleep on utilizing chatgpt to teach you. thats how i learn all of my material. you can ask it questions or say "can you teach me about x", and if you dont like its response you can say things like "make that more simple" or "make that interactive". but helpful tip, all programming languages basically do the same things and work in very, very similar ways. if you just learn the fundamentals of programming you can just translate that to any language. in my opinion, the basics to learn are: the structures of programming (sequential, conditional, iterative), variables, datatypes (integer, string, float, etc)(in python those are it), conditional statements(these are those if-else things you see), iterative aka loops(do..while, for x in list, do until, etc), functions(keep em one purpose), passing data. i would say these are the fundamentals. every language does it (besides html bc thats not a programming language but just a mark up language), so once you know about the conditonal structure for example, just find out "how do i use this in x language". if you are learning python now, its a great language to learn about programming and you've probably realized by now that people most often use it in an object oriented way, but you don't have to and don't have to learn about classes or objects if you don't have the fundamentals down yet. i hope this helps and if you have any questions feel free to ask me
Tumblr media
Oh I 100% agree with this advice. After looking for a long, long time, I realised the most legitimate courses were from 'real' colleges and education suppliers that offered 'brick n mortar' schooling as well as e-learning.
I'm definitely going to utilise the free resources online and then work towards building a profile and generally seeing what the jobs online look for and work towards that alongside the usual path of learning :)
Also, I love how supportive folk generally are in this area of learning. I knew it would be competitive, especially when it comes to getting a job in a year or so...but seeing folk lift each other up instead of put each other down is heart-warming on so many levels. It makes me think I've found my correct career path :)
24 notes · View notes
ylojgtr · 1 year ago
Text
i've been mulling over tales of the empire and overall i think im very happy with the series. when morgan elsbeth first showed up i thought she was just another one-note imperial warlord, but through ahsoka and now especially tales i have become much more of a fan. how she deals with her clan's genocide was tragic in ahsoka but is just heart wrenching here
barriss was one of my favourite characters in tcw and even though i still think the terrorist arc could have been built up to better and less...uh, racist, i still find it to be an essential and interesting part of ahsoka's story. my only major disappointment with tales of the empire was how vader was handled. im not one to get upset at frivolous or over-the-top uses of vader, i loved him in rogue one and force unleashed etc., since he's objectively cool as fuck and people are entitled to their interpretations. but barriss betrayed ahsoka. and i don't believe for an instant that anakin, even when vader has taken over, would let anyone get away with hurting his padawan.
i decided a long time ago (since we've been waiting so fucking long to see barriss again) that in my hc, barriss *was* recruited to be an inquisitor during the chaos of order 66, as so many people speculated, but that vader immediately tried to kill her upon meeting her the first time. because i love her i decided she did escape, having to recon with her desire for the jedi to fall having come true in the worst possible way.
i imagined barriss further developing a connection to the dark side but using it to combat the empire. there are already so many jedi and thinking of ezra and luke's brief dark side uses i thought it would be sick to see that in full force against sheev & co. i think it would also fit perfectly into her development, if done right, going from highly rule-oriented healer to violent idealistic refugee to finding some kind of peace as a freedom fighter operating somewhere in between. i imagined her learning from the empire and reflections on her bombing that terror is not usually a very good way to spread a message, but still believing that violence can be used for good. sort of like a saw gerrera type but with less of the extreme ends justify the means mentality. hell she could even join saw gerrera's cell that would be sick.
(and of course she'd have to meet up with ahsoka again and YES they still have feelings for each other imagine the romantic tension, the memories of betrayal, the possible reconciliation but impossible circumstances both externally (war) and internally (opposing worldviews)...the potential encounters where they repeatedly end up with the same target but believing there to be two best ways of dealing with it but the TENSION...FUCK i need this)
anyway i like the idea of force users who are ""good"" (like in barriss's case, having strong conviction for justice) but don't strictly use the light side of the force or don't adhere to the jedi code. of course, since this is filoni we're talking about, everyone he previously claimed to "not be a jedi" just ends up being a jedi again 😐
not that i even mind this, i like the end of tales of the empire and am still excited to see what becomes of barriss (assuming she survives, which based on everyone else we've seen stabbed like that recently she probably will) (<not a slight against how lightsabers are being used, i honestly don't care that much it's fantasy). my one big complaint is that we didn't get to see what vader does with barriss.
when the trailer came out i actually thought my dreams were coming true! they show vader walking past her and i was so excited to see his reaction...and then he just sits there. he looks great, but...idk i hope we get to see more of that later on. im just happy to finally see barriss again
10 notes · View notes
watchmorecinema · 2 years ago
Text
Normally I just post about movies but I'm a software engineer by trade so I've got opinions on programming too.
Apparently it's a month of code or something because my dash is filled with people trying to learn Python. And that's great, because Python is a good language with a lot of support and job opportunities. I've just got some scattered thoughts that I thought I'd write down.
Python abstracts a number of useful concepts. It makes it easier to use, but it also means that if you don't understand the concepts then things might go wrong in ways you didn't expect. Memory management and pointer logic is so damn annoying, but you need to understand them. I learned these concepts by learning C++, hopefully there's an easier way these days.
Data structures and algorithms are the bread and butter of any real work (and they're pretty much all that come up in interviews) and they're language agnostic. If you don't know how to traverse a linked list, how to use recursion, what a hash map is for, etc. then you don't really know how to program. You'll pretty much never need to implement any of them from scratch, but you should know when to use them; think of them like building blocks in a Lego set.
Learning a new language is a hell of a lot easier after your first one. Going from Python to Java is mostly just syntax differences. Even "harder" languages like C++ mostly just mean more boilerplate while doing the same things. Learning a new spoken language in is hard, but learning a new programming language is generally closer to learning some new slang or a new accent. Lists in Python are called Vectors in C++, just like how french fries are called chips in London. If you know all the underlying concepts that are common to most programming languages then it's not a huge jump to a new one, at least if you're only doing all the most common stuff. (You will get tripped up by some of the minor differences though. Popping an item off of a stack in Python returns the element, but in Java it returns nothing. You have to read it with Top first. Definitely had a program fail due to that issue).
The above is not true for new paradigms. Python, C++ and Java are all iterative languages. You move to something functional like Haskell and you need a completely different way of thinking. Javascript (not in any way related to Java) has callbacks and I still don't quite have a good handle on them. Hardware languages like VHDL are all synchronous; every line of code in a program runs at the same time! That's a new way of thinking.
Python is stereotyped as a scripting language good only for glue programming or prototypes. It's excellent at those, but I've worked at a number of (successful) startups that all were Python on the backend. Python is robust enough and fast enough to be used for basically anything at this point, except maybe for embedded programming. If you do need the fastest speed possible then you can still drop in some raw C++ for the places you need it (one place I worked at had one very important piece of code in C++ because even milliseconds mattered there, but everything else was Python). The speed differences between Python and C++ are so much smaller these days that you only need them at the scale of the really big companies. It makes sense for Google to use C++ (and they use their own version of it to boot), but any company with less than 100 engineers is probably better off with Python in almost all cases. Honestly thought the best programming language is the one you like, and the one that you're good at.
Design patterns mostly don't matter. They really were only created to make up for language failures of C++; in the original design patterns book 17 of the 23 patterns were just core features of other contemporary languages like LISP. C++ was just really popular while also being kinda bad, so they were necessary. I don't think I've ever once thought about consciously using a design pattern since even before I graduated. Object oriented design is mostly in the same place. You'll use classes because it's a useful way to structure things but multiple inheritance and polymorphism and all the other terms you've learned really don't come into play too often and when they do you use the simplest possible form of them. Code should be simple and easy to understand so make it as simple as possible. As far as inheritance the most I'm willing to do is to have a class with abstract functions (i.e. classes where some functions are empty but are expected to be filled out by the child class) but even then there are usually good alternatives to this.
Related to the above: simple is best. Simple is elegant. If you solve a problem with 4000 lines of code using a bunch of esoteric data structures and language quirks, but someone else did it in 10 then I'll pick the 10. On the other hand a one liner function that requires a lot of unpacking, like a Python function with a bunch of nested lambdas, might be easier to read if you split it up a bit more. Time to read and understand the code is the most important metric, more important than runtime or memory use. You can optimize for the other two later if you have to, but simple has to prevail for the first pass otherwise it's going to be hard for other people to understand. In fact, it'll be hard for you to understand too when you come back to it 3 months later without any context.
Note that I've cut a few things for simplicity. For example: VHDL doesn't quite require every line to run at the same time, but it's still a major paradigm of the language that isn't present in most other languages.
Ok that was a lot to read. I guess I have more to say about programming than I thought. But the core ideas are: Python is pretty good, other languages don't need to be scary, learn your data structures and algorithms and above all keep your code simple and clean.
19 notes · View notes
herrscherofmagic · 3 months ago
Text
I'd like to add to this, though it's a bit tangential — there's also some pretty fundamental skills that exist in both STEM and humanities, and being able to make the connections between how they exist in these separate fields can really help your comprehension in either or both categories.
I'll have to apologize in advance because this post got way, way longer than I intended, and it's a fair bit messy and all over the place. But I do try and tie it back in to this original post, even if it takes a hot minute to get there >.>
.
I'm no longer in STEM at the moment but I did take a handy amount of both STEM and humanities courses, and ultimately chose the humanities route. Despite focusing on the humanities, there's definitely some STEM ideas that I found really useful in life, and by far the #1 has probably been the idea of abstraction.
For instance, when you say "abstract" there's a lot of things that can come to mind, with a common example being abstract art, right? Everyone knows the "crappy modern art" that's "overvalued" and "nonsensical" and whatnot. The funny-lookin' paint splatters on a canvas, or the giant blocks of solid color. That sort of thing.
Tumblr media
Well, the word "abstract" is meant to represent the idea of something which exists separately from the real world. In contrast, the real stuff is described as being "concrete". The thing is that there's a spectrum of this stuff, with some things being more concrete but still a little abstract, and vice-versa.
Turns out that this is a REALLY important idea in computer science. Because computer chips work with 1s and 0s, and our silly primate brains ain't optimized to add a bajillion 1s and 0s. So instead, we use abstraction to describe collections of operations with these 1s and 0s: from the fundamental machine code that's binary operations only, to the "assembly language" that bridges the gap between binary numbers and human-readable characters, then to the higher-level programming languages.
We use highly-abstracted programming languages and write code like "a + b = c" but that has to be translated down into a more concrete code, the assembly language, and then that gets translated even further into the actual *real* operations happening on the transistors, the 1s and 0s.
And within a programming language we also use abstraction, such as in Java, an object-oriented programming language. You might take a block of code that has many different uses and describe it in a simple form as a class, then extend subclasses and give more concrete and specific definitions to that superclass.
A common and easy-to-understand example of this is Minecraft, with it's mobs, programmed in Java. There's a lot of things called "mobs", which are mobile entities that move themselves around and can interact with the player (and which the player can interact with). But some are aggressive, some are netural, some are passive— so how do you code all these different types of mobs?
What you can do is create an "abstract" class (not necessarily a literal "abstract class") for "mobs" in general, defining the most fundamental and simple traits (health bars, movement, dimensions, etc.) and then extend that class into specific examples. You might create a subclass for the "Passive mobs" that defines how they react to being hit by a player, with their frantic running around.
But then the "Hostile mobs" subclass has a separate and unique bit of code to describe how these mobs deal more damage. And then you can extend the "Hostile mobs" subclass into a "Skeleton" subclass to define ranged attacks that other mobs don't have, and so on.
Tumblr media
You can work with varying levels of abstraction in your code, in order to meet different needs. By working at high levels of abstract you define wide and simple principles readily understood with less effort, and which can be more widely applied, and then begin to narrow down the code into more detailed sections for specific circumstances.
It turns out... that's EXACTLY how abstraction works in art. All the stuff you see in art exists on a spectrum from "abstract" to "concrete" and artworks are often made at some point on that spectrum to serve a specific purpose.
For example, you might want to visually depict a bird. On the most concrete level you have the human eye's vision of a bird, though even that is subjective: it's based on the physical health of one's eyesight, and the cultural expectations of what a "bird" is.
Then you have the photograph, which is still nearly exact concrete (hence "photorealistic") but still not 100% there. Then you have photorealistic art, and realistic, and then you go more and more abstract. You might move towards impressionistic art and pointillism, and then surreal art, and eventually you might arrive near total abstraction.
For instance, take this lovely photo of a Florida Scrub Jay (a very, very specific type of bird). This would be a rather concrete representation of a bird, and not just any bird but a particular species. Not a robin or raven or raptor, but a Florida Scrub Jay and nothing else!
Tumblr media
(Photo from Wikimedia Commons)
Since that is a photo, it's pretty concrete to begin with. So to make it more abstract... I'll draw a quick study of it!
Tumblr media
It's dirty and messy but gets the job done, I'm not making a 3-hour painted study for a tumblr post about STEM and humanities (and apparently birds, now). This took like... idk half an hour, 45 minutes? 15 minutes? I forgot to keep count and i've already put in like one and a half hours towards making this post by this point...
The drawing is still quite recognizable as being a Florida Scurb Jay, despite how messy it is, and you can also see the resemblance with the reference photo. It's farm from photorealistic, but it still has a strong level of concrete representation to it. It's far from true abstract art.
We can simplify things further, though, still staying representational but inching just a weeeee bit closer to the abstract:
Tumblr media Tumblr media
First we do away with the background, stick with some simply bold lines, and use big broad shapes with solid color. Then we simplify it even more, using only a few lines to indicate major forms, and using just four colors. No tree branch either. You can still recognize it as a Florida Scrub Jay though... right?
BUT WAIT! Another competitor has entered the ring! in the corner with the steel chair, it's...
the Blue Jay?!
Tumblr media
(Once more, photo from Wikimedia Commons)
Turns out, we've abstracted far enough away from the original photo reference, that now our bird doodle seems to resemble BOTH the Florida Scrub Jay (Aphelocoma coerulescens) and this lovely Blue Jay (Cyanocitta cristata).
After all, both are birds which are white and blue, and have a roughly similar body proportion. The tails and wing feathers are both blue, and the heads both have blue. Most of the differentiation comes from details, like the rings of black on the Blue Jay's tail, or the white tuft of feathers atop the Florida Scrub Jay's head.
Well, guess what, folks? We can abstract even further!
First, let's do away with all those pesky colors. We only need the one blue, right? After all, both the Florida Scrub Jay and the Blue Jay can be called "blue birds" so why do we need white or gray?
Tumblr media
But that's not a very attractive blue, is it? So... maybe we brighten it up a bit?
Tumblr media
Aha! Now we're talking. But this pose is a bit... meh. Now that we've abstracted away so much detail, you can hardly tell it's a bird! especially with the wing tucked in and the tail overlapped with the leg.
Maybe we can just flip up the wing and tail? And let's open the beak for good measure, too, just to emphasize that it's a beak and not a sideways ice cream cone!
Tumblr media
Hmmm... That's looking better. Say, our original photo was of a bird standing on a branch, but we don't have the branch anymore, and birds fly right? So why not just get rid of the legs entirely?
Tumblr media
And for some reason I feel like this would look really, really nice if we flipped it horizontally. Maybe clean up some of the shapes too?
Tumblr media
Wait a damn minute...
Tumblr media
Fuck, it's Twitter!
Achievement Get: Reinvent Graphic Design
Of course... there's still one last step of abstraction to take.
Tumblr media
"Behold, a bird!-" Diogenes, probably
To make this a bit easier to understand, I've compiled it all into a handy-dandy chart (which I made before the aforementioned Minecraft chart, just fyi):
Tumblr media
Representation isn't a singular possibility. That is to say that there's no one "true way" to represent a given bird, or in this case the Florida Scrub Jay. There are varying levels of concrete and abstract representation, and these serve different purposes.
Heck, even once we get to the level of abstract, there's different ways to abstract.
For instance, by abstracting to color, we get just a single shade of blue, not a random shade of blue but rather a specific shade that's derived from more concrete representations of blue birds.
But instead of abstracting to color, we can abstract to lines instead, and get a few vague lines that hint at the form of a bird flapping it's wings.
It's that sort of abstraction-to-lines that's useful in things like animation, where using simple linework to emphasize seemingly abstract concepts like "rhythm" and "movement" in a more tangible way can help make the figures feel more alive:
Tumblr media
(Image taken from the Barnes & Noble listing of the book Gesture Drawing: Dynamic Movement and Form, by Michael Hampton.)
This is why I've grown to appreciate abstract art, even if it's not the primary thing I draw or my #1 form of consumed art. Because ultimately, abstract art can (though doesn't necessarily have to) serve a purpose: to explore the underlying visual themes throughout countless forms of art.
Explorations of line, color, value, shape, form, etc. have their merit in allowing us to contemplate these ideas in simple abstracted ways that do away with the messy distracting details. And once you get a better understanding of these fundamental art concepts in a more abstract sense, you can use that abstract understanding to reinforce your more concrete representational works. Shapes in underlying compositions, gesture lines in figure drawing, and so on.
Going back to the concrete-abstraction bird chart, you'll notice a little detour on the right-hand side of that chart. That's because I didn't draw my study directly from the photo; instead, I took multiple steps to get there:
Tumblr media
A quickly and roughly-traced line sketch, then a value sketch (setting aside the photo instead of drawing over it at this point), and then adding the colors by eye, along with a few crisp lines to help indicate important edges.
THIS is the whole point of this rambling essay.
This is the crux of the matter.
This notion of concrete vs. abstract is one of the most important tools I have as an artist, because it allows me to divide the process of creating art into various stages with different intentions and different tools.
Instead of one continuous process from start to finish, from beginning to end, from concept to realized image... it's a messy back-and-forth between different processes that jump between simplification and complexity, from abstract to concrete.
It's that back-and-forth and decision-making which makes each and every artwork unique, and which helps add a tremendous amount of meaning.
And naturally, this applies to writing as well.
I don't want to drag this on any longer than it already has, so I'll wrap things up by going back to the very original post. To quote:
"I can instantly tell when someone in one of my STEM classes didn’t pay attention in English class in high school because they can’t read scientific articles without feeding them through ChatGPT."
Yeah. This is EXACTLY why I despise ChatGPT and almost every other form of "generative AI".
Even setting aside the environmental aspects,
Even setting aside the blatant stock manipulation and technocratic bullshit,
Even setting aside the plagiarism...
...ultimately, these statistical models cannot truly replicate the human process of creation.
They simply aggregate values associated with keywords, associations which are algorithmically trained via a dataset, and then spit out some randomized combination of these values. Regardless of whether these values are words or pixels or sound waves.
Letting these generative models do your "thinking" for you?? that can only be utterly devastating to one's own critical thinking skills. I'm quite frankly terrified by how desperately these companies push these "tools" because literally nobody on this godforsaken planet truly benefits from these things excepts shareholders.
Note, this isn't a dig at all forms of machine learning; there's an AMAZING wealth of possibility from machine learning as a whole.
This "AI" stuff just ain't it.
And this is why, ultimately, it's so important to study both humanities and STEM to some degree. These are different fields of knowledge that often have similar underlying skills involved, and learning about these different fields and identiying these common skills will strengthen your ability to use these skills in all sorts of scenarios.
To use an analogy with exercise, swimming and running are two very different forms of exercise. Just because a person is good at athletic running doesn't mean they're good at athletic swimming, and vice-versa.
However, both running and swimming require muscle movements, and the action of muscles requires energy. These muscles consume energy we get from nutrients, but importantly, they need *oxygen* to facilitate this process. And we get oxygen by breathing, right?
So folks learning to do exercise often need to learn to breathe well, too. We breathe almost effortlessly in daily life, but breathing purposefully helps you maximize your oxygen intake and CO2 outtake, making sure your body has enough oxygen to keep its muscles running optimally and for longer. Taking deeper and longer breaths while swimming, for example, can help you dive deeper for longer.
But guess what? Exercise ain't the only thing that needs good breathing. It turns out, when playing woodwind instruments like flutes, where you blow air out into or past the instrument to make sound... breathing is a handy thing as well.
So, all else being equal, a good swimmer will probably be better at breathing when they start athletic running than someone else who is also just starting to practice athletic running.
And, all else being equal, a good swimmer will probably have a better lung capacity and thus be better-equipped to play long passages when they begin learning to play the flute, compared to a different novice flautist who hasn't done any sort of exercises to practice their breathing technique.
Ultimately, there are still differences between breathing for swimming, and breathing for running, and breathing for playing music. But they're ALL still forms of breathing.
Likewise, the various critical thinking skills you learn in various STEM and humanities fields are all different and unique in their applications, but still have fundamental similarities.
Nobody needs to master everything, but to overly neglect STEM or humanities in favor of the other? That's going to hold you back, and make you vulnerable to being unable to handle various types of problems in life.
A lack of science knowledge might make you susceptible to misinformation about science, a lack of historical knowledge makes you susceptible to misinformation about history.
A lack of basic math skill makes it more difficult for you to handle logic problems in real life, and a lack of basic artistic ideas makes it more difficult to derive greater meaning and enjoyment from the plethora of arts in our daily lives; and so on and so forth.
The thing is that I think many people already have a greater deal of "basic knowledge" in various fields than they give themselves credit for. Even —or perhaps especially— when they're young!
Unfortunately, however, education systems (at least where I live, in the good 'ole US of A (derogatory) ) often separate these fields, and struggle to put them in the context of each other. To make it worse, once they're separated they're often further diluted to the point of near uselessness. History becomes rote memorization, art becomes algorithmic, math becomes overly formulaic, and so on.
If they can't be engaged with the educational material, they'll try and disengage. Especially if there are external circumstances such as bullying, chaotic or harmful domestic environments, malnutrition, etc.
And when time limits and testing standards are enforced atop all of this, naturally people turn to whatever "tools" they can to try and take back some of their time for their own interests.
Once upon a time these students would do things like write down the formulas for a test on the inside of their socks, or something. Now, of course... we've got ChatGPT.
There's so, so much to be said on the woes of education, but long story short, we're reaping the unfortunate harvest of decades of neglected education systems.
It's a damn shame, ain't it?
I cannot stress the importance of paying attention in language classes in high school. Maybe the reason why your English teacher taught you about unreliable narrators is because a lot of the media around you is written by unreliable narrators posing as reliable. Maybe they gave you assignments on interpreting texts so you could draw your own conclusions about news articles. Some of you clearly thought English classes were useless in high school and now are unable to engage critically with media.
12K notes · View notes
fromdevcom · 2 months ago
Text
Do you want to know what every Java developer should know? We have shortlisted some of the highly recommended concepts and components of Java language for beginners and senior programmers. These things to learn in Java may help you get the best Java developer job you deserve. Java technology has evolved and has become really huge in the last decade. There are just too many things and its almost impossible for one person to master all of them. Your knowledge about Java technology will depend completely on what you working on. In any technology say Java or some other language, it is more important and valuable to know the language fundamentals thoroughly (OOP concepts, interfaces, class, objects, threading, etc.) rather than specific frameworks or syntax. It's always easy to quickly learn new technologies when you master the fundamentals. Are you are a beginner? Looking for some help and guidance on how to get started on this language, our exclusive article on How to Learn Java and Java libraries to know is a must read for you before getting started on Java. I just updated this article in November 2016 and things are more relevant to recent Java trends. Java Interview Preparation Tips Part 0: Things You Must Know For a Java Interview Part 1: Core Java Interview Questions Part 2: JDBC Interview Questions Part 3: Collections Framework Interview Questions Part 4: Threading Interview Questions Part 5: Serialization Interview Questions Part 6: Classpath Related Questions Part 7: Java Architect Scalability Questions Java developers knowledge expectation changes based on the profile. In this post I have divided it into 3 profiles: College Graduate, Experienced Java Developer, Experienced Java Web Developer. 7 Things a College graduate must know to get a Java developer job If you are a college graduate with no job experience then as a Java developer you need to understand the following basic things. How Java Virtual Machine works? e.g. (Platform Independence, Garbage Collection, class files, etc) What are the Object-Oriented Programming Concepts Implemented in Java? Multi-threading Java Collection framework Good understanding of data types and few of "java.lang" classes like String, Math, System, etc. java.io stream concepts. Understand the concept of Swing/AWT event-based programming. Do not spend a lot of time on this but understand the best practices.  Servlets and JSP concepts.  9 Things an experienced Java Developer must know to thrive If you are an experienced professional then as a Java developer you may also need to understand the following basic things in addition to the ones listed above. Understand design patterns and its usage in Java Improvements in language from major version changes (Lambda, NIO, Generics, Annotations, Enums, ...). Coding Conventions. Build tool (Ant) or Project Management Tool (Maven). Version control System like GIT/SVN/Perforce/Clearcase. Apache Commons Libraries & few other common open source libraries. Continuous Integration Tools e.g. Jenkins and Hudson. Unit testing - e.g. JUnit and TestNG Unit testing Mocking libraries like Mockito Fundamental understanding of JSON and XML Understand Business layer frameworks - like Spring Understanding dependency injection (e.g. Spring, Google Guice, and Plain Java Dependency injection) 4 Things a Java Web Developer (JEE) Developer must know If you are an experienced professional working on Web-based development then as a JEE developer you also need to understand the following basic things in addition to the ones (7+9) listed above. Understanding of MVC Frameworks - Open source web frameworks like - Spring MVC, Struts, Vaadin, etc. Understanding of Microservice based framework like Spring Boot. Important Note: A lot of Front End UI development is now shifted to JavaScript frameworks. Therefore do not focus on Java-based frameworks that focus on the user interface (e.g. JSF or related frameworks).
Instead, learn JavaScript related frameworks like Angular.js or Backbone.js Fundamental understanding of Web Services and REST based service development. Good understanding of Web/Application server like Tomcat, Glassfish, WebLogic, WebSphere, Jetty, etc. Unix environment - A working knowledge of Unix environment can be beneficial as most of the Java servers are hosted on Unix based environment in production. Looking at the list of things it really feels difficult for a person to know each and everything in depth. As I already said it is more important and valuable to know the language fundamentals thoroughly and rest can be learned quickly when required. Can you think of something which is not part of this post? Please don't forget to share it with me in the comments section & I will try to include it in the list. Article Updates Article updated in April 2019 - Updated Introduction section, fixed minor text, and updated answers. Updated on November 2016 - Made changes as per latest technology trends and stacks.
0 notes
lackhand · 2 months ago
Text
My Server Side Rendering thoughts
I'm tech advising my friends' startup and it's interesting. Out of our discussions, I had a thought I wanted to get down in ink.
Client Side Rendering sucks for small teams but is nearly impossible to escape in Standard Technologies^1.
^1: Cunningham's Law: "the best way to get the right answer on the internet is not to ask a question; it's to post the wrong answer"
Backend development is basically fine
Say that you are writing an internal tool website. In his case it's a sales-y CMS-y thing; an integrated wizard & search tool. Obviously there's a few domains there (the Requirements server! The Catalog & search product! the produced Proposals!) and there's a sane UML chart about how the layers interact. Cool.
You've picked a language like ts/js/go/py/php/kotlin for your backends based on skill availability, libraries, etc. You're done, right?
But!
Frontend dev still requires a completely different approach
Developing the frontend for this kind of sucks. You've written a sane set of microservices in your favorite backend technology, yes, but when it comes time to knit them together, you probably need to switch technologies. You're going to pick React (or equivalently Svelte, Vue; Solidjs, etc), because you want a Single Page Application website.
At WebScale(tm), this makes sense: nothing scales or is available like the users' own browsers for the interactivity parts of your app. But if you're optimizing for the simplicity and team size, I'm not sure you want to bring a completely second technology into this game.
Liveview writes the frontend for you ASTERISK! FOOTNOTE! SEE CIT!
My friend's background includes the Elixir/Phoenix/Liveview stack^2.
Liveview uses a persistent websocket between the client and server. The client sends browser events to the server across the socket. The server uses a react-like events-and-caching-and-reevaluating model to determine changes to state as a result. The server uses session state to maintain its own mirror of the browser's DOM, and then streams the differences to the frontend, where the standard clientside javascript library applies them, and the cycle continues.
^2: 15 bits entropy remain
Chris McCord on how and why Liveview is, c. 2021.
Ok, so...? How does this help the solo dev?
At this phase, separation of concerns is overrated and you're probably not doing it right anyway.
You're a small-team multi-hat dev. You are building this app by the seat of your pants; you are not sure the UI you're building is the right UI yet.
So if you do normal React stuff, the flow of data is something like:
... → [Raw Database Schema] → [Internal Business Object in e.g. python] → [Display-oriented GET API in python on server] → [Serialize JSON] → [React render in typescript on browser] → [React produces final DOM changes on browser]
Those "display oriented API"/Serialize/"react HTML" lines are really suspicious at this point. Even though you've modeled your business objects correctly, every change to the interaction model requires synchronized FE and BE changes.
This is more than a protocol problem: something like protobufs or tRPC or whatever let you better describe how the interface is changing, but you'll still need to consume/produce new data, FE & BE changes.
So it lets you instead write:
... → [Raw Database Schema] → [Internal Business Object in elixir] → [Server rendering in elixir & HEEx on server] → [Serialize LV updates] → [LV FE lib renders on browser]
Bennies
By regarding the produced DOM mirror as a server API, you can feel ok about writing custom display queries and privileged business model access in your backend code. It means you're not using your RESTful GET endpoints in this codepath, but it also means you're not spitting out that boilerplate with only one current caller that will never have a second caller...
By sending browser events to the server's mirror of the DOM, you don't need to dip into the browser behavior; you can write server code that responds to the user's semantic actions. One can go too far; probably most confirm modals etc should get maintained & triggered clientside, but liveviewers usually take the serverside loop.
This websocket is critical for scoping changes, because e.g. a form post down in the guts of the page might cause changes at distant locations in the DOM (a nested delete button deleting an element from a list?) and the client's browser needs to be told to do the refresh of those elements (the list and any changed elements and a parent object with an element count and...?). That didn't use server generated events, but those could exist too ofc.
How does Elixir keep getting away with it?!
The pat answer for how Liveview does this -- including Chris McCord's article -- is the Blazingly! Efficient! Nature! of the BEAM! VM! (everything is green threads; cluster routing of method calls and replication of state; resumption of failed units of computation, etc etc).
I'm incredibly suspicious of this.
Sure, BEAM solves these problems for the developer, but so does a redis instance (or just the DB you were using anyway! Postgres is no joke!) + frameworks. Lots of apps use session state and use adapters to store that state durably with the end dev not needing to get into the weeds about how. Library authors could do this. It might be easier or harder for a given library author to deliver this in a given language, but there are some very skilled library authors out there.
You, developer, do not yet have as many users as you hope. DevOps has deployment practices that BEAM does not fit into. BEAM's enormous multiplexing is not saving you more than just turning up a few more servers would. You would be writing in go or in c++ if you meant it.
So:
Why isn't there already a popular equivalent of LV in js/ts/py/php/kotlin/etc?
TL;DR: LiveviewJS seems like the closest/most complete option as I understand it.
There are other equivalents ofc. But they have nowhere near the same level of use, despite being in languages that are OoM more in-use.
Candidates include turbo, django unicorn, unpoly, React Server Components... But none are really right afaict!
I can kind of guess why they're not as popular, which is that if you do not need to tie up server assets on a per-client basis, you will not choose to tie up server assets on a per-client basis. Websocket state, client DOM mirrors, etc; it adds up.
If you're building a chat app or video app, obviously devoting a stateful local socket-per-client is a good tradeoff. But I feel like there are lots of models that are similar! Including the one my friend is facing, modifying a document with a lot of spooky action at a distance.
What's missing? The last mile(s)
We have the technology to render any given slice of the page on the server. But AFAIK there's no diff behavior or anything so it'll render the entire subtree. You can choose whether to ship back DOM updates or fully rendered HTML; it doesn't make much of a difference to my point IMO.
Using something like htmx, you could have a frontend form post cause a subtree of the DOM to get re-rendered on the backend and patched back into the document.
That's "fine" so far as it goes, but if (in general) a form post changes components at a distance and you're trying to avoid writing custom frontend-y code for this, you're going to need to target some fairly root component with the changed htmx and include a lot of redundancy -- a SPA that does a refresh of the whole business model.
Why aren't more people talking about this?
The pieces of architecture feel like things we've all had available for a while: websockets, servers that handle requests and websockets, session state, DOM diffing, DOM patching.
How did Elixir get there first (Chris McCord explains how he got there first, so that might just be the answer: spark of genius)? Why did nobody else follow? Is there just a blindingly obvious product out there that does it that I'm missing?
One thing I see is that the big difference is only around server pushed events. Remix/RSC gets us close enough if the browser is always in control. If it isn't, you gotta write your own notification mechanisms -- which you can do, but now you gotta do it, and they're definitely running on the client, and your product has taken on a whole notification pipeline thing.
0 notes
pandeypankaj · 8 months ago
Text
How Do I learn Machine Learning with Python?
Because it is easy to read and comprehend, Python has become the de facto language for machine learning. It also comprises an extensive set of libraries. Following is a roadmap of studying Python:
1.Python Basics
Syntax: Variables, Data Type, Operators, Conditional statements/ Control Flow statements-if, else, for, while.
Functions: Declaration, Calling, Arguments
Data Structures: Lists, Tuples, Dictionaries, Sets
Object Oriented Programming: Classes, Objects, Inheritance, Polymorphism
Online Courses: Coursera, edX, Lejhro
2. Essential Libraries NumPy
 Used for numerical operations, arrays, and matrices. 
Pandas: For data manipulation, cleaning, and analysis. 
Matplotlib: For data visualization. 
Seaborn: For statistical visualizations. 
Scikit-learn: A powerhouse library for machine learning containing algorithms for classification, regression, clustering, among others. 
3. Machine Learning Concepts 
Supervised Learning: Regression of different types like linear and logistic. 
Classification: decision trees, random forests, SVM, etc. 
Unsupervised Learning: Clustering: k-means, hierarchical clustering, etc.
Dimensionality reduction assessment metrics-PCA, t-SNE, etc.: Accuracy, precision, recall, F1-score, Confusion matrix. 
4. Practical Projects Start with smaller-size datasets 
Search for a dataset in Kaggle or UCI Machine Learning Repository. Follow the structured procedure: 
Data Exploration: Understand the data, its features, and distribution. 
Data Preprocessing: Clean, normalize, and transform the data. 
Training the Model: This means fitting the model on the training data. 
Model Evaluation: It means testing the performance of your model on the validation set. Hyperparameter Tuning: Improve model parameters. 
Deployment: Lay your model into a real-world application. 
5. Continuous Learning 
Stay updated on all recent things happening in the world related to machine learning by following machine learning blogs, articles, and online communities. Try new things, play, and explore different algorithms techniques, and datasets. 
Contributing to open-source projects: Contribute to open-source libraries like Scikit-learn.
Competitive participation: Participation in competitions, like Kaggle, allows seeing the work of others and learning from the best.
Other Tips
Mathematics: One needs to have pretty solid building blocks of math, namely linear algebra, calculus, and statistics, to understand concepts in machine learning.
Online resources: Take advantage of online resources like hundreds of courses and projects on Coursera, edX, and Lejhro and practice on Kaggle.
Join online communities: Participate in forums like Stack Overflow or subreddits, ask questions about code and solution issues.
These above steps and frequent practice of the same on a regular basis will build up your understanding in Machine Learning using Python and will help you in getting a good career path.
1 note · View note
iimmidelhi · 1 year ago
Text
Kurukshetra University, Kurukshetra (Established by the State Legislature Act XII of 1956) (‘A+’ Grade, NAAC Accredited)
||     योगस्थ:  कु रु कर्माणि          ||
सर्बुद्धि व योग  युक्त होकर कर्ा करो
Scheme of Examination for Under-Graduate Programmes Bachelor of Computer Applications (BCA): SCHEME D according to
Curriculum Framework for Under-Graduate Programmes
As per NEP-2020 (Multiple Entry-Exit, Internships and Choice Based Credit System)
DEPARTMENT OF COMPUTER SCIENCE & APPLICATIONS
(For the Batches Admitted From 2023-2024)
Kurukshetra University Kurukshetra
Scheme of Examination for Undergraduate programmes Subject: BCA
According to
Curriculum Framework for Undergraduate Programmes
as per NEP 2020 (Multiple Entry-Exit, Internships and Choice Based Credit System)
Sem
Course Type
Course Code
Nomenclature of paper
Credits
Contact hours
Internal marks
End term Marks
Total Marks
Duration of exam (Hrs)
T + P
1
CC-A1
B23-CAP-101
Problem    Solving through C
3
3
20
50
70
3
Practical
1
2
10
20
30
3
CC-B1
B23-CAP-102
Foundations of Computer Science
3
3
20
50
70
3
Practical
1
2
10
20
30
3
CC-C1
B23-CAP-103
Logical Organization of Computer
3
3
20
50
70
3
Practical
1
2
10
20
30
3
CC-M1
B23-CAP-104
Mathematical Foundations for Computer Science-I
1
1
10
20
30
3
Practical
1
2
5
15
20
3
MDC1
To be taken from other department
SEC1
To be taken from SEC Pool
VAC1
To be taken from VAC Pool
AEC1
To be taken from AEC Pool
2
CC-A2
B23-CAP-201
Object Oriented Programming using C++
3
3
20
50
70
3
Practical
1
2
10
20
30
3
Course
Subject Code
Subject Name
BCA 1st
102
Foundation of Computer Science
BCA 1st Sem
103
Logical Organization of Computer
BCA 1st Sem
104
Mathematics
BCA 1st Sem
101
C Programming
BCA 1st Sem
B23-SEC-103
Basic it Tools
BCA 1st Sem
B23-VAC-101
Human Values and Ethics (50% students)
BCA 1st Sem
B23-VAC-201
Environmental Studies (50% students)
BCA 1st Sem
B-AEC-E101
English language & Communication
BCA 1st Sem
B23-POL-104
Political Science - Indian Polity
DEPARTMENT OF COMPUTER SCIENCE & APPLICATIONS
KURUKSHETRA UNIVERSITY, KURUKSHETRA
Session: 2023-24
Part A - Introduction
Subject
BCA
Semester
I
Name of the Course
Problem Solving through C
Course Code
B23-CAP-101 (Common with B23-CAI-101, B23-CDS- 101, B23-CTS-101)
Course Type: (CC/MCC/MDC/CC- M/DSEC/VOC/DSE/PC/AEC/ VAC)
CC
Level of the course (As per Annexure-I
100-199
Pre-requisite for the course (if any)
Course Learning Outcomes(CLO):
After completing this course, the learner will be able to:
learn the basics of C program, data types and input/output statements.
understand different types of operators, their hierarchies and also control statements of C.
implement programs using arrays and strings.
get familiar with advanced concepts like structures, union etc. in C language.
5*. to implement the programs based on various concepts of C.
Credits
Theory
Practical
Total
3
1
4
Contact Hours
3
2
5
Max. Marks:100(70(T)+30(P))
Internal Assessment Marks:30(20(T)+10(P)) End Term Exam Marks: 70(50(T)+20(P))
Time: 3 Hrs.(T), 3Hrs.(P)
Part B- Contents of the Course
Instructions for Paper- Setter
Examiner will set a total of nine questions. Out of which first question will be compulsory. Remaining eight questions will be set from four unit selecting two questions from each unit. Examination will be of three-hour duration. All questions will carry equal marks. First question will comprise of short answer type questions covering entire syllabus.
Candidate will have to attempt five questions in all, selecting one question from each unit. First
question will be compulsory.
Practicum will be evaluated by an external and an internal examiner. Examination will be of three-hour duration.
Unit
Topics
Contact Hours
I
Overview of C: History, Importance, Structure of C Program, Character Set, Constants and Variables, Identifiers and Keywords, Data Types, Assignment Statement, Symbolic Constant.
Input/output: Formatted I/O Function-, Input Functions viz. scanf(), getch(), getche(), getchar(), gets(),
output functions viz. printf(), putch(), putchar(), puts().
10
II
Operators & Expression: Arithmetic, Relational, Logical, Bitwise, Unary, Assignment, Conditional Operators and Special Operators Operator Hierarchy; Arithmetic Expressions, Evaluation of Arithmetic Expression,
Type Casting and Conversion. Decision making with if statement, if- else statement, nested if statement, else-if ladder, switch and break statement, goto statement, Looping Statements: for, while, and do- while loop, jumps in loops.
10
III
Arrays: One Dimensional arrays - Declaration, Initialization and Memory representation; Two Dimensional arrays -Declaration, Initialization and Memory representation.
Functions: definition, prototype, function call, passing arguments to a function: call by value; call by reference, recursive functions.
Strings: Declaration and Initialization, String I/O, Array of Strings, String Manipulation Functions: String Length, Copy, Compare, Concatenate etc., Search for a Substring.
10
IV
Pointers in C: Declaring and initializing pointers, accessing address and value of variables using pointers; Pointers and Arrays.
User defined data types: Structures - Definition, Advantages of Structure, declaring structure variables, accessing structure members, Structure members initialization, Array of Structures; Unions - Union definition; difference between Structure and Union.
10
V*
Practicum:
Students are advised to do laboratory/practical practice not limited to, but including the following types of problems:
To read radius of a circle and to find area and circumference
To read three numbers and find the biggest of three
To check whether the number is prime or not
To read a number, find the sum of the digits, reverse the number and check it for palindrome
To read numbers from keyboard continuously till the user
presses 999 and to find the sum of only positive numbers
To read percentage of marks and to display appropriate message (Demonstration of else-if ladder)
To find the roots of quadratic equation
To read marks scored by n students and find the average of
25
marks (Demonstration of single dimensional array)
To remove Duplicate Element in a single dimensional Array
To perform addition and subtraction of Matrices
To find factorial of a number
To generate Fibonacci series
To remove Duplicate Element in a single dimensional Array
To find the length of a string without using built in function
To demonstrate string functions
To read, display and add two m x n matrices using functions
To read a string and to find the number of alphabets, digits, vowels, consonants, spaces and special characters
To Swap Two Numbers using Pointers
To demonstrate student structure to read & display records of n students
To demonstrate the difference between structure & union.
Suggested Evaluation Methods
Internal Assessment:
Theory
Class Participation: 5
Seminar/presentation/assignment/quiz/class test etc.: 5
Mid-Term Exam: 10
Practicum
Class Participation: 5
Seminar/Demonstration/Viva-voce/Lab records etc.: 5
Mid-Term Exam:    NA
End Term Examination: A three hour exam for both theory and practicum.
Part C-Learning Resources
Recommended Books/e-resources/LMS:
Gottfried, Byron S., Programming with C, Tata McGraw Hill.
Balagurusamy, E., Programming in ANSI C, Tata McGraw-Hill.
Jeri R. Hanly & Elliot P. Koffman, Problem Solving and Program Design in C, Addison Wesley.
Yashwant Kanetker, Let us C, BPB.
Rajaraman, V., Computer Programming in C, PHI.
Yashwant Kanetker, Working with C, BPB.
*Applicable for courses having practical component.
DEPARTMENT OF COMPUTER SCIENCE & APPLICATIONS
KURUKSHETRA UNIVERSITY, KURUKSHETRA
Session: 2023-24
Part A - Introduction
Subject
BCA
Semester
I
Name of the Course
Foundations of Computer Science
Course Code
B23-CAP-102 (Common with B23-CAI-101, B23-CDS- 101, B23-CTS-101)
Course Type: (CC/MCC/MDC/CC- M/DSEC/VOC/DSE/PC/AEC/ VAC)
CC
Level of the course (As per Annexure-I
100-199
Pre-requisite for the course (if any)
Course Learning Outcomes(CLO):
After completing this course, the learner will be able to:
understand the basics of computer
learn about I/O devices and operating systems
understand internet and its services
learn about the threats and security concepts on computers
5*. to understand the working of operating system, internet and security related concepts.
Credits
Theory
Practical
Total
3
1
4
Contact Hours
3
2
5
Max. Marks:100(70(T)+30(P))
Internal Assessment Marks:30(20(T)+10(P)) End Term Exam Marks: 70(50(T)+20(P))
Time: 3 Hrs.(T), 3Hrs.(P)
Part B- Contents of the Course
Instructions for Paper- Setter
Examiner will set a total of nine questions. Out of which first question will be compulsory. Remaining eight questions will be set from four unit selecting two questions from each unit. Examination will be of three-hour duration. All questions will carry equal marks. First question will comprise of short answer type questions covering entire syllabus.
Candidate will have to attempt five questions in all, selecting one question from each unit. First question will be compulsory.
Practicum will be evaluated by an external and an internal examiner. Examination will be of
three-hour duration.
Unit
Topics
Contact Hours
I
Computer Fundamentals: Evolution of Computers through generations, Characteristics of Computers, Strengths and Limitations of Computers, Classification of Computers, Functional Components of a Computer System, Applications of computers in Various Fields. Types of Software: System software, Application software, Utility Software, Shareware, Freeware, Firmware, Free Software.
Memory Systems: Concept of bit, byte, word, nibble, storage locations and addresses, measuring units of storage capacity, access time, concept of memory hierarchy. Primary Memory - RAM, ROM, PROM, EPROM. Secondary Memory - Types of storage devices, Magnetic Tape, Hard Disk, Optical Disk, Flash Memory.
10
II
I/O Devices: I/O Ports of a Desk Top Computer, Device Controller, Device Driver. Input Devices: classification and use, keyboard, pointing devices - mouse, touch pad and track ball, joystick, magnetic stripes, scanner, digital camera, and microphone Output Devices: speaker, monitor, printers: classification, laser, ink jet, dot-matrix. Plotter.
Introduction to Operating System: Definition, Functions, Features of Operating System, Icon, Folder, File, Start Button, Task Bar, Status Buttons, Folders, Shortcuts, Recycle Bin, Desktop, My Computer, My Documents, Windows Explorer, Control Panel.
10
III
The Internet: Introduction to networks and internet, history, Internet, Intranet & Extranet, Working of Internet, Modes of Connecting to Internet.
Electronic Mail: Introduction, advantages and disadvantages, User Ids, Passwords, e-mail addresses, message components, message composition, mailer features. Browsers and search engines.
10
IV
Threats: Physical & non-physical threats, Virus, Worm, Trojan, Spyware, Keylogers, Rootkits, Adware, Cookies, Phishing, Hacking, Cracking.
Computer Security Fundamentals: Confidentiality, Integrity, Authentication, Non-Repudiation, Security Mechanisms, Security Awareness, Security Policy, anti-virus software & Firewalls, backup & recovery.
10
V*
Practicum:
Students are advised to do laboratory/practical practice not limited to, but including the following types of problems:
Operating System:
Starting with basics of Operating Systems and its functionalities
Computer Basics:
Identify the various computer hardware
Understanding the working of computer
Understanding various types of software
25
Internet and E-mail:
Using Internet for various tasks
Creating and using e-mail. Security:
Understanding various threats
How to be safe from virus threats
Various software to get safe from virus attacks.
Suggested Evaluation Methods
Internal Assessment:
Theory
Class Participation: 5
Seminar/presentation/assignment/quiz/class test etc.: 5
Mid-Term Exam: 10
Practicum
Class Participation: 5
Seminar/Demonstration/Viva-voce/Lab records etc.: 5
Mid-Term Exam:    NA
End Term Examination: A three hour exam for both theory and practicum.
Part C-Learning Resources
Recommended Books/e-resources/LMS:
Sinha, P.K. & Sinha, Priti, Computer Fundamentals, BPB.
Dromey, R.G., How to Solve it By Computer, PHI.
Norton, Peter, Introduction to Computer, McGraw-Hill.
Leon, Alexis & Leon, Mathews, Introduction to Computers, Leon Tech World.
Rajaraman, V., Fundamentals of Computers, PHI.
*Applicable for courses having practical component.
DEPARTMENT OF COMPUTER SCIENCE & APPLICATIONS
KURUKSHETRA UNIVERSITY, KURUKSHETRA
Session: 2023-24
Part A - Introduction
Subject
BCA
Semester
I
Name of the Course
Logical Organization of Computer
Course Code
B23-CAP-103 (Common with B23-CAI-101, B23-CDS- 101, B23-CTS-101)
Course Type: (CC/MCC/MDC/CC- M/DSEC/VOC/DSE/PC/AEC/ VAC)
CC
Level of the course (As per Annexure-I
100-199
Pre-requisite for the course (if any)
Basic Knowledge of Mathematics (10th Level)
Course Learning Outcomes(CLO):
After completing this course, the learner will be able to:
understand number systems, error detecting correcting code and representations of numbers in a computer system.
understand computer arithmetic and Boolean algebra and simplification of Boolean expressions.
understand working of logic gates and design various combinational circuits using these logic gates.
understand working of different types of flip-flops and design different types of registers.
5*. to understand the practical aspects of logical organization of computer.
Credits
Theory
Practical
Total
3
1
4
Contact Hours
3
2
5
Max. Marks:100(70(T)+30(P))
Internal Assessment Marks:30(20(T)+10(P)) End Term Exam Marks: 70(50(T)+20(P))
Time: 3 Hrs.(T), 3Hrs.(P)
Part B- Contents of the Course
Instructions for Paper- Setter
Examiner will set a total of nine questions. Out of which first question will be compulsory. Remaining eight questions will be set from four unit selecting two questions from each unit. Examination will be of three-hour duration. All questions will carry equal marks. First question
will comprise of short answer type questions covering entire syllabus.
Candidate will have to attempt five questions in all, selecting one question from each unit. First question will be compulsory.
Practicum will be evaluated by an external and an internal examiner. Examination will be of three-hour duration.
Unit
Topics
Contact Hours
I
Number Systems: Binary, Octal, Hexadecimal etc. Conversions from one number system to another, BCD Number
System. BCD Codes: Natural Binary Code, Weighted Code, Self- Complimenting Code, Cyclic Code.
Error Detecting and Correcting Codes. Character representations: ASCII, EBCDIC and Unicode.
Number Representations: Integer numbers - sign-magnitude, 1’s & 2’s complement representation. Real Numbers normalized floating point representations.
10
II
Binary Arithmetic: Binary Addition, Binary Subtraction, Binary Multiplication, Binary Division using 1’s and 2’s Compliment representations, Addition and subtraction with BCD representations. Boolean   Algebra:    Boolean Algebra Postulates, basic Boolean Theorems, Boolean Expressions, Boolean Functions, Truth Tables, Canonical Representation of Boolean Expressions: SOP and POS, Simplification of Boolean Expressions using Boolean Postulates & Theorems, Kaurnaugh-Maps (upto four variables), Handling Don’t Care conditions.
10
III
Logic Gates: Basic Logic Gates – AND, OR, NOT, Universal Gates – NAND, NOR, Other Gates – XOR, XNOR etc. Their symbols, truth tables and Boolean expressions.
Combinational Circuits: Design Procedures, Half Adder, Full Adder, Half Subtractor, Full Subtracor, Multiplexers, Demultiplexers, Decoder, Encoder, Comparators, Code Converters.
10
IV
Sequential    Circuits:    Basic    Flip-     Flops    and    their    working. Synchronous and Asynchronous Flip –Flops, Triggering of Flip- Flops, Clocked RS, D Type, JK, T type and Master-Slave Flip-Flops. State Table, State Diagram and State Equations.
Flip-flops characteristics & Excitation Tables.
Sequential Circuits: Designing registers –Serial-In Serial-Out (SISO),
Serial-In Parallel-Out (SIPO), Parallel-In Serial-Out (PISO) Parallel-In Parallel-Out (PIPO) and shift registers.
10
V*
Practicum:
Students are advised to do laboratory/practical practice not limited to, but including the following types of problems:
Number System:
Problems based on Number System and their conversion.
Programs based on Number System conversion. Binary Arithmetic
Problems based on Binary Arithmetic.
25
Programs based on Binary Arithmetic.
Problems based on Boolean Expression and their simplification
Logic Gates
Understanding working of logic Gates. Combinatorial Circuits:
Designing and understanding various combinational circuits. Sequential Circuits:
Designing and understanding various sequential circuits.
Suggested Evaluation Methods
Internal Assessment:
Theory
Class Participation: 5
Seminar/presentation/assignment/quiz/class test etc.: 5
Mid-Term Exam: 10
Practicum
Class Participation: 5
Seminar/Demonstration/Viva-voce/Lab records etc.: 5
Mid-Term Exam:    NA
End Term Examination: A three hour exam for both theory and practicum.
Part C-Learning Resources
Recommended Books/e-resources/LMS:
M. Morris Mano, Digital Logic and Computer Design, Prentice Hall of India Pvt. Ltd.
V. Rajaraman, T. Radhakrishnan, An Introduction to Digital Computer Design, Prentice Hall.
Andrew S. Tanenbaum, Structured Computer Organization, Prentice Hall of India Pvt. Ltd.
Nicholas Carter, Schaum’s Outlines Computer Architecture, Tata McGraw-Hill.
*Applicable for courses having practical component.
DEPARTMENT OF COMPUTER SCIENCE & APPLICATIONS
KURUKSHETRA UNIVERSITY, KURUKSHETRA
Session: 2023-24
Part A - Introduction
Subject
BCA
Semester
I
Name of the Course
Mathematical Foundations for Computer Science-I
Course Code
B23-CAP-104 (Common with B23-CAI-101, B23-CDS- 101, B23-CTS-101)
Course Type: (CC/MCC/MDC/CC- M/DSEC/VOC/DSE/PC/AEC/ VAC)
CC-M
Level of the course (As per Annexure-I
100-199
Pre-requisite for the course (if any)
Course Learning Outcomes (CLO):
After learning this course student will be able:
Gain the knowledge of set theory, types of sets and operations on sets. Understand various concepts of matrices and determinants, and acquire the cognitive skills to apply different operations on matrices and determinants.
Have the knowledge of the basic concepts of complex numbers and acquire skills to solve linear quadratic equations.
Gain the knowledge of the concepts of Arithmetic progression, Geometric progression and Harmonic progression, and find A.M., G.M. and H.M. of given numbers.
Understand the concept of differentiation
* Attain the skills to make use of the learnt concepts of Introductory Mathematics in multidisciplinary learning contexts and to know their applications
Credits
Theory
Practical
Total
1
1
2
Contact Hours
1
2
3
Max. Marks:50(30(T)+20(P))
Internal Assessment Marks:15(10(T)+5(P)) End Term Exam Marks:35(20(T)+15(P))
Time: 3 Hrs.(T), 3Hrs.(P)
Part B-Contents of the Course
Instructions for Paper- Setter
Unit
Topics
Contact Hours
I
Sets and their representations, Empty set, Finite and infinite sets, Subsets, Equal sets, Power sets, Universal set, Union and intersection of sets, Difference of two sets, Complement of a set, Venn diagram, De-Morgan’s laws and their applications.
4
II
An introduction to matrices and their types, Operations on matrices, Symmetric and skew-symmetric matrices, Minors, Co-factors. Determinant of a square matrix, Adjoint and inverse of a square matrix, Solutions of a system of linear equations up to order 3.
4
III
Quadratic equations, Solution of quadratic equations. Arithmetic progression, Geometric progression, Harmonic progression, Arithmetic mean (A.M.), Geometric mean (G.M.), Harmonic mean (H.M.), Relation between A.M., G.M. and H.M.
4
IV
The concept of differentiation, differentiation of simple functions, Use of differentiation for solving problems related to real-life situations. Differentiation of simple algebraic, trigonometric and exponential functions.
4
V*
Practicum:
Students are advised to do laboratory/practical practice not limited to, but including the following types of problems: Problem Solving- Questions related to the practical problems based on following topics will be worked out and record of those will be maintained in the Practical Note Book:
Problems related to union, intersection, difference and complement of sets.
Problems based on De Morgan’s Laws.
Problems related to Venn diagrams.
Problems to find inverse of a matrix.
Problems to find determinant of a square matrix of order 3.
Problems to find nth term of A.P., G.P. and H.P.
Problems to find sum of n terms of A.P., G.P. and H.P.
Problems to find A.M., G.M. and H.M. of given numbers.
Problems involving formulation and solution of quadratic equations in one variable.
Problems to find first derivatives of functions.
25
Suggested Evaluation Methods
Internal Assessment:
Theory
Class Participation: 4
End Term Examination:
A three hour exam
Seminar/presentation/assignment/quiz/class test etc.: NA
Mid-Term Exam: 6
Practicum
Class Participation: NA
Seminar/Demonstration/Viva-voce/Lab records etc.: 5
Mid-Term Exam:    NA
for both theory and practicum.
PartC-Learning Resources
Text /Reference Books:
C. Y. Young (2021). Algebra and Trigonometry. Wiley.
S.L. Loney (2016). The Elements of Coordinate Geometry (Cartesian Coordinates) (2nd Edition). G.K. Publication Private Limited.
Seymour Lipschutz and Marc Lars Lipson (2013). Linear Algebra. (4th Edition) Schaum’s Outline Series, McGraw-Hill.
C.C. Pinter (2014). A Book of Set Theory. Dover Publications.
J. V. Dyke, J. Rogers and H. Adams (2011). Fundamentals of Mathematics (10th Edition), Brooks/Cole.
A. Tussy, R. Gustafson and D. Koenig (2010). Basic Mathematics for College Students
(4th Edition). Brooks Cole
*Applicable for courses having practical component.
DEPARTMENT OF COMPUTER SCIENCE & APPLICATIONS
KURUKSHETRA UNIVERSITY, KURUKSHETRA
Session: 2023-24
Part A - Introduction
Subject
COMPUTER SCIENCE
Semester
I
Name of the Course
Basic IT Tools
Course Code
B23-SEC-103
Course Type: (CC/MCC/MDC/CC-
M/DSEC/VOC/DSE/PC/AEC/VAC)
SEC
Level of the course (As per Annex- ure-I
Pre-requisite for the course (if any)
Course Learning Outcomes(CLO):
After completing this course, the learner will be able to:
Identify the basic components of computers and ter- minology
acquaint with Operating System and its applications for both desktop and mobile devices
Understand computer networks, and browse the inter- net, content search, email and collaborate with peers
Use e-Governance applications; and use computer to improve existing skills and learn new skills
5*. to implement various spreadsheet tools practically.
Credits
Theory
Practical
Total
2
1
3
Contact Hours
2
2
4
Max. Marks:75(50(T)+25(P))
Internal Assessment Marks:20(15(T)+5(P)) End Term Exam Marks:55(35(T)+20(P))
Time: 3 Hrs.(T), 3Hrs.(P)
Part B-Contents of the Course
Instructions for Paper- Setter
Examiner will set a total of nine questions. Out of which first question will be compulsory. Remaining eight questions will be set from four unit selecting two questions from each unit. Examination will be of three-hour duration. All questions will carry equal marks. First question will comprise of short answer type questions covering entire syllabus.
Candidate will have to attempt five questions in all, selecting one question from each unit. First
question will be compulsory.
Practicum will be evaluated by an external and an internal examiner. Examination will be of three- hour duration.
Unit
Topics
Contact Hours
I
Introduction to Computer: Computer and Latest IT gadgets, Evolution of Computers & its applications, Basics of Hardware and Software, Application Software, Systems Software, Utility Software. Central Processing Unit, Input devices, Output devices, Computer Memory & storage, Mobile Apps.
6
II
Introduction to Operating System, Functions of the Operating system, Operating Systems for Desktop and Laptop, Operating Systems for Mobile Phone and Tablets, User Interface for Desktop and Laptop, Task Bar, Icons & shortcuts, Running an Application, Operating System Simple Setting, Changing System Date and Time, Changing Display Properties, To Add or Remove Program and Features, Adding, Removing & Sharing Printers, File and Folder Management.
6
III
Introduction to Internet and World Wide Web, Basic of Computer Networks, Local Area Network (LAN), Wide Area Network (WAN), Network Topology, Internet, Applications of Internet, Website Address and URL, Popular Web Browsers (Internet Explorer/Edge, Chrome, Mozilla Firefox, Opera etc.), Popular Search Engines, Searching on the Internet.
6
IV
E-mail: Using E-mails, Opening Email account, Mailbox: Inbox and Outbox, Creating and Sending a new E-mail, replying to an E-mail message, forwarding an E-mail message, searching emails, Attaching files with email, Email Signature. Social Networking: Facebook, Twitter, LinkedIn, Instagram, Instant Messaging (WhatsApp, Facebook Messenger, Telegram), Introduction to Blogs, Digital Locker.
6
V*
Practicum:
Identify the various parts of computer
Using computer/mobile software and hardware
Use of operating system for various tasks such as file creation, directory creation, shortcut creation, using control panel, etc.
Using Internet & various browsers.
Identify the various hardware/software required for Internet
How to create and use e-mail account
Using Facebook, WhatsApp, Instagram, LinkedIn, Telegram
Writing blogs
25
Suggested Evaluation Methods
Internal Assessment:
Theory
End Term Ex- amination:
A three hour ex-
Class Participation: 4
Seminar/presentation/assignment/quiz/class test etc.:4
Mid-Term Exam: 7
Practicum
Class Participation: 2
Seminar/Demonstration/Viva-voce/Lab records etc.:3
Mid-Term Exam:    NA
am for both theo- ry and practi- cum.
PartC-Learning Resources
Recommended Books/e-resources/LMS:
Sinha, P.K. & Sinha, Priti, Computer Fundamentals, BPB
Dromey, R.G., How to Solve it By Computer, PHI
Norton, Peter, Introduction to Computer, McGraw-Hill
Leon, Alexis & Leon, Mathews, Introduction to Computers, Leon Tech World
Rajaraman, V., Fundamentals of Computers, PHI
Ram, B., Computer Fundamentals, Architecture & Organization, New Age International
(P) Ltd.
*Applicable for courses having practical component.
VAC
Session: 2023-24
Part A – Introduction
Subject
Philosophy
Semester
First
Name of the Course
Human Values and Ethics
Course Code
B- VAC 101
Course Type:
(CC/MCC/MDC/CC-M/DSEC/VOC/DSE/PC/AEC/VAC)
VAC
Level of the course (As per Annexure-I
100-199
Pre-requisite for the course (if any)
N.A
34(1795)
Course Learning Outcomes (CLO):
After completing this course, the learner will be able to know/understand:
the Need, Content and Process for Value Education.
the Human Values and Ethics
the theories of Integrated Personality and Well-being
the Professional Ethics and Global Citizenship
Theory
Practical
Total
Credits
02
00
02
Contact Hours
02
00
02
Max. Marks:-50
Internal Assessment Marks:-15End Term Exam Marks:-35
Time:-3 hrs.
Part B-Contents of the Course
Instructions for Paper- Setter
The paper-setter is requested to set Nine questions in all i.e., One Compulsory Objective Type Question (7x1) without any choice, equitably distributed over the whole syllabi and Two Questions from Each Unit equitably spread over the concerned unit. The examinees will have to attempt Five questions in all, selecting one question from each unit. All questions carry equalmarks.
Unit
Topics
Contact Hours
I
Course Introduction - Need, Content and Process for Value Education
Understanding the need, content and process for Value Education. (Students should be aware of the difference among skills, values and ethics and their respective needsin life.)
Classification of Value Education: understanding Personal Values, Social Values,
Moral Values & Spiritual Values; Understanding the difference between ideology andvalues.
Understanding Harmony with self, Society and Nature.
Practical: Debate and discussion on the need and nature of value education;
Students should be encouraged to find and analyze suitable case studies to
Understand various types of values.
8
II
Human Values and Ethics
Meaning and nature of human values; Significance of human values in life;
Relation between values and ethics.
Relevance of Human values: Integrity Empathy, Loksangrah, Brahmvihara.
Theory of Naya (Jainism), Deontology, Virtue Ethics, Utilitarianism
Practical: Students should be divided in small groups and should be motivated to reflect upon their values. Teacher should make an environment to make them realizethat everyone has a set of values arisen from their family, social, cultural, religious, and political contexts, some of which correspond to more “human” and “universal” frameworks. This exercise is to encourage students to articulate their values and put them into conversation with values from other contexts.
8
III
Integrated Personality and Well-being
Understanding the relationship among: Self, Identity and Personality.
Understanding Integrated Personality – with the three gunas theory of Sankhya, thefour
Antah-karanas (inner instruments) in Yoga, and Panchkosha (five sheaths) in Upanishad.
Approaching comprehensive understanding of well-being and its relation to Happiness.
Practical: Bhrumadhya Dhyan, Chakra Dhyan, Preksha Dhyan, Sakshi Bhava Dhyan, Vipassana, Yog Nidra, Partipakshabhava (yogic way of cognitive restructuring)
7
IV
Professional Ethics and Global Citizenship
Nature, characteristics and scope of professional ethics; Types of Professional Ethics
Professional Values: Trusteeship, Inclusiveness, Commitment, Sustainability, Accountability, Transparency, Impartiality.
Values for Global Citizenship: Equality, Justice, and Human Dignity.
Nature and need of competency based education; Types of Competencies, Core
Competencies: communication, teamwork, planing and achieving goals, Functional
Competencies: analytical thinking, knowledge sharing and learning, decision making, partnership building.
7
Suggested Evaluation Methods
Internal Assessment:
Theory
Class Participation: 4
Seminar/presentation/assignment/quiz/class test etc.:4
Mid-Term Exam: 7
Practicum
Class Participation:
Seminar/Demonstration/Viva-voce/Lab records etc.:
Mid-Term Exam:
End Term Examination:
35
Part C-Learning Resources
Recommended Books/e-resources/LMS:
R. R. Gaur R Sangal G P Bagaria (2009): A Foundation Course in Human Values and Professional Ethics,Excel Books.
D.R. Kiran (2014) Professional Ethics and Human Values, McGraw Hill Education (India).
Happiness and Well-Being, NIOS Module V ( Health and well-being)
Kiran Kumar K. Salagame (2016): Meaning and Well-Being: Indian Perspectives, Journal of Constructivist Psychology
Dan P. McAdams, Kali Trzesniewski, Jennifer Lilgendahl, Veronica Benet-Martinez, Richard W. Robins (2021) Self and Identity in Personality Psychology, Personality Science, 2021, Vol. 2, Article e6035, https://doi.org/10.5964/ps.603
S. K. Kiran Kumar (2003): An Indian conception of well being, in Henry, J. (Ed) European PositivePsychology Proceedings 2002. Leicester, UK: British Psychological Society.
Vivian L Vignoles (2017): Identity: Personal and Social, Chapter to appear in Oxford Handbook of Personality and Social Psychology (2nd ed.), edited by Kay Deaux and Mark Snyder.
Wong, S.-C. (2020). Competency Definitions, Development and Assessment: A Brief Review.International Journal of Academic Research in Progressive Education and Development, 9(3), 95–114.
34(1798)
Session: 2023-24
Part A - Introduction
Subject
Environmental Science
Semester
I/ II
Name of the Course
Environmental Studies
Course Code
B23-VAC-201
Course Type: (CC/MCC/MDC/CC-M/DSEC
/VOC/DSE/PC/AEC/VAC)
VAC
Level of the course (As per Annexure-I
100-199
Pre-requisite for the course (if any)
NA
Course Learning Outcomes (CLO):
After completing this course, the learner will be able to:
Understand the concept of environmental studies, sustainable development and ecosystem.
Learn about the various natural resources and about biodiversity and its conservation.
Know about the types of pollution, solid waste management, global environmental issues and environmental laws.
Understand the concept of population growth and its impacts on environment and disaster management.
Credits
Theory
Practical
Total
2
NA
2
Contact Hours
2
NA
2
Max. Marks: 50
Internal Assessment Marks: 15
End Term Exam Marks: 35
Time: 3 hours
Part B- Contents of the Course
Instructions for Paper- Setter
Total number of questions set will be nine. Questions no. 1 is compulsory covering the entire syllabus. Two questions will be set from each unit. Students have to attempt five questions in all, selecting one question from each unit including the compulsory question. Each question is of 7 marks. All questions carry equal marks. Final theory exam time allowed will be of 3 hours.
Unit
Topics
Contact Hours
I
Introduction to environmental studies:
Multidisciplinary nature of environmental studies; Scope and importance; Concept of sustainability and sustainable development. Ecosystems:
Definition, structure and function of ecosystem; Energy flow in an ecosystem: food chains, food webs, Major ecosystems types: Forest ecosystem, Grassland ecosystem, Desert ecosystem and Aquatic ecosystem (lakes, rivers, oceans).
6
II
Natural resources: Renewable and Non- renewable Resources
Land resources: Land degradation and soil erosion.
Forest resources: Importance of forests, deforestation: causes and impacts on environment.
Water resources: Use and over- exploitation of surface and ground water.
Energy resources: Renewable and non- renewable energy sources.
Biodiversity and Conservation:
Definition and its types, Endangered and endemic species of India. Threats to biodiversity: Habitat loss, poaching of wildlife,
man-wildlife     conflicts,     biological     invasions;     Conservation biodiversity: In-situ and Ex-situ conservation of biodiversity.
Ecosystem and biodiversity services: Ecological, economic, social, ethical, aesthetic and informational values.
9
III
Environmental pollution
Environmental pollution: types, causes, effects and controls; Air, water, soil and noise pollution.
Solid waste management: Sources, methods of disposal: Landfill, incineration and composting.
Climate change, global warming, ozone layer depletion, acid rain and impacts on human communities and agriculture.
Environmental Policies & Practices
Environmental laws: Environment (Protection) Act, 1986, Air (Prevention & Control of Pollution) Act, 1981, Water (Prevention and control of Pollution) Act, 1974.
8
IV
Human Communities and the Environment:
Human population growth: Impacts on environment, human health and welfare.
Resettlement and rehabilitation of project affected person.
Disaster management: floods, earthquake, cyclones, landslides and drought.
Environmental ethics: Role of Indian and other religions and cultures in environmental conservation.
7
Suggested Evaluation Methods
Internal Assessment:15 marks
Theory
Class Participation: 4 marks
Seminar/presentation/assignment/quiz/class test etc.: 4marks
Mid-Term Exam: 7 marks
End Term Examination: Theory: 35 marks (Written exam)
Part C-Learning Resources
Recommended Books/e-resources/LMS:
Kaushik, A & Kaushik, C.P. 2022. Perspectives in Environmental Studies. New Age International Pvt Ltd, New Delhi.
Bharucha, E. 2021. A Textbook of Environmental Studies for Undergraduate Courses, Orient Blackswan Pvt Ltd.
Goswami, P., Mandal, J. & Singh, S. 2022. A Textbook on Environmental Studies, Ashok book stall, Assam.
Joshi, P.C. & Joshi, N. 2009. A Text Book of Environmental Science. APH Publishing Corporation.
Basu, M. & Xavier Savarimuthu, S.J. 2017. Fundamentals of Environmental Studies. Cambridge University Press.
Singh, R.P. & Islam, Z. 2012. Environmental Studies. Concept Publishing Company.
3
English Semester-I
Nomenclature of the Course: English Language and Communication Skills: Level 1
Course Code: B23-AEC-111
Course Type: AEC-1
Level of the Course: 100-199
Credits: 2 (Theory 2)                                                                                           Total Marks: 50
End Term Exam Marks: 35 Internal Assessment Marks: 15
Exam Time: 3 Hrs.
Workload: Theory 2 hours
Course Learning Outcomes:
After the successful completion of the course the student will be able to:
E101.1. The students will learn various types of verbal and non-verbal communication.
E101.2. They will understand the importance of interpersonal communication on workplaces and different ways of behaviour and communication.
E101.3. They will comprehend the importance of listening skills and its types. E101.4. They will be introduced to parts of speech and their role in language learning.
Contents of the Course:
Unit I: Theory and Types of Communication Verbal and Non-Verbal Communication
Unit II: Workplace and Interpersonal Communication
Introducing Oneself, Introducing Others, Making Requests, Offering Help, Congratulating, Making Enquiries and Seeking Permission
Unit III: Importance of Listening Skills and their types
Barriers to Effective Listening and how to overcome them Note-taking Techniques to capture the main ideas
Unit IV: Parts of Speech
4
Suggested Readings:
Hargie, Owen. The Handbook of Communication Skills. Routledge, 2006.
Knapp, Mark L., et al. Nonverbal Communication in Human Interaction. Cengage Learning, 2013.
West, Richard, and Lynn H. Turner. Understanding Interpersonal Communication: Making Choices in Changing Times. Cengage Learning, 2010.
Instructions to the Paper Setters:
Question No 1 will be compulsory and have 7 questions based on all the four Units and the students will be required to write answers in 30 words.
Question No 2 and 3 will be set on Unit-I covering the entire Unit. Students will be required to attempt any one.
Question No 4 and 5 will be set on Unit-II covering the entire Unit. Students will be required to attempt any one.
Question No 6 and 7 will be set on Unit-III covering the entire Unit. Students will be required to attempt any one.
Question No. 8 and 9 will be based on Unit-IV having 7 parts each covering the entire Unit. Students will be required to attempt any one of these questions.
Evaluation of Internal Assessment
Internal Assessment (Theory) will be based on the following components.
Class Participation                                    4 Marks
Seminar/Presentation/Assignments/
Quiz/Class Test etc.                                  4 Marks
Mid-Term Exam                                       7 Marks Total                                                                  15 Marks
KURUKSHETRA UNIVERSITY KURUKSHETRA
Established by the State Legislature Act XIII of 1956 (‘A+’ Grade NAAC Accredited)
Undergraduate Programme (Political Science) Syllabus, Semester-I
MDC-1
Session 2023-2024
Part-A Introduction
Subject
Political Science
Semester
I
Name of the Course
Indian Polity - I
Course Code
B23-POL-104
Course Type: (CC/MCC/MDC/ CCM/ DSEC/VOC/DSE/PC/AEC/ VAC
MDC
Level of the course (As per Annexure-I)
100-199
Pre-requisite for the course (if any)
NA
Course Learning Outcomes (CLO)
After completing this course, the learner will be able to:
Comprehend the salient features of the Indian Constitution and develop an understanding of Fundamental Rights and duties.
Develop an understanding of the powers, position and functions of the Union Executive
Comprehend the functioning of the Union legislature.
Comprehend the functioning of the Indian judicial system.
Credits
Theory
Tutorial
Total
2
1
3
Contact Hours
2 per week
1 per week
3 per week
Max. Marks:                              75
Internal Assessment Marks:    25
End Term Exam Marks:          50
Time: 3 Hours
Part-B Contents of the Course
Instructions for Paper Setters
Total NINE Questions will be set and students will be required to attempt FIVE questions.
Question No. 1 will be compulsory and will consist of 5 short answer type questions of 2 marks each spread over the entire syllabus.
The remaining EIGHT questions will be set taking TWO questions from each of the four units. The candidate would be required to attempt ONE question from each unit in addition to the compulsory
question.
4. Each question will carry 10 marks.
Unit
Topics
Contact Hours
I
Indian Constitution: Salient Features, Fundamental Rights and Fundamental Duties
09
II
Union Executive: President, Prime Minister and Council of Ministers
09
III
Union Legislature: Lok Sabha and Rajya Sabha
09
IV
Judiciary: Supreme Court, Judicial Review and Judicial Activism
09
Tutorial
09
Suggested Evaluation Methods
Internal Assessment: 25 Marks
Class Participation: 05 Seminar/Presentation/Assignment/Quiz/Class Test etc: 07 Mid Term Exam: 13
End Term Examination:
0 notes
training-institute1 · 1 year ago
Text
Java Journey: A Step-by-Step Guide for Beginners
Tumblr media
Are you fascinated by the world of programming and keen to learn more about Java? One popular object-oriented programming language that has long been considered crucial to the software development industry is Java. This extensive java developer certification will help you understand the fundamentals of Java and position you to become a competent Java developer, regardless of your level of coding experience.
Chapter 1: Introduction
1.1 Comprehending Java Before we go into the coding, let’s examine the reasons behind Java’s widespread use. Java can operate on any device that supports a Java Virtual Machine (JVM) since it is platform-independent. It’s a great option for both novice and experienced developers because of its rich libraries, scalability, and readability.
1.2 Setting Up Java Installing the Java Development Kit (JDK) is necessary before you can begin working with Java. Get the most recent version from the official Oracle or OpenJDK website, then install it according to your operating system’s instructions.
Chapter 2: The Basics
2.1 Writing Your First Java Program Let’s write a simple “Hello, World!” program to get a feel for Java syntax. Understand the structure of a basic Java program, including the main method and how to print output to the console.
2.2 Variables and Data Types Explore the various data types in Java (integers, doubles, booleans, etc.) and learn how to declare and use variables. Understanding data types is crucial for efficient memory usage and maintaining code integrity.
2.3 Control Flow Delve into control flow statements like if-else, switch, and loops (for, while). Learn how to control the flow of your program based on conditions and repetitions.
Chapter 3: Object-Oriented Programming (OOP)
3.1 Classes and Objects Understand the core principles of OOP by learning about classes and objects. Java is an object-oriented language, and grasping these concepts is fundamental to Java development.
3.2 Inheritance and Polymorphism Explore the concepts of inheritance and polymorphism, which allow you to create more modular and reusable code. This is where Java’s strength in OOP truly shines.
Chapter 4: Working with Data
4.1 Arrays and Collections Discover how to work with arrays and Java Collections Framework, including lists, sets, and maps. Effectively managing data is a crucial skill for any Java developer.
4.2 Input and Output (I/O) Learn how to read from and write to files using Java’s I/O classes. Understanding file handling is essential for dealing with real-world applications.
Chapter 5: Exception Handling
5.1 Dealing with Exceptions Master the art of handling exceptions gracefully. Learn how to use try-catch blocks to prevent your program from crashing when unexpected issues arise.
Chapter 6: Introduction to Java APIs
6.1 Java Standard Edition (SE) APIs Examine java.lang, java.util, and java.io, three of the key Java SE APIs. Gaining knowledge of these libraries will enable you to create apps with greater features and resilience.
Chapter 7: Building Your First Java Application
7.1 Project Structure and Development Environment Set up a basic project structure and choose a development environment, such as Eclipse or IntelliJ IDEA. Get comfortable with the tools that will aid you throughout your Java development journey.
7.2 Building a Simple Application Apply what you’ve learned by building a simple console-based application. This hands-on experience will solidify your understanding of Java programming concepts.
Chapter 8: Continuous Learning
8.1 Explore Advanced Topics Java is a vast language, and there’s always more to learn. Explore advanced topics like multithreading, networking, and JavaFX for building graphical user interfaces.
8.2 Join the Java Community Connect with other Java enthusiasts and professionals. Participate in forums, attend meetups, and contribute to open-source projects. The Java community is vast and welcoming, offering endless opportunities for learning and collaboration.
Congratulations! You’ve completed the initial steps of your Java journey. Remember, becoming proficient in Java is a continuous process of learning and practicing. Keep coding, exploring new concepts, and building exciting projects. Your adventure in the world of Java has just begun!
Ready to kickstart your programming journey? Enroll in our comprehensive Java Course for Beginners at LearnNowX! Whether you’re a coding novice or looking to expand your skills, our expert-led course will guide you through the fundamentals of Java in a structured and beginner-friendly manner.
0 notes
alexmotechblog · 2 years ago
Text
NRF52840 Xiao Sense
Happy Manic Maker Monday!
For two upcoming projects, I'm going to be using two flavors of the Seeed Studios Xiao boards based on the NRF52840. These little boards are really something.
For one upcoming project, it has one of each of the exact things I need:
BLE to connect to another project on which I'm working
UART for chatpad input
SPI for eink display
I2C for a GPS
A few GPIO for a soft power button, an indicator LED, and maybe a vibration motor for haptics
Battery power and charging
An internal IMU (on the Sense flavor)
The only difference between the Sense and the non-Sense is that the former has a built-in IMU and microphone which are meant for tinyML projects since ML is all the rage (think of being in ultra-low power and performing inferences on audio samples but sleeping and collecting in-between).
In fact, for this Learn-a-Thon, there are a few things I totally want to investigate: the Embedded Template Library (for exploration on C++ to really object-orient the project), nRF Connect SDK, Zephyr OS (I'm late to jump on the bus here but there's good talk about this Linux-like take on RTOS), BLE, and TinyML.
nRF Connect SDK - It will be nice to get into the APIs provided by Nordic without any layers inbetween. A simple bare-metal eventloop will be lovely here.
ZephyrOS - I'll probably only be using this one of the projects since for the other one, bare metal will be just fine and I'd like to just get into the direct nRF Connect SDK for the hell of it. They say this abstracts away drivers which is an interesting prospect included in an RTOS! I've heard it's 80% configuration and 20% coding but, if it's good code running the drivers, why not just leverage it!
Embedded Template Library - generally I don't code in C++ besides for work, but I love the idea that it is possible to code something that uses primarily static data and has a low footprint. I've read reviews on ETL, heard about it on podcasts, and just gotta try it. There is a solid reason for using C++ in these projects and that is that I want to create a common base class that outlines capabilities of each of these devices.
BLE - I've done lots with wifi, written wifi drivers, wifi managers, connectivity managers, etc, but never BLE! I totally feel like I need to try it out! Especially since one of the projects is purely a sensor arm that transmits over BLE. Eventually, something else that would be really interesting would be OTA over BLE which I've never had to manage.
TinyML - I also haven't jumped into the ML/AI with both feet really. I've used pre-compiled models and hardware acceleration and some tangential TVM stuff but I want to create the model and see it with my own destructive hands >:) I'm also interested how much optimization is in control of the model developer.
Low Power Mode - I've done some of this already at work but it's a good idea to get in the weeds on a different micro. Especially, I'd like to understand how Zephyr might abstract this, how I can optimize packet offloads, etc.
I've got kind of a slew of experiments I want to try:
Zephyr OS Emulation - No hardware way to get started upper level programming. I would love to code around in Zephyr and get emulated results. Always a handy tool.
Zephyr OS - Get hello world on Xiao (sanity, familiarity, etc)
Zephyr OS + BLE - I've seen demos, I think it's easy to get started. Attaching a button or sensor should be pretty easy from there.
TinyML + IMU + BLE (https://blog.tensorflow.org/2021/05/building-tinyml-application-with-tf-micro-and-sensiml.html)
0 notes
globaljobalert-blog · 2 years ago
Text
Senior Backend Developer - Remote, Spokane ( Austin - SLC)
Tumblr media
Company: Two Barrels Overview: Two Barrels is hiring a Senior Backend Developer specializing in the Domain Registrar space for $185,000/year. You will be a traditional company employee. This is a full time 40 hour/week position with company benefits. This is a remote position. Our main office is in Spokane, WA and we have satellite offices in Austin, TX and Salt Lake City, UT. As a Senior Backend Developer, you will be given a brand-new project within the domain registration space, and will get the opportunity to do a lot of cool new things. This is a uniquely rare position to make a direct impact on the business and on our clients because you will help us build out this new offering. Let’s be honest, the domain registrar space can be done better, and if you want to be a part of making it better this is the right opportunity. Location: Remote | Spokane - Austin - SLC | Duration: Full Time Wage: $185,000/year Responsibilities: - Defining, designing, and implementing high-volume, scalable API systems which will interface with both internal and with external API’s provided by third parties - Work closely with product team to make this a great solution for our clients - Communicate consistently with stakeholders, managers, and other teams about releases - Participate in training and development of others, as directed - Be willing to learn, grow, and help all of us continually get better at what we do - Be a good human Minimum Qualifications: - Bachelor’s degree in computer science or other equivalent degree/experience - Minimum 6 years full stack application development, software test automation experience, and object oriented development - Professional experience developing in Ruby on Rails - Experience building and documenting API’s - Ability to design for security and scalability without compromise - Professional history with JSON, XML and/or other serialized formats Preferred Qualifications: - Understanding of internet name resolving protocols - WAN programming experience Why you might like this job: You are a competent engineer and have been stuck in a creativity box even though you have creative solutions bursting at the seams. You want to break out of that box, buck the system, and make something amazing. Coding is your go to, but you also like being part of the planning and vision of the product. Oh yeah, you area also product-minded, it’s kind of a big deal around here, and ends up making a dang good product. You just want things to be better, and want to be a part of making things better. While it’s a great job, it’s just a job. You value your time. Work is more fun when you know you have awesome things to look forward to. Kick butt during the day and enjoy your time at home. You also might just be a domain nut like us. #BI-Remote Benefits: - Great Wage - WFH comfort package - 22 days paid time off (29 days after 3 years. Flexible time off after 5 years!)+ 4 paid holidays - 4% retirement matching through Fidelity - 100% employer-paid medical, dental and vision for employees - Maternity and Paternity Leave - Flexible hours - Coffee shop next door - Crappy parking? Oh, I mean a cool downtown location for easy public transportation options… APPLY ON THE COMPANY WEBSITE To get free remote job alerts, please join our telegram channel “Global Job Alerts” or follow us on Twitter for latest job updates. Disclaimer:  - This job opening is available on the respective company website as of 3rdJuly 2023. The job openings may get expired by the time you check the post. - Candidates are requested to study and verify all the job details before applying and contact the respective company representative in case they have any queries. - The owner of this site has provided all the available information regarding the location of the job i.e. work from anywhere, work from home, fully remote, remote, etc. However, if you would like to have any clarification regarding the location of the job or have any further queries or doubts; please contact the respective company representative. Viewers are advised to do full requisite enquiries regarding job location before applying for each job.   - Authentic companies never ask for payments for any job-related processes. Please carry out financial transactions (if any) at your own risk. - All the information and logos are taken from the respective company website. Read the full article
0 notes